/linux-master/include/linux/ |
H A D | blkdev.h | 1446 static inline void blk_wake_io_task(struct task_struct *waiter) argument 1453 if (waiter == current) 1456 wake_up_process(waiter);
|
/linux-master/drivers/gpu/drm/i915/gt/ |
H A D | intel_execlists_submission.c | 1094 container_of(p->waiter, typeof(*w), sched); 1103 /* No waiter should start before its signaler */ 2074 container_of(p->waiter, typeof(*w), sched); 2175 container_of(p->waiter, typeof(*w), sched);
|
/linux-master/mm/ |
H A D | filemap.c | 1073 * The waiter is waiting to get the lock, and only one waiter should 1081 * The waiter is waiting to get the bit, and additionally wants the 1084 * the waiter. 1087 * WQ_FLAG_WOKEN, we set WQ_FLAG_DONE to let the waiter easily see 1116 * We are holding the wait-queue lock, but the waiter that 1120 * So update the flags atomically, and wake up the waiter 1132 * waiter, and has to be the absolute last thing we do. 1201 /* How many times do we accept lock stealing from under a waiter? */ 1310 * waiter fro 1457 folio_add_wait_queue(struct folio *folio, wait_queue_entry_t *waiter) argument [all...] |
/linux-master/kernel/printk/ |
H A D | printk.c | 1850 * there may be a waiter spinning (like a spinlock). Also it must be 1872 /* The waiter may spin on us after setting console_owner */ 1878 * thread was able to busy wait and check if there is a waiter 1884 * there is a busy waiter and passes the lock rights to her. 1887 * there was a busy waiter. They must not touch items synchronized by 1894 int waiter; local 1901 * in the first place. If there has been a waiter then non panic CPUs 1913 waiter = READ_ONCE(console_waiter); 1917 if (!waiter) { 1922 /* The waiter i 1954 bool waiter; local [all...] |
/linux-master/fs/nfs/ |
H A D | nfs4proc.c | 7477 struct nfs4_lock_waiter *waiter = local 7484 *wowner = &waiter->owner; 7491 if (nfs_compare_fh(NFS_FH(waiter->inode), &cbnl->cbnl_fh)) 7505 struct nfs4_lock_waiter waiter = { local 7517 init_wait(&waiter.wait); 7518 waiter.wait.func = nfs4_wake_lock_waiter; 7519 add_wait_queue(q, &waiter.wait); 7527 wait_woken(&waiter.wait, TASK_INTERRUPTIBLE|TASK_FREEZABLE, 7531 remove_wait_queue(q, &waiter.wait);
|
/linux-master/drivers/md/persistent-data/ |
H A D | dm-block-manager.c | 55 struct waiter { struct 122 static void __wait(struct waiter *w) 136 static void __wake_waiter(struct waiter *w) 152 struct waiter *w, *tmp; 196 struct waiter w; 259 struct waiter w;
|
/linux-master/drivers/md/dm-vdo/ |
H A D | wait-queue.h | 49 * of a waiter after it has been removed from its wait queue. 51 typedef void (*vdo_waiter_callback_fn)(struct vdo_waiter *waiter, void *context); 54 * vdo_waiter_match_fn - Method type for waiter matching methods. 56 * Returns false if the waiter does not match. 58 typedef bool (*vdo_waiter_match_fn)(struct vdo_waiter *waiter, void *context); 63 * The next waiter in the waitq. If this entry is the last waiter, then this 68 /* Optional waiter-specific callback to invoke when dequeuing this waiter. */ 73 * vdo_waiter_is_waiting() - Check whether a waiter i 78 vdo_waiter_is_waiting(struct vdo_waiter *waiter) argument [all...] |
H A D | vdo.c | 1086 if (notifier->waiter != NULL) { 1093 notifier->waiter = parent; 1098 if (notifier->waiter == NULL) { 1134 if (notifier->waiter != NULL) 1135 vdo_continue_completion(vdo_forget(notifier->waiter), 1214 if (notifier->waiter != NULL) { 1225 notifier->waiter = parent; 1230 if (notifier->waiter == NULL) {
|
H A D | vdo.h | 112 struct vdo_completion *waiter; member in struct:read_only_notifier
|
H A D | vio.c | 400 * @waiter: Object that is requesting a vio. 402 void acquire_vio_from_pool(struct vio_pool *pool, struct vdo_waiter *waiter) argument 410 vdo_waitq_enqueue_waiter(&pool->waiting, waiter); 417 (*waiter->callback)(waiter, pooled);
|
H A D | vio.h | 196 void acquire_vio_from_pool(struct vio_pool *pool, struct vdo_waiter *waiter);
|
H A D | wait-queue.c | 15 * vdo_waitq_enqueue_waiter() - Add a waiter to the tail end of a waitq. 16 * @waitq: The vdo_wait_queue to which to add the waiter. 17 * @waiter: The waiter to add to the waitq. 19 * The waiter must not already be waiting in a waitq. 21 void vdo_waitq_enqueue_waiter(struct vdo_wait_queue *waitq, struct vdo_waiter *waiter) argument 23 BUG_ON(waiter->next_waiter != NULL); 28 * initial waiter. 30 waiter->next_waiter = waiter; 138 struct vdo_waiter *waiter = vdo_waitq_dequeue_waiter(&iteration_waitq); local 195 struct vdo_waiter *waiter = vdo_waitq_dequeue_waiter(waitq); local [all...] |
H A D | slab-depot.c | 126 static void release_journal_locks(struct vdo_waiter *waiter, void *context); 353 * @waiter: The waiter that is updating the summary. 359 static void update_slab_summary_entry(struct vdo_slab *slab, struct vdo_waiter *waiter, argument 372 waiter->callback(waiter, &result); 379 waiter->callback(waiter, &result); 390 vdo_waitq_enqueue_waiter(&block->next_update_waiters, waiter); 444 * flush_for_reaping() - A waiter callbac 449 flush_for_reaping(struct vdo_waiter *waiter, void *context) argument 558 release_journal_locks(struct vdo_waiter *waiter, void *context) argument 742 write_slab_journal_block(struct vdo_waiter *waiter, void *context) argument 1015 finish_summary_update(struct vdo_waiter *waiter, void *context) argument 1041 launch_reference_block_write(struct vdo_waiter *waiter, void *context) argument 1185 write_reference_block(struct vdo_waiter *waiter, void *context) argument 1689 add_entry_from_waiter(struct vdo_waiter *waiter, void *context) argument 1755 struct vdo_waiter *waiter = vdo_waitq_get_first_waiter(&journal->entry_waiters); local 2269 load_reference_block(struct vdo_waiter *waiter, void *context) argument 2294 struct vdo_waiter *waiter = &slab->reference_blocks[i].waiter; local 2465 read_slab_journal_tail(struct vdo_waiter *waiter, void *context) argument 3063 abort_waiter(struct vdo_waiter *waiter, void *context __always_unused) argument 3219 vdo_enqueue_clean_slab_waiter(struct block_allocator *allocator, struct vdo_waiter *waiter) argument [all...] |
H A D | slab-depot.h | 68 /* A waiter object for getting a VIO pool entry */ 70 /* A waiter object for updating the slab summary */ 72 /* A waiter object for getting a vio with which to flush */ 158 struct vdo_waiter waiter; member in struct:reference_block 254 /* A waiter object for updating the slab summary */ 531 struct vdo_waiter *waiter);
|
H A D | recovery-journal.c | 267 static void continue_waiter(struct vdo_waiter *waiter, void *context) argument 269 continue_data_vio_with_error(vdo_waiter_as_data_vio(waiter), *((int *) context)); 276 * Return: true if any block has a waiter. 1080 * assign_entry() - Assign an entry waiter to the active block. 1084 static void assign_entry(struct vdo_waiter *waiter, void *context) argument 1086 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); 1102 vdo_waitq_enqueue_waiter(&block->entry_waiters, &data_vio->waiter); 1171 static void continue_committed_waiter(struct vdo_waiter *waiter, void *context) argument 1173 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); 1180 "DataVIOs released from recovery journal in order. Recovery journal point is (%llu, %u), but commit waiter poin 1368 write_block(struct vdo_waiter *waiter, void *context __always_unused) argument [all...] |
H A D | physical-zone.c | 517 * @waiter: The allocating_vio that was waiting to allocate. 520 static void retry_allocation(struct vdo_waiter *waiter, void *context __always_unused) argument 522 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); 560 data_vio->waiter.callback = retry_allocation; 562 &data_vio->waiter);
|
H A D | flush.c | 92 * @waiter: The wait queue entry to convert. 96 static struct vdo_flush *vdo_waiter_as_flush(struct vdo_waiter *waiter) argument 98 return container_of(waiter, struct vdo_flush, waiter); 285 vdo_waitq_enqueue_waiter(&flusher->notifiers, &flush->waiter);
|
H A D | flush.h | 21 struct vdo_waiter waiter; member in struct:vdo_flush
|
H A D | dump.c | 154 struct vdo_waiter *waiter, *first = vdo_waitq_get_first_waiter(waitq); local 166 for (waiter = first->next_waiter; waiter != first; waiter = waiter->next_waiter) { 167 data_vio = vdo_waiter_as_data_vio(waiter); 195 if (data_vio->waiter.next_waiter != NULL)
|
H A D | dedupe.c | 427 * Return: The first (oldest) waiter in the queue, or NULL if the queue is empty. 522 * retire_lock_agent() - Retire the active lock agent, replacing it with the first lock waiter, and 526 * Return: The new lock agent (which will be NULL if there was no waiter) 547 vdo_waitq_enqueue_waiter(&lock->waiters, &data_vio->waiter); 570 * @waiter: The data_vio's waiter link. 573 static void abort_waiter(struct vdo_waiter *waiter, void *context __always_unused) argument 575 write_data_vio(vdo_waiter_as_data_vio(waiter)); 657 * need to be re-verified if a waiter arrived. 664 * agent was releasing the PBN lock. The current agent exits and the waiter ha 928 enter_forked_lock(struct vdo_waiter *waiter, void *context) argument [all...] |
H A D | data-vio.h | 172 struct vdo_waiter waiter; member in struct:reference_updater 178 struct vdo_waiter waiter; member in struct:data_vio 292 static inline struct data_vio *vdo_waiter_as_data_vio(struct vdo_waiter *waiter) argument 294 if (waiter == NULL) 297 return container_of(waiter, struct data_vio, waiter);
|
H A D | data-vio.c | 109 * eldest discard waiter, and that waiter is moved to the end of the list of discard bios waiting 146 /* The function for assigning a resource to a waiter */ 150 /* The arrival time of the eldest waiter */ 468 vdo_waitq_enqueue_waiter(&lock_holder->logical.waiters, &data_vio->waiter); 1190 /** transfer_lock() - Transfer a contended LBN lock to the eldest waiter. */
|
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...] |