Home
last modified time | relevance | path

Searched refs:waiters (Results 1 – 25 of 39) sorted by relevance

12

/OK3568_Linux_fs/kernel/drivers/gpu/drm/radeon/
H A Dradeon_semaphore.c50 (*semaphore)->waiters = 0; in radeon_semaphore_create()
66 --semaphore->waiters; in radeon_semaphore_emit_signal()
83 ++semaphore->waiters; in radeon_semaphore_emit_wait()
99 if ((*semaphore)->waiters > 0) { in radeon_semaphore_free()
H A Dradeon_trace.h176 __field(signed, waiters)
182 __entry->waiters = sem->waiters;
187 __entry->waiters, __entry->gpu_addr)
/OK3568_Linux_fs/kernel/Documentation/locking/
H A Drt-mutex.rst32 The enqueueing of the waiters into the rtmutex waiter tree is done in
35 priority waiters tree. This tree too queues in priority order. Whenever
42 without waiters. The optimized fastpath operations require cmpxchg
50 keep track of the "lock has waiters" state:
56 NULL 1 lock is free and has waiters and the top waiter
59 taskpointer 1 lock is held and has waiters [2]_
71 waiters. This can happen when grabbing the lock in the slow path.
H A Drt-mutex-design.rst107 place the task in the waiters rbtree of a mutex as well as the
113 waiters
199 Every mutex keeps track of all the waiters that are blocked on itself. The
200 mutex has a rbtree to store these waiters by priority. This tree is protected
209 a tree of all top waiters of the mutexes that are owned by the process.
210 Note that this tree only holds the top waiters and not all waiters that are
309 flag. It's set whenever there are waiters on a mutex.
358 the pi_waiters of a task holds an order by priority of all the top waiters
410 in the pi_waiters and waiters trees that the task is blocked on. This function
434 the task on the waiters tree of the mutex, and if need be, the pi_waiters
[all …]
H A Dfutex-requeue-pi.rst7 left without an owner if it has waiters; doing so would break the PI
48 has waiters. Note that pthread_cond_wait() attempts to lock the
50 underlying rt_mutex with waiters, and no owner, breaking the
89 In order to ensure the rt_mutex has an owner if it has waiters, it
H A Dww-mutex-design.rst344 (1) Waiters with an acquire context are sorted by stamp order; waiters
346 (2) For Wait-Die, among waiters with contexts, only the first one can have
348 may come after other waiters without contexts in the list.
/OK3568_Linux_fs/kernel/kernel/locking/
H A Dpercpu-rwsem.c37 init_waitqueue_head(&sem->waiters); in __percpu_init_rwsem()
160 spin_lock_irq(&sem->waiters.lock); in percpu_rwsem_wait()
168 __add_wait_queue_entry_tail(&sem->waiters, &wq_entry); in percpu_rwsem_wait()
170 spin_unlock_irq(&sem->waiters.lock); in percpu_rwsem_wait()
279 __wake_up(&sem->waiters, TASK_NORMAL, 1, sem); in percpu_up_write()
H A Drtmutex_common.h49 return !RB_EMPTY_ROOT(&lock->waiters.rb_root); in rt_mutex_has_waiters()
55 struct rb_node *leftmost = rb_first_cached(&lock->waiters); in rt_mutex_top_waiter()
H A Drtmutex.c274 struct rb_node **link = &lock->waiters.rb_root.rb_node; in rt_mutex_enqueue()
291 rb_insert_color_cached(&waiter->tree_entry, &lock->waiters, leftmost); in rt_mutex_enqueue()
300 rb_erase_cached(&waiter->tree_entry, &lock->waiters); in rt_mutex_dequeue()
1689 lock->waiters = RB_ROOT_CACHED; in __rt_mutex_init()
/OK3568_Linux_fs/kernel/drivers/md/persistent-data/
H A Ddm-block-manager.c46 struct list_head waiters; member
153 list_for_each_entry_safe(w, tmp, &lock->waiters, list) { in __wake_many()
179 INIT_LIST_HEAD(&lock->waiters); in bl_init()
188 list_empty(&lock->waiters); in __available_for_read()
214 list_add_tail(&w.list, &lock->waiters); in bl_down_read()
249 if (!list_empty(&lock->waiters)) in bl_up_read()
266 if (lock->count == 0 && list_empty(&lock->waiters)) { in bl_down_write()
281 list_add(&w.list, &lock->waiters); in bl_down_write()
295 if (!list_empty(&lock->waiters)) in bl_up_write()
/OK3568_Linux_fs/kernel/include/linux/
H A Dpercpu-rwsem.h19 wait_queue_head_t waiters; member
43 .waiters = __WAIT_QUEUE_HEAD_INITIALIZER(name.waiters), \
H A Drtmutex.h32 struct rb_root_cached waiters; member
87 , .waiters = RB_ROOT_CACHED \
H A Dpage-flags.h333 PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD)
/OK3568_Linux_fs/kernel/drivers/greybus/
H A Dgreybus_trace.h102 __field(int, waiters)
112 __entry->waiters = atomic_read(&operation->waiters);
118 __entry->active, __entry->waiters, __entry->errno)
H A Doperation.c90 if (atomic_read(&operation->waiters)) in gb_operation_put_active()
554 atomic_set(&operation->waiters, 0); in gb_operation_create_common()
1082 atomic_inc(&operation->waiters); in gb_operation_cancel()
1085 atomic_dec(&operation->waiters); in gb_operation_cancel()
1109 atomic_inc(&operation->waiters); in gb_operation_cancel_incoming()
1112 atomic_dec(&operation->waiters); in gb_operation_cancel_incoming()
/OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdkfd/
H A Dkfd_events.c654 static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters) in free_waiters() argument
659 if (waiters[i].event) in free_waiters()
660 remove_wait_queue(&waiters[i].event->wq, in free_waiters()
661 &waiters[i].wait); in free_waiters()
663 kfree(waiters); in free_waiters()
/OK3568_Linux_fs/kernel/Documentation/scheduler/
H A Dcompletion.rst247 achieved calls complete() to signal exactly one of the waiters that it can
252 ... or calls complete_all() to signal all current and future waiters::
262 of waiters to continue - each call to complete() will simply increment the
287 completions that were not yet consumed by waiters (implying that there are
288 waiters) and true otherwise::
/OK3568_Linux_fs/kernel/drivers/tee/optee/
H A Dcall.c43 list_add_tail(&w->list_node, &cq->waiters); in optee_cq_wait_init()
58 list_add_tail(&w->list_node, &cq->waiters); in optee_cq_wait_for_completion()
67 list_for_each_entry(w, &cq->waiters, list_node) { in optee_cq_complete_one()
H A Doptee_private.h35 struct list_head waiters; member
/OK3568_Linux_fs/kernel/tools/testing/selftests/filesystems/epoll/
H A Depoll_wakeup_test.c3147 int waiters; member
3177 __atomic_fetch_add(&ctx->waiters, 1, __ATOMIC_ACQUIRE); in epoll60_wait_thread()
3191 __atomic_fetch_sub(&ctx->waiters, 1, __ATOMIC_RELEASE); in epoll60_wait_thread()
3211 return __atomic_load_n(&ctx->waiters, __ATOMIC_ACQUIRE); in count_waiters()
3217 pthread_t waiters[ARRAY_SIZE(ctx.evfd)]; in TEST() local
3237 for (i = 0; i < ARRAY_SIZE(waiters); i++) in TEST()
3238 ASSERT_EQ(pthread_create(&waiters[i], NULL, in TEST()
3275 for (i = 0; i < ARRAY_SIZE(waiters); i++) in TEST()
3276 ret = pthread_kill(waiters[i], SIGUSR1); in TEST()
3277 for (i = 0; i < ARRAY_SIZE(waiters); i++) in TEST()
[all …]
/OK3568_Linux_fs/kernel/include/linux/greybus/
H A Doperation.h108 atomic_t waiters; member
/OK3568_Linux_fs/kernel/fs/xfs/
H A Dxfs_log.c154 INIT_LIST_HEAD(&head->waiters); in xlog_grant_head_init()
165 list_for_each_entry(tic, &head->waiters, t_queue) in xlog_grant_head_wake_all()
197 list_for_each_entry(tic, &head->waiters, t_queue) { in xlog_grant_head_wake()
244 list_add_tail(&tic->t_queue, &head->waiters); in xlog_grant_head_wait()
309 if (!list_empty_careful(&head->waiters)) { in xlog_grant_head_check()
1019 if (!list_empty_careful(&log->l_write_head.waiters)) { in xfs_log_space_wake()
1028 if (!list_empty_careful(&log->l_reserve_head.waiters)) { in xfs_log_space_wake()
H A Dxfs_log_priv.h374 struct list_head waiters; member
/OK3568_Linux_fs/kernel/kernel/
H A Dfutex.c237 atomic_t waiters; member
323 atomic_inc(&hb->waiters); in hb_waiters_inc()
338 atomic_dec(&hb->waiters); in hb_waiters_dec()
349 return atomic_read(&hb->waiters); in hb_waiters_pending()
4046 atomic_set(&futex_queues[i].waiters, 0); in futex_init()
/OK3568_Linux_fs/kernel/kernel/trace/
H A Dring_buffer.c415 wait_queue_head_t waiters; member
821 wake_up_all(&rbwork->waiters); in rb_wake_up_waiters()
900 prepare_to_wait(&work->waiters, &wait, TASK_INTERRUPTIBLE); in ring_buffer_wait()
967 finish_wait(&work->waiters, &wait); in ring_buffer_wait()
1008 poll_wait(filp, &work->waiters, poll_table); in ring_buffer_poll_wait()
1624 init_waitqueue_head(&cpu_buffer->irq_work.waiters); in rb_allocate_cpu_buffer()
1720 init_waitqueue_head(&buffer->irq_work.waiters); in __ring_buffer_alloc()

12