/linux-master/drivers/md/dm-vdo/ |
H A D | block-map.c | 88 struct vdo_waiter waiter; member in struct:cursor 163 static inline struct vdo_page_completion *page_completion_from_waiter(struct vdo_waiter *waiter) argument 167 if (waiter == NULL) 170 completion = container_of(waiter, struct vdo_page_completion, waiter); 502 * @waiter: The page completion, as a waiter. 507 static void complete_waiter_with_error(struct vdo_waiter *waiter, void *result_ptr) argument 511 vdo_fail_completion(&page_completion_from_waiter(waiter)->completion, *result); 516 * @waiter 521 complete_waiter_with_page(struct vdo_waiter *waiter, void *page_info) argument 875 completion_needs_page(struct vdo_waiter *waiter, void *context) argument 1499 write_page_callback(struct vdo_waiter *waiter, void *context) argument 1504 acquire_vio(struct vdo_waiter *waiter, struct block_map_zone *zone) argument 1534 write_page_if_not_dirtied(struct vdo_waiter *waiter, void *context) argument 1724 abort_lookup_for_waiter(struct vdo_waiter *waiter, void *context) argument 1814 continue_load_for_waiter(struct vdo_waiter *waiter, void *context) argument 1872 load_page(struct vdo_waiter *waiter, void *context) argument 1949 continue_allocation_for_waiter(struct vdo_waiter *waiter, void *context) argument 2629 launch_cursor(struct vdo_waiter *waiter, void *context) argument [all...] |
H A D | block-map.h | 170 /* The waiter for the pending list */ 171 struct vdo_waiter waiter; member in struct:vdo_page_completion 185 struct vdo_waiter waiter; member in struct:tree_page
|
H A D | admin-state.c | 191 * Will notify the operation waiter if there is one. This method should be used for operations 203 if (state->waiter != NULL) 204 vdo_set_completion_result(state->waiter, result); 208 if (state->waiter != NULL) 209 vdo_launch_completion(vdo_forget(state->waiter)); 217 * @waiter A completion to notify when the operation is complete; may be NULL. 224 struct vdo_completion *waiter, 235 } else if (state->waiter != NULL) { 237 "Can't start %s with extant waiter", 240 state->waiter 222 begin_operation(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument 267 start_operation(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument 286 check_code(bool valid, const struct admin_state_code *code, const char *what, struct vdo_completion *waiter) argument 308 assert_vdo_drain_operation(const struct admin_state_code *operation, struct vdo_completion *waiter) argument 322 vdo_start_draining(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument 372 vdo_assert_load_operation(const struct admin_state_code *operation, struct vdo_completion *waiter) argument 386 vdo_start_loading(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument 421 assert_vdo_resume_operation(const struct admin_state_code *operation, struct vdo_completion *waiter) argument 436 vdo_start_resuming(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument 498 vdo_start_operation_with_waiter(struct admin_state *state, const struct admin_state_code *operation, struct vdo_completion *waiter, vdo_admin_initiator_fn initiator) argument [all...] |
H A D | admin-state.h | 57 struct vdo_completion *waiter; member in struct:admin_state 140 struct vdo_completion *waiter); 144 struct vdo_completion *waiter, vdo_admin_initiator_fn initiator); 152 struct vdo_completion *waiter, vdo_admin_initiator_fn initiator); 162 struct vdo_completion *waiter, vdo_admin_initiator_fn initiator); 173 struct vdo_completion *waiter,
|
/linux-master/drivers/gpu/drm/amd/amdkfd/ |
H A D | kfd_events.c | 263 struct kfd_event_waiter *waiter; local 267 list_for_each_entry(waiter, &ev->wq.head, wait.entry) 268 WRITE_ONCE(waiter->event, NULL); 625 struct kfd_event_waiter *waiter; local 639 list_for_each_entry(waiter, &ev->wq.head, wait.entry) 640 WRITE_ONCE(waiter->activated, true); 799 struct kfd_event_waiter *waiter, 808 waiter->event = ev; 809 waiter->activated = ev->signaled; 813 if (waiter 798 init_event_waiter(struct kfd_process *p, struct kfd_event_waiter *waiter, struct kfd_event_data *event_data) argument 869 struct kfd_event_waiter *waiter; local [all...] |
/linux-master/tools/testing/selftests/futex/functional/ |
H A D | futex_requeue_pi.c | 128 info("waiter %ld woke with %d %s\n", args->id, args->ret, 285 pthread_t waiter[THREAD_MAX], waker, blocker; local 322 if (create_rt_thread(&waiter[i], waiterfn, (void *)&args[i], 341 pthread_join(waiter[i],
|
H A D | futex_requeue_pi_signal_restart.c | 9 * kernel. The latter should return EWOULDBLOCK to the waiter. 122 pthread_t waiter; local 157 info("Creating waiter\n"); 158 res = create_rt_thread(&waiter, waiterfn, NULL, SCHED_FIFO, 1); 172 * signal the waiter before requeue, waiter should automatically 174 * waiter to block on f1 again. 176 info("Issuing SIGUSR1 to waiter\n"); 177 pthread_kill(waiter, SIGUSR1); 180 info("Requeueing waiter vi [all...] |
H A D | futex_waitv.c | 62 pthread_t waiter; local 97 if (pthread_create(&waiter, NULL, waiterfn, NULL)) 130 if (pthread_create(&waiter, NULL, waiterfn, NULL)) 148 /* Testing a waiter without FUTEX_32 flag */ 166 /* Testing a waiter with an unaligned address */
|
/linux-master/tools/testing/kunit/ |
H A D | kunit_kernel.py | 356 waiter = threading.Thread(target=_wait_proc) 357 waiter.start() 372 waiter.join()
|
/linux-master/kernel/locking/ |
H A D | rtmutex.c | 35 static inline int __ww_mutex_add_waiter(struct rt_mutex_waiter *waiter, argument 53 struct rt_mutex_waiter *waiter, 73 * NULL 1 lock is free and has waiters and the top waiter 183 * With the check for the waiter bit in place T3 on CPU2 will not 271 * If a new waiter comes in between the unlock and the cmpxchg 289 * wake waiter(); 357 * Update the waiter->tree copy of the sort keys. 360 waiter_update_prio(struct rt_mutex_waiter *waiter, struct task_struct *task) argument 362 lockdep_assert_held(&waiter->lock->wait_lock); 363 lockdep_assert(RB_EMPTY_NODE(&waiter 52 __ww_mutex_check_kill(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct ww_acquire_ctx *ww_ctx) argument 373 waiter_clone_prio(struct rt_mutex_waiter *waiter, struct task_struct *task) argument 427 rt_mutex_steal(struct rt_mutex_waiter *waiter, struct rt_mutex_waiter *top_waiter) argument 477 rt_mutex_enqueue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter) argument 485 rt_mutex_dequeue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter) argument 505 rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter) argument 513 rt_mutex_dequeue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter) argument 589 rt_mutex_cond_detect_deadlock(struct rt_mutex_waiter *waiter, enum rtmutex_chainwalk chwalk) argument 682 struct rt_mutex_waiter *waiter, *top_waiter = orig_waiter; local 1084 try_to_take_rt_mutex(struct rt_mutex_base *lock, struct task_struct *task, struct rt_mutex_waiter *waiter) argument 1200 task_blocks_on_rt_mutex(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, struct task_struct *task, struct ww_acquire_ctx *ww_ctx, enum rtmutex_chainwalk chwalk) argument 1311 struct rt_mutex_waiter *waiter; local 1477 rtmutex_spin_on_owner(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, struct task_struct *owner) argument 1514 rtmutex_spin_on_owner(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, struct task_struct *owner) argument 1535 remove_waiter(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter) argument 1599 rt_mutex_slowlock_block(struct rt_mutex_base *lock, struct ww_acquire_ctx *ww_ctx, unsigned int state, struct hrtimer_sleeper *timeout, struct rt_mutex_waiter *waiter) argument 1677 __rt_mutex_slowlock(struct rt_mutex_base *lock, struct ww_acquire_ctx *ww_ctx, unsigned int state, enum rtmutex_chainwalk chwalk, struct rt_mutex_waiter *waiter) argument 1734 struct rt_mutex_waiter waiter; local 1808 struct rt_mutex_waiter waiter; local [all...] |
H A D | rwsem.c | 370 rwsem_add_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter) argument 373 list_add_tail(&waiter->list, &sem->wait_list); 378 * Remove a waiter from the wait_list and clear flags. 386 rwsem_del_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter) argument 389 list_del(&waiter->list); 415 struct rwsem_waiter *waiter, *tmp; local 422 * Take a peek at the queue head waiter such that we can determine 425 waiter = rwsem_first_waiter(sem); 427 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { 436 wake_q_add(wake_q, waiter 604 rwsem_try_write_lock(struct rw_semaphore *sem, struct rwsem_waiter *waiter) argument 1000 struct rwsem_waiter waiter; local 1109 struct rwsem_waiter waiter; local [all...] |
H A D | mutex.c | 64 * Bit0 indicates a non-empty waiter list; unlock must issue a wakeup. 65 * Bit1 indicates unlock needs to hand the lock to the top-waiter 195 static inline bool __mutex_waiter_is_first(struct mutex *lock, struct mutex_waiter *waiter) argument 197 return list_first_entry(&lock->wait_list, struct mutex_waiter, list) == waiter; 201 * Add @waiter to a given location in the lock wait_list and set the 202 * FLAG_WAITERS flag if it's the first waiter. 205 __mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter, argument 208 debug_mutex_add_waiter(lock, waiter, current); 210 list_add_tail(&waiter->list, list); 211 if (__mutex_waiter_is_first(lock, waiter)) 216 __mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter) argument 304 ww_mutex_spin_on_owner(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter) argument 352 mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner, struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter) argument 441 mutex_optimistic_spin(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter) argument 517 mutex_optimistic_spin(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter) argument 578 struct mutex_waiter waiter; local 941 struct mutex_waiter *waiter = local [all...] |
H A D | ww_mutex.h | 53 __ww_waiter_add(struct mutex *lock, struct mutex_waiter *waiter, struct mutex_waiter *pos) argument 58 __mutex_add_waiter(lock, waiter, p); 130 __ww_waiter_add(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct rt_mutex_waiter *pos) argument 132 /* RT unconditionally adds the waiter first and then removes it on error */ 232 * so the wait_list ordering will go wobbly. rt_mutex re-queues the waiter and 269 * Wait-Die; wake a lesser waiter context (when locks held) such that it can 277 __ww_mutex_die(struct MUTEX *lock, struct MUTEX_WAITER *waiter, argument 283 if (waiter->ww_ctx->acquired > 0 && __ww_ctx_less(waiter->ww_ctx, ww_ctx)) { 285 debug_mutex_wake_waiter(lock, waiter); 441 __ww_mutex_check_kill(struct MUTEX *lock, struct MUTEX_WAITER *waiter, struct ww_acquire_ctx *ctx) argument 489 __ww_mutex_add_waiter(struct MUTEX_WAITER *waiter, struct MUTEX *lock, struct ww_acquire_ctx *ww_ctx) argument [all...] |
H A D | rtmutex_common.h | 22 * This is a helper for the struct rt_mutex_waiter below. A waiter goes in two 27 * @prio: Priority of the waiter 28 * @deadline: Deadline of the waiter if applicable 45 * @lock: Pointer to the rt_mutex on which the waiter blocks 85 struct rt_mutex_waiter *waiter, 88 struct rt_mutex_waiter *waiter, 92 struct rt_mutex_waiter *waiter); 94 struct rt_mutex_waiter *waiter); 116 * Lockless speculative check whether @waiter is still the top waiter o 120 rt_mutex_waiter_is_top_waiter(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter) argument 199 debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter) argument 205 debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter) argument 211 rt_mutex_init_waiter(struct rt_mutex_waiter *waiter) argument 220 rt_mutex_init_rtlock_waiter(struct rt_mutex_waiter *waiter) argument [all...] |
H A D | rtmutex_api.c | 163 * @wqh: The wake queue head from which to get the next lock waiter 276 * @waiter: the pre-initialized rt_mutex_waiter 279 * Starts the rt_mutex acquire; it enqueues the @waiter and does deadlock 282 * NOTE: does _NOT_ remove the @waiter on failure; must either call 293 struct rt_mutex_waiter *waiter, 304 ret = task_blocks_on_rt_mutex(lock, waiter, task, NULL, 312 * pi chain. Let the waiter sort it out. 323 * @waiter: the pre-initialized rt_mutex_waiter 326 * Starts the rt_mutex acquire; it enqueues the @waiter and does deadlock 329 * NOTE: unlike __rt_mutex_start_proxy_lock this _DOES_ remove the @waiter 292 __rt_mutex_start_proxy_lock(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, struct task_struct *task) argument 339 rt_mutex_start_proxy_lock(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter, struct task_struct *task) argument 371 rt_mutex_wait_proxy_lock(struct rt_mutex_base *lock, struct hrtimer_sleeper *to, struct rt_mutex_waiter *waiter) argument 411 rt_mutex_cleanup_proxy_lock(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter) argument 455 struct rt_mutex_waiter *waiter; local [all...] |
H A D | semaphore.c | 212 struct semaphore_waiter waiter; local 214 list_add_tail(&waiter.list, &sem->wait_list); 215 waiter.task = current; 216 waiter.up = false; 227 if (waiter.up) 232 list_del(&waiter.list); 236 list_del(&waiter.list); 274 struct semaphore_waiter *waiter = list_first_entry(&sem->wait_list, local 276 list_del(&waiter->list); 277 waiter [all...] |
/linux-master/include/linux/ |
H A D | filelock.h | 329 static inline int locks_delete_block(struct file_lock *waiter) argument
|
/linux-master/fs/ |
H A D | locks.c | 675 static void locks_insert_global_blocked(struct file_lock_core *waiter) argument 679 hash_add(blocked_hash, &waiter->flc_link, posix_owner_key(waiter)); 682 static void locks_delete_global_blocked(struct file_lock_core *waiter) argument 686 hash_del(&waiter->flc_link); 689 /* Remove waiter from blocker's block list. 694 static void __locks_unlink_block(struct file_lock_core *waiter) argument 696 locks_delete_global_blocked(waiter); 697 list_del_init(&waiter->flc_blocked_member); 703 struct file_lock_core *waiter; local 726 __locks_delete_block(struct file_lock_core *waiter) argument 776 locks_delete_block(struct file_lock *waiter) argument 797 __locks_insert_block(struct file_lock_core *blocker, struct file_lock_core *waiter, bool conflict(struct file_lock_core *, struct file_lock_core *)) argument 826 locks_insert_block(struct file_lock_core *blocker, struct file_lock_core *waiter, bool conflict(struct file_lock_core *, struct file_lock_core *)) argument [all...] |
/linux-master/fs/iomap/ |
H A D | direct-io.c | 45 struct task_struct *waiter; member in struct:iomap_dio::__anon1795::__anon1796 175 struct task_struct *waiter = dio->submit.waiter; local 177 WRITE_ONCE(dio->submit.waiter, NULL); 178 blk_wake_io_task(waiter); 578 dio->submit.waiter = current; 724 if (!READ_ONCE(dio->submit.waiter))
|
/linux-master/drivers/staging/vc04_services/interface/vchiq_arm/ |
H A D | vchiq_dev.c | 290 struct bulk_waiter_node *waiter = NULL, *iter; local 300 waiter = kzalloc(sizeof(*waiter), GFP_KERNEL); 301 if (!waiter) { 306 userdata = &waiter->bulk_waiter; 313 waiter = iter; 318 if (!waiter) { 325 waiter, current->pid); 326 userdata = &waiter->bulk_waiter; 334 if (!waiter) { [all...] |
H A D | vchiq_core.c | 1323 struct bulk_waiter *waiter; local 1326 waiter = bulk->userdata; 1327 if (waiter) { 1328 waiter->actual = bulk->actual; 1329 complete(&waiter->event);
|
H A D | vchiq_arm.c | 716 struct bulk_waiter_node *waiter, *next; local 718 list_for_each_entry_safe(waiter, next, 720 list_del(&waiter->list); 723 waiter, waiter->pid); 724 kfree(waiter); 923 struct bulk_waiter_node *waiter = NULL, *iter; local 935 waiter = iter; 941 if (waiter) { 942 struct vchiq_bulk *bulk = waiter [all...] |
/linux-master/drivers/tty/ |
H A D | tty_ldsem.c | 8 * 2) Write waiter has priority 76 struct ldsem_waiter *waiter, *next; local 94 list_for_each_entry_safe(waiter, next, &sem->read_wait, list) { 95 tsk = waiter->task; 96 smp_store_release(&waiter->task, NULL); 121 struct ldsem_waiter *waiter; local 123 waiter = list_entry(sem->write_wait.next, struct ldsem_waiter, list); 124 wake_up_process(waiter->task); 158 struct ldsem_waiter waiter; local 180 list_add_tail(&waiter 232 struct ldsem_waiter waiter; local [all...] |
/linux-master/drivers/gpu/drm/i915/ |
H A D | i915_scheduler_types.h | 74 struct i915_sched_node *waiter; member in struct:i915_dependency
|
H A D | i915_scheduler.c | 340 dep->waiter = node;
|