| /linux/drivers/infiniband/hw/hfi1/ |
| H A D | iowait.c | 12 void iowait_set_flag(struct iowait *wait, u32 flag) in iowait_set_flag() argument 14 trace_hfi1_iowait_set(wait, flag); in iowait_set_flag() 15 set_bit(flag, &wait->flags); in iowait_set_flag() 18 bool iowait_flag_set(struct iowait *wait, u32 flag) in iowait_flag_set() argument 20 return test_bit(flag, &wait->flags); in iowait_flag_set() 23 inline void iowait_clear_flag(struct iowait *wait, u32 flag) in iowait_clear_flag() argument 25 trace_hfi1_iowait_clear(wait, flag); in iowait_clear_flag() 26 clear_bit(flag, &wait->flags); in iowait_clear_flag() 30 * iowait_init() - initialize wait structure 31 * @wait: wait struct to initialize [all …]
|
| H A D | trace_iowait.h | 17 TP_PROTO(struct iowait *wait, u32 flag), 18 TP_ARGS(wait, flag), 26 __entry->addr = (unsigned long)wait; 27 __entry->flags = wait->flags; 29 __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num; 41 TP_PROTO(struct iowait *wait, u32 flag), 42 TP_ARGS(wait, flag)); 45 TP_PROTO(struct iowait *wait, u32 flag), 46 TP_ARGS(wait, flag));
|
| /linux/drivers/gpu/drm/nouveau/nvif/ |
| H A D | timer.c | 26 nvif_timer_wait_test(struct nvif_timer_wait *wait) in nvif_timer_wait_test() argument 28 u64 time = nvif_device_time(wait->device); in nvif_timer_wait_test() 30 if (wait->reads == 0) { in nvif_timer_wait_test() 31 wait->time0 = time; in nvif_timer_wait_test() 32 wait->time1 = time; in nvif_timer_wait_test() 35 if (wait->time1 == time) { in nvif_timer_wait_test() 36 if (WARN_ON(wait->reads++ == 16)) in nvif_timer_wait_test() 39 wait->time1 = time; in nvif_timer_wait_test() 40 wait->reads = 1; in nvif_timer_wait_test() 43 if (wait->time1 - wait->time0 > wait->limit) in nvif_timer_wait_test() [all …]
|
| /linux/arch/mips/kernel/ |
| H A D | idle.c | 3 * MIPS idle loop and WAIT instruction support. 23 * Not all of the MIPS CPUs have the "wait" instruction available. Moreover, 24 * the implementation of the "wait" feature differs between CPU families. This 25 * points to the function that implements CPU specific wait. 26 * The wait instruction stops the pipeline and reduces the power consumption of 51 " wait \n" in r4k_wait_irqoff() 57 * have any pending stores when the WAIT instruction is executed. 69 " wait \n" in rm7k_wait_irqoff() 75 * Au1 'wait' is only useful when the 32kHz counter is used as timer, 90 " wait \n" in au1k_wait() [all …]
|
| /linux/fs/ |
| H A D | fs_pin.c | 16 spin_lock_irq(&pin->wait.lock); in pin_remove() 18 wake_up_locked(&pin->wait); in pin_remove() 19 spin_unlock_irq(&pin->wait.lock); in pin_remove() 32 wait_queue_entry_t wait; in pin_kill() local 38 init_wait(&wait); in pin_kill() 39 spin_lock_irq(&p->wait.lock); in pin_kill() 42 spin_unlock_irq(&p->wait.lock); in pin_kill() 48 spin_unlock_irq(&p->wait.lock); in pin_kill() 52 __add_wait_queue(&p->wait, &wait); in pin_kill() 55 spin_unlock_irq(&p->wait.lock); in pin_kill() [all …]
|
| /linux/kernel/sched/ |
| H A D | swait.c | 3 * <linux/swait.h> (simple wait queues ) implementation: 85 void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait) in __prepare_to_swait() argument 87 wait->task = current; in __prepare_to_swait() 88 if (list_empty(&wait->task_list)) in __prepare_to_swait() 89 list_add_tail(&wait->task_list, &q->task_list); in __prepare_to_swait() 92 void prepare_to_swait_exclusive(struct swait_queue_head *q, struct swait_queue *wait, int state) in prepare_to_swait_exclusive() argument 97 __prepare_to_swait(q, wait); in prepare_to_swait_exclusive() 103 long prepare_to_swait_event(struct swait_queue_head *q, struct swait_queue *wait, int state) in prepare_to_swait_event() argument 114 list_del_init(&wait->task_list); in prepare_to_swait_event() 117 __prepare_to_swait(q, wait); in prepare_to_swait_event() [all …]
|
| H A D | completion.c | 4 * Generic wait-for-completion handler; 25 raw_spin_lock_irqsave(&x->wait.lock, flags); in complete_with_flags() 29 swake_up_locked(&x->wait, wake_flags); in complete_with_flags() 30 raw_spin_unlock_irqrestore(&x->wait.lock, flags); in complete_with_flags() 78 raw_spin_lock_irqsave(&x->wait.lock, flags); in complete_all() 80 swake_up_all_locked(&x->wait); in complete_all() 81 raw_spin_unlock_irqrestore(&x->wait.lock, flags); in complete_all() 90 DECLARE_SWAITQUEUE(wait); in do_wait_for_common() 97 __prepare_to_swait(&x->wait, &wait); in do_wait_for_common() 99 raw_spin_unlock_irq(&x->wait.lock); in do_wait_for_common() [all …]
|
| H A D | wait.c | 237 * Note: we use "set_current_state()" _after_ the wait-queue add, 239 * wake-function that tests for the wait-queue being active 327 * Note! These two wait functions are entered with the 328 * wait-queue lock held (and interrupts off in the _irq 330 * condition in the caller before they add the wait 333 int do_wait_intr(wait_queue_head_t *wq, wait_queue_entry_t *wait) in do_wait_intr() 335 if (likely(list_empty(&wait->entry))) in do_wait_intr() 336 __add_wait_queue_entry_tail(wq, wait); in do_wait_intr() 350 int do_wait_intr_irq(wait_queue_head_t *wq, wait_queue_entry_t *wait) in do_wait_intr_irq() 352 if (likely(list_empty(&wait in do_wait_intr_irq() 332 do_wait_intr(wait_queue_head_t * wq,wait_queue_entry_t * wait) do_wait_intr() argument 349 do_wait_intr_irq(wait_queue_head_t * wq,wait_queue_entry_t * wait) do_wait_intr_irq() argument [all...] |
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/timer/ |
| H A D | base.c | 27 nvkm_timer_wait_test(struct nvkm_timer_wait *wait) in nvkm_timer_wait_test() argument 29 struct nvkm_subdev *subdev = &wait->tmr->subdev; in nvkm_timer_wait_test() 30 u64 time = nvkm_timer_read(wait->tmr); in nvkm_timer_wait_test() 32 if (wait->reads == 0) { in nvkm_timer_wait_test() 33 wait->time0 = time; in nvkm_timer_wait_test() 34 wait->time1 = time; in nvkm_timer_wait_test() 37 if (wait->time1 == time) { in nvkm_timer_wait_test() 38 if (wait->reads++ == 16) { in nvkm_timer_wait_test() 43 wait->time1 = time; in nvkm_timer_wait_test() 44 wait->reads = 1; in nvkm_timer_wait_test() [all …]
|
| /linux/drivers/gpu/drm/omapdrm/ |
| H A D | omap_irq.c | 23 struct omap_irq_wait *wait; in omap_irq_update() local 28 list_for_each_entry(wait, &priv->wait_list, node) in omap_irq_update() 29 irqmask |= wait->irqmask; in omap_irq_update() 36 static void omap_irq_wait_handler(struct omap_irq_wait *wait) in omap_irq_wait_handler() argument 38 wait->count--; in omap_irq_wait_handler() 39 wake_up(&wait->wq); in omap_irq_wait_handler() 46 struct omap_irq_wait *wait = kzalloc_obj(*wait); in omap_irq_wait_init() local 49 init_waitqueue_head(&wait->wq); in omap_irq_wait_init() 50 wait->irqmask = irqmask; in omap_irq_wait_init() 51 wait->count = count; in omap_irq_wait_init() [all …]
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| H A D | peer.c | 13 struct ath12k_peer_delete_wait *wait, in ath12k_peer_delete_wait_register() argument 16 wait->vdev_id = vdev_id; in ath12k_peer_delete_wait_register() 17 ether_addr_copy(wait->addr, addr); in ath12k_peer_delete_wait_register() 18 init_completion(&wait->done); in ath12k_peer_delete_wait_register() 21 list_add(&wait->list, &ar->peer_delete_waits); in ath12k_peer_delete_wait_register() 26 struct ath12k_peer_delete_wait *wait) in ath12k_peer_delete_wait_unregister() argument 29 list_del(&wait->list); in ath12k_peer_delete_wait_unregister() 35 struct ath12k_peer_delete_wait *wait; in ath12k_peer_delete_resp_signal() local 39 list_for_each_entry(wait, &ar->peer_delete_waits, list) { in ath12k_peer_delete_resp_signal() 40 if (wait->vdev_id == vdev_id && in ath12k_peer_delete_resp_signal() [all …]
|
| /linux/include/linux/ |
| H A D | swait.h | 8 #include <linux/wait.h> 12 * Simple waitqueues are semantically very different to regular wait queues 13 * (wait.h). The most important difference is that the simple waitqueue allows 36 * For all the above, note that simple wait queues should _only_ be used under 38 * wait queues in most cases. 92 * returns true if the wait list is not empty 105 * @cond = true; prepare_to_swait_exclusive(&wq_head, &wait, state); 111 * finish_swait(&wq_head, &wait); 115 * observe an empty wait list while the waiter might not observe @cond. 138 * modifications to the wait queue (task_list). in swq_has_sleeper() [all …]
|
| H A D | umh.h | 14 #define UMH_NO_WAIT 0x00 /* don't wait at all */ 15 #define UMH_WAIT_EXEC 0x01 /* wait for the exec, but not the process */ 16 #define UMH_WAIT_PROC 0x02 /* wait for the process to complete */ 17 #define UMH_KILLABLE 0x04 /* wait for EXEC/PROC killable */ 18 #define UMH_FREEZABLE 0x08 /* wait for EXEC/PROC freezable */ 26 int wait; member 34 call_usermodehelper(const char *path, char **argv, char **envp, int wait); 43 call_usermodehelper_exec(struct subprocess_info *info, int wait);
|
| /linux/fs/f2fs/ |
| H A D | gc.h | 16 #define DEF_GC_THREAD_NOGC_SLEEP_TIME 300000 /* wait 5 min */ 64 * will wait on this wait queue. 146 unsigned int *wait) in increase_sleep_time() argument 151 if (*wait == gc_th->no_gc_sleep_time) in increase_sleep_time() 154 if ((long long)*wait + (long long)min_time > (long long)max_time) in increase_sleep_time() 155 *wait = max_time; in increase_sleep_time() 157 *wait += min_time; in increase_sleep_time() 161 unsigned int *wait) in decrease_sleep_time() argument 165 if (*wait == gc_th->no_gc_sleep_time) in decrease_sleep_time() 166 *wait = gc_th->max_sleep_time; in decrease_sleep_time() [all …]
|
| /linux/Documentation/locking/ |
| H A D | ww-mutex-design.rst | 2 Wound/Wait Deadlock-Proof Mutex Design 5 Please read mutex-design.rst first, as it applies to wait/wound mutexes too. 14 a handful of situations where the driver needs to wait for buffers to 37 and the deadlock handling approach is called Wait-Die. The name is based on 41 and dies. Hence Wait-Die. 42 There is also another algorithm called Wound-Wait: 46 transaction. Hence Wound-Wait. 48 However, the Wound-Wait algorithm is typically stated to generate fewer backoffs 49 compared to Wait-Die, but is, on the other hand, associated with more work than 50 Wait-Die when recovering from a backoff. Wound-Wait is also a preemptive [all …]
|
| /linux/fs/autofs/ |
| H A D | waitq.c | 29 sbi->queues = NULL; /* Erase all wait queues */ in autofs_catatonic_mode() 92 pr_debug("wait id = 0x%08lx, name = %.*s, type=%d\n", in autofs_notify_daemon() 199 * found or NULL to idicate a new wait needs to be created. 202 static int validate_request(struct autofs_wait_queue **wait, in validate_request() argument 214 /* Wait in progress, continue; */ in validate_request() 217 *wait = wq; in validate_request() 221 *wait = NULL; in validate_request() 229 * If we've been asked to wait on an existing expire (NFY_NONE) in validate_request() 230 * but there is no wait in the queue ... in validate_request() 235 * wait or it finished while we waited on the mutex. in validate_request() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/core/ |
| H A D | event.c | 98 nvkm_event_ntfy_block_(struct nvkm_event_ntfy *ntfy, bool wait) in nvkm_event_ntfy_block_() argument 102 nvkm_trace(subdev, "event: ntfy block %08x on %d wait:%d\n", ntfy->bits, ntfy->id, wait); in nvkm_event_ntfy_block_() 106 if (wait) in nvkm_event_ntfy_block_() 115 nvkm_event_ntfy_block_(ntfy, ntfy->wait); in nvkm_event_ntfy_block() 125 if (ntfy->wait) in nvkm_event_ntfy_allow() 146 nvkm_event_ntfy_add(struct nvkm_event *event, int id, u32 bits, bool wait, nvkm_event_func func, in nvkm_event_ntfy_add() argument 149 nvkm_trace(event->subdev, "event: ntfy add %08x on %d wait:%d\n", id, bits, wait); in nvkm_event_ntfy_add() 154 ntfy->wait = wait; in nvkm_event_ntfy_add() 159 if (!ntfy->wait) in nvkm_event_ntfy_add()
|
| /linux/fs/squashfs/ |
| H A D | decompressor_multi.c | 11 #include <linux/wait.h> 42 wait_queue_head_t wait; member 58 wake_up(&stream->wait); in put_decomp_stream() 75 init_waitqueue_head(&stream->wait); in squashfs_decompressor_create() 145 * let's wait for releasing decomp from other users. in get_decomp_stream() 148 goto wait; in get_decomp_stream() 153 goto wait; in get_decomp_stream() 159 goto wait; in get_decomp_stream() 167 wait: in get_decomp_stream() 174 wait_event(stream->wait, in get_decomp_stream()
|
| /linux/fs/btrfs/ |
| H A D | locking.h | 10 #include <linux/wait.h> 94 * Lockdep annotation for wait events. 97 * @lock: The lockdep map corresponding to a wait event 99 * This macro is used to annotate a wait event. In this case a thread acquires 101 * the threads that hold the lock as readers signal the condition for the wait 111 * Protection for the resource/condition of a wait event. 114 * @lock: The lockdep map corresponding to a wait event 116 * Many threads can modify the condition for the wait event at the same time 117 * and signal the threads that block on the wait event. The threads that modify 125 * Used after signaling the condition for a wait event to release the lockdep [all …]
|
| /linux/kernel/module/ |
| H A D | kmod.c | 72 static int call_modprobe(char *orig_module_name, int wait) in call_modprobe() argument 103 ret = call_usermodehelper_exec(info, wait | UMH_KILLABLE); in call_modprobe() 118 * @wait: wait (or not) for the operation to complete 132 int __request_module(bool wait, const char *fmt, ...) in __request_module() argument 144 WARN_ON_ONCE(wait && current_is_async()); in __request_module() 166 trace_module_request(module_name, wait, _RET_IP_); in __request_module() 168 if (kmod_dup_request_exists_wait(module_name, wait, &dup_ret)) { in __request_module() 173 ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC); in __request_module()
|
| /linux/kernel/ |
| H A D | smp.c | 589 /* Do we wait until *after* callback? */ in __flush_smp_call_function_queue() 685 bool wait) in __smp_call_function_single() argument 720 * When @wait we can deadlock when we interrupt between llist_add() and in __smp_call_function_single() 721 * arch_send_call_function_ipi*(); when !@wait we can deadlock due to in __smp_call_function_single() 728 if (!wait) { in __smp_call_function_single() 743 * @csd is stack-allocated when @wait is true. No concurrent access in __smp_call_function_single() 749 if (wait) in __smp_call_function_single() 760 * @wait: If true, wait until function has completed on other CPUs. 764 int smp_call_function_single(int cpu, smp_call_func_t func, void *info, bool wait) in smp_call_function_single() argument 766 return __smp_call_function_single(cpu, func, info, NULL, wait); in smp_call_function_single() [all …]
|
| /linux/Documentation/devicetree/bindings/memory-controllers/ |
| H A D | ti,gpmc-child.yaml | 122 gpmc,wait-monitoring-ns: 123 description: Start of wait monitoring with regard to valid data 228 gpmc,wait-pin: 230 Wait-pin used by client. Must be less than "gpmc,num-waitpins". 233 ti,wait-pin-polarity: 235 Set the desired polarity for the selected wait pin. 240 gpmc,wait-on-read: 241 description: Enables wait monitoring on reads. 244 gpmc,wait-on-write: 245 description: Enables wait monitoring on writes.
|
| /linux/fs/ceph/ |
| H A D | locks.c | 75 int cmd, u8 wait, struct file_lock *fl) in ceph_lock_message() argument 96 wait = 0; in ceph_lock_message() 114 "start: %llu, length: %llu, wait: %d, type: %d\n", in ceph_lock_message() 117 fl->fl_start, length, wait, fl->c.flc_type); in ceph_lock_message() 125 req->r_args.filelock_change.wait = wait; in ceph_lock_message() 129 err = ceph_mdsc_wait_request(mdsc, req, wait ? in ceph_lock_message() 151 "length: %llu, wait: %d, type: %d, err code %d\n", in ceph_lock_message() 153 fl->fl_start, length, wait, fl->c.flc_type, err); in ceph_lock_message() 256 u8 wait = 0; in ceph_lock() local 267 /* set wait bit as appropriate, then make command as Ceph expects it*/ in ceph_lock() [all …]
|
| /linux/include/trace/events/ |
| H A D | module.h | 109 TP_PROTO(char *name, bool wait, unsigned long ip), 111 TP_ARGS(name, wait, ip), 115 __field( bool, wait ) 121 __entry->wait = wait; 125 TP_printk("%s wait=%d call_site=%ps", 126 __get_str(name), (int)__entry->wait, (void *)__entry->ip)
|
| /linux/drivers/w1/masters/ |
| H A D | amd_axi_w1.c | 18 #include <linux/wait.h> 67 * amd_axi_w1_wait_irq_interruptible_timeout() - Wait for IRQ with timeout. 70 * @IRQ: IRQ channel to wait on 79 /* Enable the IRQ requested and wait for flag to indicate it's been triggered */ in amd_axi_w1_wait_irq_interruptible_timeout() 85 dev_err(amd_axi_w1_local->dev, "Wait IRQ Interrupted\n"); in amd_axi_w1_wait_irq_interruptible_timeout() 90 dev_err(amd_axi_w1_local->dev, "Wait IRQ Timeout\n"); in amd_axi_w1_wait_irq_interruptible_timeout() 112 /* Wait for READY signal to be 1 to ensure 1-wire IP is ready */ in amd_axi_w1_touch_bit() 131 /* Wait for done signal to be 1 */ in amd_axi_w1_touch_bit() 160 /* Wait for READY signal to be 1 to ensure 1-wire IP is ready */ in amd_axi_w1_read_byte() 174 /* Wait for done signal to be 1 */ in amd_axi_w1_read_byte() [all …]
|