Home
last modified time | relevance | path

Searched refs:waiter (Results 1 – 25 of 62) sorted by relevance

123

/OK3568_Linux_fs/kernel/drivers/gpu/host1x/
H A Dintr.c36 static bool add_waiter_to_queue(struct host1x_waitlist *waiter, in add_waiter_to_queue() argument
40 u32 thresh = waiter->thresh; in add_waiter_to_queue()
44 list_add(&waiter->list, &pos->list); in add_waiter_to_queue()
48 list_add(&waiter->list, queue); in add_waiter_to_queue()
60 struct host1x_waitlist *waiter, *next, *prev; in remove_completed_waiters() local
62 list_for_each_entry_safe(waiter, next, head, list) { in remove_completed_waiters()
63 if ((s32)(waiter->thresh - sync) > 0) in remove_completed_waiters()
66 dest = completed + waiter->action; in remove_completed_waiters()
69 if (waiter->action == HOST1X_INTR_ACTION_SUBMIT_COMPLETE && in remove_completed_waiters()
73 if (prev->data == waiter->data) { in remove_completed_waiters()
[all …]
/OK3568_Linux_fs/kernel/kernel/locking/
H A Drtmutex.c272 rt_mutex_enqueue(struct rt_mutex *lock, struct rt_mutex_waiter *waiter) in rt_mutex_enqueue() argument
282 if (rt_mutex_waiter_less(waiter, entry)) { in rt_mutex_enqueue()
290 rb_link_node(&waiter->tree_entry, parent, link); in rt_mutex_enqueue()
291 rb_insert_color_cached(&waiter->tree_entry, &lock->waiters, leftmost); in rt_mutex_enqueue()
295 rt_mutex_dequeue(struct rt_mutex *lock, struct rt_mutex_waiter *waiter) in rt_mutex_dequeue() argument
297 if (RB_EMPTY_NODE(&waiter->tree_entry)) in rt_mutex_dequeue()
300 rb_erase_cached(&waiter->tree_entry, &lock->waiters); in rt_mutex_dequeue()
301 RB_CLEAR_NODE(&waiter->tree_entry); in rt_mutex_dequeue()
305 rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter) in rt_mutex_enqueue_pi() argument
315 if (rt_mutex_waiter_less(waiter, entry)) { in rt_mutex_enqueue_pi()
[all …]
H A Dmutex-debug.c30 void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) in debug_mutex_lock_common() argument
32 memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter)); in debug_mutex_lock_common()
33 waiter->magic = waiter; in debug_mutex_lock_common()
34 INIT_LIST_HEAD(&waiter->list); in debug_mutex_lock_common()
37 void debug_mutex_wake_waiter(struct mutex *lock, struct mutex_waiter *waiter) in debug_mutex_wake_waiter() argument
41 DEBUG_LOCKS_WARN_ON(waiter->magic != waiter); in debug_mutex_wake_waiter()
42 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list)); in debug_mutex_wake_waiter()
45 void debug_mutex_free_waiter(struct mutex_waiter *waiter) in debug_mutex_free_waiter() argument
47 DEBUG_LOCKS_WARN_ON(!list_empty(&waiter->list)); in debug_mutex_free_waiter()
48 memset(waiter, MUTEX_DEBUG_FREE, sizeof(*waiter)); in debug_mutex_free_waiter()
[all …]
H A Dmutex.c202 static inline bool __mutex_waiter_is_first(struct mutex *lock, struct mutex_waiter *waiter) in __mutex_waiter_is_first() argument
204 return list_first_entry(&lock->wait_list, struct mutex_waiter, list) == waiter; in __mutex_waiter_is_first()
212 __mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter, in __mutex_add_waiter() argument
216 debug_mutex_add_waiter(lock, waiter, current); in __mutex_add_waiter()
218 trace_android_vh_alter_mutex_list_add(lock, waiter, list, &already_on_list); in __mutex_add_waiter()
220 list_add_tail(&waiter->list, list); in __mutex_add_waiter()
221 if (__mutex_waiter_is_first(lock, waiter)) in __mutex_add_waiter()
226 __mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter) in __mutex_remove_waiter() argument
228 list_del(&waiter->list); in __mutex_remove_waiter()
232 debug_mutex_remove_waiter(lock, waiter, current); in __mutex_remove_waiter()
[all …]
H A Drtmutex-debug.c87 void debug_rt_mutex_print_deadlock(struct rt_mutex_waiter *waiter) in debug_rt_mutex_print_deadlock() argument
91 if (!waiter->deadlock_lock || !debug_locks) in debug_rt_mutex_print_deadlock()
95 task = pid_task(waiter->deadlock_task_pid, PIDTYPE_PID); in debug_rt_mutex_print_deadlock()
117 printk_lock(waiter->lock, 1); in debug_rt_mutex_print_deadlock()
121 printk_lock(waiter->deadlock_lock, 1); in debug_rt_mutex_print_deadlock()
158 void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter) in debug_rt_mutex_init_waiter() argument
160 memset(waiter, 0x11, sizeof(*waiter)); in debug_rt_mutex_init_waiter()
161 waiter->deadlock_task_pid = NULL; in debug_rt_mutex_init_waiter()
164 void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter) in debug_rt_mutex_free_waiter() argument
166 put_pid(waiter->deadlock_task_pid); in debug_rt_mutex_free_waiter()
[all …]
H A Dsemaphore.c207 struct semaphore_waiter waiter; in __down_common() local
209 list_add_tail(&waiter.list, &sem->wait_list); in __down_common()
210 waiter.task = current; in __down_common()
211 waiter.up = false; in __down_common()
222 if (waiter.up) in __down_common()
227 list_del(&waiter.list); in __down_common()
231 list_del(&waiter.list); in __down_common()
257 struct semaphore_waiter *waiter = list_first_entry(&sem->wait_list, in __up() local
259 list_del(&waiter->list); in __up()
260 waiter->up = true; in __up()
[all …]
H A Drwsem.c401 struct rwsem_waiter *waiter, *tmp; in rwsem_mark_wake() local
411 waiter = rwsem_first_waiter(sem); in rwsem_mark_wake()
413 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in rwsem_mark_wake()
422 wake_q_add(wake_q, waiter->task); in rwsem_mark_wake()
452 time_after(jiffies, waiter->timeout)) { in rwsem_mark_wake()
466 owner = waiter->task; in rwsem_mark_wake()
467 if (waiter->last_rowner & RWSEM_RD_NONSPINNABLE) { in rwsem_mark_wake()
498 list_for_each_entry_safe(waiter, tmp, &sem->wait_list, list) { in rwsem_mark_wake()
499 if (waiter->type == RWSEM_WAITING_FOR_WRITE) in rwsem_mark_wake()
503 list_move_tail(&waiter->list, &wlist); in rwsem_mark_wake()
[all …]
H A Drtmutex-debug.h13 extern void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter);
14 extern void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter);
22 struct rt_mutex_waiter *waiter,
24 extern void debug_rt_mutex_print_deadlock(struct rt_mutex_waiter *waiter);
28 static inline bool debug_rt_mutex_detect_deadlock(struct rt_mutex_waiter *waiter, in debug_rt_mutex_detect_deadlock() argument
31 return (waiter != NULL); in debug_rt_mutex_detect_deadlock()
H A Dmutex.h13 #define debug_mutex_wake_waiter(lock, waiter) do { } while (0) argument
14 #define debug_mutex_free_waiter(waiter) do { } while (0) argument
15 #define debug_mutex_add_waiter(lock, waiter, ti) do { } while (0) argument
16 #define debug_mutex_remove_waiter(lock, waiter, ti) do { } while (0) argument
21 debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) in debug_mutex_lock_common() argument
H A Dmutex-debug.h18 struct mutex_waiter *waiter);
20 struct mutex_waiter *waiter);
21 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
23 struct mutex_waiter *waiter,
25 extern void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
H A Drtmutex_common.h137 extern void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter);
139 struct rt_mutex_waiter *waiter,
142 struct rt_mutex_waiter *waiter,
146 struct rt_mutex_waiter *waiter);
148 struct rt_mutex_waiter *waiter);
/OK3568_Linux_fs/kernel/drivers/gpu/arm/mali400/mali/common/
H A Dmali_timeline.c39 struct mali_timeline_waiter *waiter);
436 struct mali_timeline_waiter *waiter = timeline->waiter_tail; in mali_timeline_update_oldest_point() local
439 waiter_time_relative = waiter->point - timeline->point_oldest; in mali_timeline_update_oldest_point()
447 if (NULL != waiter->timeline_next) { in mali_timeline_update_oldest_point()
448 waiter->timeline_next->timeline_prev = NULL; in mali_timeline_update_oldest_point()
453 timeline->waiter_tail = waiter->timeline_next; in mali_timeline_update_oldest_point()
457 schedule_mask |= mali_timeline_system_release_waiter(timeline->system, waiter); in mali_timeline_update_oldest_point()
466 struct mali_timeline_waiter *waiter; in mali_timeline_release_with_depended_point() local
481 waiter = timeline->waiter_tail; in mali_timeline_release_with_depended_point()
482 while (NULL != waiter) { in mali_timeline_release_with_depended_point()
[all …]
/OK3568_Linux_fs/kernel/drivers/tty/
H A Dtty_ldsem.c76 struct ldsem_waiter *waiter, *next; in __ldsem_wake_readers() local
94 list_for_each_entry_safe(waiter, next, &sem->read_wait, list) { in __ldsem_wake_readers()
95 tsk = waiter->task; in __ldsem_wake_readers()
96 smp_store_release(&waiter->task, NULL); in __ldsem_wake_readers()
121 struct ldsem_waiter *waiter; in __ldsem_wake_writer() local
123 waiter = list_entry(sem->write_wait.next, struct ldsem_waiter, list); in __ldsem_wake_writer()
124 wake_up_process(waiter->task); in __ldsem_wake_writer()
158 struct ldsem_waiter waiter; in down_read_failed() local
180 list_add_tail(&waiter.list, &sem->read_wait); in down_read_failed()
183 waiter.task = current; in down_read_failed()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/arm/mali400/mali/linux/
H A Dmali_internal_sync.c77 struct mali_internal_sync_fence_waiter *waiter; in mali_internal_fence_check_cb_func()
87 waiter = container_of(cb, struct mali_internal_sync_fence_waiter, cb); in mali_internal_fence_check_cb_func()
88 sync_fence = (struct mali_internal_sync_fence *)waiter->work.private; in mali_internal_fence_check_cb_func()
514 void mali_internal_sync_fence_waiter_init(struct mali_internal_sync_fence_waiter *waiter, in mali_internal_sync_fence_waiter_init() argument
517 MALI_DEBUG_ASSERT_POINTER(waiter); in mali_internal_sync_fence_waiter_init()
521 INIT_LIST_HEAD(&waiter->work.entry); in mali_internal_sync_fence_waiter_init()
523 INIT_LIST_HEAD(&waiter->work.task_list); in mali_internal_sync_fence_waiter_init()
525 waiter->callback = callback; in mali_internal_sync_fence_waiter_init()
529 struct mali_internal_sync_fence_waiter *waiter) in mali_internal_sync_fence_wait_async() argument
535 MALI_DEBUG_ASSERT_POINTER(waiter); in mali_internal_sync_fence_wait_async()
[all …]
H A Dmali_internal_sync.h117 struct mali_internal_sync_fence_waiter *waiter);
181 void mali_internal_sync_fence_waiter_init(struct mali_internal_sync_fence_waiter *waiter,
185 struct mali_internal_sync_fence_waiter *waiter);
188 struct mali_internal_sync_fence_waiter *waiter);
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rve/
H A Drve_fence.c109 struct rve_fence_waiter *waiter; in rve_add_dma_fence_callback() local
112 waiter = kmalloc(sizeof(*waiter), GFP_KERNEL); in rve_add_dma_fence_callback()
113 if (!waiter) { in rve_add_dma_fence_callback()
118 waiter->job = job; in rve_add_dma_fence_callback()
120 ret = dma_fence_add_callback(in_fence, &waiter->waiter, func); in rve_add_dma_fence_callback()
134 kfree(waiter); in rve_add_dma_fence_callback()
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/
H A Drga_fence.c122 struct rga_fence_waiter *waiter = NULL; in rga_dma_fence_add_callback() local
124 waiter = kmalloc(sizeof(*waiter), GFP_KERNEL); in rga_dma_fence_add_callback()
125 if (!waiter) { in rga_dma_fence_add_callback()
130 waiter->private = private; in rga_dma_fence_add_callback()
132 ret = dma_fence_add_callback(fence, &waiter->waiter, func); in rga_dma_fence_add_callback()
144 kfree(waiter); in rga_dma_fence_add_callback()
/OK3568_Linux_fs/kernel/lib/
H A Dklist.c185 struct klist_waiter *waiter, *tmp; in klist_release() local
191 list_for_each_entry_safe(waiter, tmp, &klist_remove_waiters, list) { in klist_release()
192 if (waiter->node != n) in klist_release()
195 list_del(&waiter->list); in klist_release()
196 waiter->woken = 1; in klist_release()
198 wake_up_process(waiter->process); in klist_release()
240 struct klist_waiter waiter; in klist_remove() local
242 waiter.node = n; in klist_remove()
243 waiter.process = current; in klist_remove()
244 waiter.woken = 0; in klist_remove()
[all …]
/OK3568_Linux_fs/kernel/tools/testing/selftests/filesystems/epoll/
H A Depoll_wakeup_test.c21 pthread_t waiter; member
32 pthread_kill(ctx->waiter, SIGUSR1); in kill_timeout()
474 ASSERT_EQ(pthread_create(&ctx.waiter, NULL, waiter_entry1a, &ctx), 0); in TEST()
480 ASSERT_EQ(pthread_join(ctx.waiter, NULL), 0); in TEST()
517 ASSERT_EQ(pthread_create(&ctx.waiter, NULL, waiter_entry1a, &ctx), 0); in TEST()
523 ASSERT_EQ(pthread_join(ctx.waiter, NULL), 0); in TEST()
564 ASSERT_EQ(pthread_create(&ctx.waiter, NULL, waiter_entry2a, &ctx), 0); in TEST()
570 ASSERT_EQ(pthread_join(ctx.waiter, NULL), 0); in TEST()
613 ASSERT_EQ(pthread_create(&ctx.waiter, NULL, waiter_entry1a, &ctx), 0); in TEST()
619 ASSERT_EQ(pthread_join(ctx.waiter, NULL), 0); in TEST()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdkfd/
H A Dkfd_events.c240 struct kfd_event_waiter *waiter; in destroy_event() local
243 list_for_each_entry(waiter, &ev->wq.head, wait.entry) in destroy_event()
244 waiter->event = NULL; in destroy_event()
390 struct kfd_event_waiter *waiter; in set_event() local
399 list_for_each_entry(waiter, &ev->wq.head, wait.entry) in set_event()
400 waiter->activated = true; in set_event()
546 struct kfd_event_waiter *waiter, in init_event_waiter_get_status() argument
554 waiter->event = ev; in init_event_waiter_get_status()
555 waiter->activated = ev->signaled; in init_event_waiter_get_status()
561 static void init_event_waiter_add_to_waitlist(struct kfd_event_waiter *waiter) in init_event_waiter_add_to_waitlist() argument
[all …]
/OK3568_Linux_fs/kernel/drivers/staging/vc04_services/interface/vchiq_arm/
H A Dvchiq_arm.c223 struct bulk_waiter_node *waiter, *next; in vchiq_shutdown() local
225 list_for_each_entry_safe(waiter, next, in vchiq_shutdown()
227 list_del(&waiter->list); in vchiq_shutdown()
230 waiter, waiter->pid); in vchiq_shutdown()
231 kfree(waiter); in vchiq_shutdown()
434 struct bulk_waiter_node *waiter = NULL; in vchiq_blocking_bulk_transfer() local
446 list_for_each_entry(waiter, &instance->bulk_waiter_list, list) { in vchiq_blocking_bulk_transfer()
447 if (waiter->pid == current->pid) { in vchiq_blocking_bulk_transfer()
448 list_del(&waiter->list); in vchiq_blocking_bulk_transfer()
456 struct vchiq_bulk *bulk = waiter->bulk_waiter.bulk; in vchiq_blocking_bulk_transfer()
[all …]
/OK3568_Linux_fs/kernel/include/trace/hooks/
H A Drwsem.h30 TP_PROTO(struct rwsem_waiter *waiter,
33 TP_ARGS(waiter, sem, already_on_list));
50 TP_PROTO(struct rw_semaphore *sem, struct rwsem_waiter *waiter),
51 TP_ARGS(sem, waiter));
/OK3568_Linux_fs/kernel/Documentation/locking/
H A Dfutex-requeue-pi.rst20 implementation would wake the highest-priority waiter, and leave the
92 The requeue code cannot simply wake the waiter and leave it to
94 requeue call returning to user space and the waiter waking and
100 of the waiter and to enqueue the waiter on a contended rt_mutex.
104 FUTEX_WAIT_REQUEUE_PI is called by the waiter (pthread_cond_wait()
116 PI futex on behalf of the top waiter. If it can, this waiter is
120 task as a waiter on the underlying rt_mutex. It is possible that
122 waiter is woken to finish the acquisition of the lock.
/OK3568_Linux_fs/kernel/tools/testing/selftests/futex/functional/
H A Dfutex_requeue_pi_signal_restart.c122 pthread_t waiter; in main() local
158 res = create_rt_thread(&waiter, waiterfn, NULL, SCHED_FIFO, 1); in main()
177 pthread_kill(waiter, SIGUSR1); in main()
208 pthread_kill(waiter, SIGUSR1); in main()
210 pthread_join(waiter, NULL); in main()
/OK3568_Linux_fs/kernel/fs/
H A Dlocks.c705 static void locks_insert_global_blocked(struct file_lock *waiter) in locks_insert_global_blocked() argument
709 hash_add(blocked_hash, &waiter->fl_link, posix_owner_key(waiter)); in locks_insert_global_blocked()
712 static void locks_delete_global_blocked(struct file_lock *waiter) in locks_delete_global_blocked() argument
716 hash_del(&waiter->fl_link); in locks_delete_global_blocked()
724 static void __locks_delete_block(struct file_lock *waiter) in __locks_delete_block() argument
726 locks_delete_global_blocked(waiter); in __locks_delete_block()
727 list_del_init(&waiter->fl_blocked_member); in __locks_delete_block()
733 struct file_lock *waiter; in __locks_wake_up_blocks() local
735 waiter = list_first_entry(&blocker->fl_blocked_requests, in __locks_wake_up_blocks()
737 __locks_delete_block(waiter); in __locks_wake_up_blocks()
[all …]

123