/kernel/linux/linux-6.6/kernel/locking/ |
H A D | rwsem.c | 24 #include <linux/sched/wake_q.h> 413 struct wake_q_head *wake_q) in rwsem_mark_wake() 436 wake_q_add(wake_q, waiter->task); in rwsem_mark_wake() 507 * put them into wake_q to be woken up later. in rwsem_mark_wake() 566 wake_q_add_safe(wake_q, tsk); in rwsem_mark_wake() 578 struct wake_q_head *wake_q) 583 wake_q_init(wake_q); variable 591 rwsem_mark_wake(sem, RWSEM_WAKE_ANY, wake_q); 593 if (!wake_q_empty(wake_q)) 594 wake_up_q(wake_q); variable 411 rwsem_mark_wake(struct rw_semaphore *sem, enum rwsem_wake_type wake_type, struct wake_q_head *wake_q) rwsem_mark_wake() argument 975 rwsem_cond_wake_waiter(struct rw_semaphore *sem, long count, struct wake_q_head *wake_q) rwsem_cond_wake_waiter() argument [all...] |
H A D | mutex.c | 25 #include <linux/sched/wake_q.h> 904 DEFINE_WAKE_Q(wake_q); in __mutex_unlock_slowpath() 943 wake_q_add(&wake_q, next); in __mutex_unlock_slowpath() 951 wake_up_q(&wake_q); in __mutex_unlock_slowpath()
|
H A D | rtmutex_common.h | 18 #include <linux/sched/wake_q.h>
|
H A D | rtmutex.c | 24 #include <linux/sched/wake_q.h> 519 /* RT mutex specific wake_q wrappers */
|
/kernel/linux/linux-5.10/kernel/locking/ |
H A D | rwsem.c | 24 #include <linux/sched/wake_q.h> 402 struct wake_q_head *wake_q) in rwsem_mark_wake() 425 wake_q_add(wake_q, waiter->task); in rwsem_mark_wake() 498 * put them into wake_q to be woken up later. in rwsem_mark_wake() 550 wake_q_add_safe(wake_q, tsk); in rwsem_mark_wake() 996 DEFINE_WAKE_Q(wake_q); in rwsem_down_read_slowpath() 1025 &wake_q); in rwsem_down_read_slowpath() 1027 wake_up_q(&wake_q); in rwsem_down_read_slowpath() 1079 rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q); in rwsem_down_read_slowpath() 1082 wake_up_q(&wake_q); in rwsem_down_read_slowpath() 400 rwsem_mark_wake(struct rw_semaphore *sem, enum rwsem_wake_type wake_type, struct wake_q_head *wake_q) rwsem_mark_wake() argument [all...] |
H A D | rtmutex.c | 19 #include <linux/sched/wake_q.h> 1015 static void mark_wakeup_next_waiter(struct wake_q_head *wake_q, in mark_wakeup_next_waiter() argument 1055 wake_q_add(wake_q, waiter->task); in mark_wakeup_next_waiter() 1337 struct wake_q_head *wake_q) in rt_mutex_slowunlock() 1391 mark_wakeup_next_waiter(wake_q, lock); in rt_mutex_slowunlock() 1443 void rt_mutex_postunlock(struct wake_q_head *wake_q) in rt_mutex_postunlock() argument 1445 wake_up_q(wake_q); in rt_mutex_postunlock() 1456 DEFINE_WAKE_Q(wake_q); in rt_mutex_fastunlock() 1461 if (slowfn(lock, &wake_q)) in rt_mutex_fastunlock() 1462 rt_mutex_postunlock(&wake_q); in rt_mutex_fastunlock() 1336 rt_mutex_slowunlock(struct rt_mutex *lock, struct wake_q_head *wake_q) rt_mutex_slowunlock() argument 1610 __rt_mutex_futex_unlock(struct rt_mutex *lock, struct wake_q_head *wake_q) __rt_mutex_futex_unlock() argument [all...] |
H A D | rtmutex_common.h | 17 #include <linux/sched/wake_q.h> 157 extern void rt_mutex_postunlock(struct wake_q_head *wake_q);
|
H A D | mutex.c | 25 #include <linux/sched/wake_q.h> 1231 DEFINE_WAKE_Q(wake_q); in __mutex_unlock_slowpath() 1278 wake_q_add(&wake_q, next); in __mutex_unlock_slowpath() 1286 wake_up_q(&wake_q); in __mutex_unlock_slowpath()
|
/kernel/linux/linux-5.10/ipc/ |
H A D | sem.c | 87 #include <linux/sched/wake_q.h> 235 * The wakeup is handled using the wake_q infrastructure. wake_q wakeups may 785 struct wake_q_head *wake_q) in wake_up_sem_queue_prepare() 794 wake_q_add_safe(wake_q, sleeper); in wake_up_sem_queue_prepare() 842 * @wake_q: lockless wake-queue head. 848 * The tasks that must be woken up are added to @wake_q. The return code 853 struct wake_q_head *wake_q) in wake_const_ops() 872 wake_up_sem_queue_prepare(q, error, wake_q); in wake_const_ops() 885 * @wake_q 784 wake_up_sem_queue_prepare(struct sem_queue *q, int error, struct wake_q_head *wake_q) wake_up_sem_queue_prepare() argument 852 wake_const_ops(struct sem_array *sma, int semnum, struct wake_q_head *wake_q) wake_const_ops() argument 891 do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, int nsops, struct wake_q_head *wake_q) do_smart_wakeup_zero() argument 947 update_queue(struct sem_array *sma, int semnum, struct wake_q_head *wake_q) update_queue() argument 1027 do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, int otime, struct wake_q_head *wake_q) do_smart_update() argument [all...] |
H A D | msg.c | 34 #include <linux/sched/wake_q.h> 212 struct wake_q_head *wake_q, bool kill) in ss_wakeup() 244 wake_q_add(wake_q, mss->tsk); in ss_wakeup() 249 struct wake_q_head *wake_q) in expunge_all() 260 wake_q_add_safe(wake_q, r_tsk); in expunge_all() 278 DEFINE_WAKE_Q(wake_q); in __releases() 280 expunge_all(msq, -EIDRM, &wake_q); in __releases() 281 ss_wakeup(msq, &wake_q, true); in __releases() 284 wake_up_q(&wake_q); in __releases() 431 DEFINE_WAKE_Q(wake_q); in msgctl_down() 211 ss_wakeup(struct msg_queue *msq, struct wake_q_head *wake_q, bool kill) ss_wakeup() argument 248 expunge_all(struct msg_queue *msq, int res, struct wake_q_head *wake_q) expunge_all() argument 810 pipelined_send(struct msg_queue *msq, struct msg_msg *msg, struct wake_q_head *wake_q) pipelined_send() argument [all...] |
H A D | mqueue.c | 39 #include <linux/sched/wake_q.h> 73 * - The actual wakeup of a sleeping task is performed using the wake_q 1016 static inline void __pipelined_op(struct wake_q_head *wake_q, in __pipelined_op() argument 1027 wake_q_add_safe(wake_q, task); in __pipelined_op() 1033 static inline void pipelined_send(struct wake_q_head *wake_q, in pipelined_send() argument 1039 __pipelined_op(wake_q, info, receiver); in pipelined_send() 1044 static inline void pipelined_receive(struct wake_q_head *wake_q, in pipelined_receive() argument 1057 __pipelined_op(wake_q, info, sender); in pipelined_receive() 1073 DEFINE_WAKE_Q(wake_q); in do_mq_timedsend() 1157 pipelined_send(&wake_q, inf in do_mq_timedsend() [all...] |
/kernel/linux/linux-6.6/ipc/ |
H A D | sem.c | 87 #include <linux/sched/wake_q.h> 237 * The wakeup is handled using the wake_q infrastructure. wake_q wakeups may 787 struct wake_q_head *wake_q) in wake_up_sem_queue_prepare() 796 wake_q_add_safe(wake_q, sleeper); in wake_up_sem_queue_prepare() 844 * @wake_q: lockless wake-queue head. 850 * The tasks that must be woken up are added to @wake_q. The return code 855 struct wake_q_head *wake_q) in wake_const_ops() 874 wake_up_sem_queue_prepare(q, error, wake_q); in wake_const_ops() 887 * @wake_q 786 wake_up_sem_queue_prepare(struct sem_queue *q, int error, struct wake_q_head *wake_q) wake_up_sem_queue_prepare() argument 854 wake_const_ops(struct sem_array *sma, int semnum, struct wake_q_head *wake_q) wake_const_ops() argument 893 do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, int nsops, struct wake_q_head *wake_q) do_smart_wakeup_zero() argument 949 update_queue(struct sem_array *sma, int semnum, struct wake_q_head *wake_q) update_queue() argument 1029 do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, int otime, struct wake_q_head *wake_q) do_smart_update() argument [all...] |
H A D | msg.c | 34 #include <linux/sched/wake_q.h> 213 struct wake_q_head *wake_q, bool kill) in ss_wakeup() 245 wake_q_add(wake_q, mss->tsk); in ss_wakeup() 250 struct wake_q_head *wake_q) in expunge_all() 261 wake_q_add_safe(wake_q, r_tsk); in expunge_all() 279 DEFINE_WAKE_Q(wake_q); in __releases() 281 expunge_all(msq, -EIDRM, &wake_q); in __releases() 282 ss_wakeup(msq, &wake_q, true); in __releases() 285 wake_up_q(&wake_q); in __releases() 432 DEFINE_WAKE_Q(wake_q); in msgctl_down() 212 ss_wakeup(struct msg_queue *msq, struct wake_q_head *wake_q, bool kill) ss_wakeup() argument 249 expunge_all(struct msg_queue *msq, int res, struct wake_q_head *wake_q) expunge_all() argument 816 pipelined_send(struct msg_queue *msq, struct msg_msg *msg, struct wake_q_head *wake_q) pipelined_send() argument [all...] |
H A D | mqueue.c | 39 #include <linux/sched/wake_q.h> 73 * - The actual wakeup of a sleeping task is performed using the wake_q 1017 static inline void __pipelined_op(struct wake_q_head *wake_q, in __pipelined_op() argument 1028 wake_q_add_safe(wake_q, task); in __pipelined_op() 1034 static inline void pipelined_send(struct wake_q_head *wake_q, in pipelined_send() argument 1040 __pipelined_op(wake_q, info, receiver); in pipelined_send() 1045 static inline void pipelined_receive(struct wake_q_head *wake_q, in pipelined_receive() argument 1058 __pipelined_op(wake_q, info, sender); in pipelined_receive() 1074 DEFINE_WAKE_Q(wake_q); in do_mq_timedsend() 1158 pipelined_send(&wake_q, inf in do_mq_timedsend() [all...] |
/kernel/linux/linux-6.6/kernel/futex/ |
H A D | waitwake.c | 115 void futex_wake_mark(struct wake_q_head *wake_q, struct futex_q *q) in futex_wake_mark() argument 137 wake_q_add_safe(wake_q, p); in futex_wake_mark() 149 DEFINE_WAKE_Q(wake_q); in futex_wake() 177 futex_wake_mark(&wake_q, this); in futex_wake() 184 wake_up_q(&wake_q); in futex_wake() 245 DEFINE_WAKE_Q(wake_q); in futex_wake_op() 292 futex_wake_mark(&wake_q, this); in futex_wake_op() 306 futex_wake_mark(&wake_q, this); in futex_wake_op() 316 wake_up_q(&wake_q); in futex_wake_op()
|
H A D | futex.h | 7 #include <linux/sched/wake_q.h> 147 extern void futex_wake_mark(struct wake_q_head *wake_q, struct futex_q *q);
|
H A D | requeue.c | 372 DEFINE_WAKE_Q(wake_q); in futex_requeue() 594 futex_wake_mark(&wake_q, this); in futex_requeue() 674 wake_up_q(&wake_q); in futex_requeue()
|
/kernel/linux/linux-5.10/kernel/futex/ |
H A D | core.c | 1477 static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q) in mark_wake_futex() argument 1499 wake_q_add_safe(wake_q, p); in mark_wake_futex() 1510 DEFINE_WAKE_Q(wake_q); in wake_futex_pi() 1560 postunlock = __rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q); in wake_futex_pi() 1567 rt_mutex_postunlock(&wake_q); in wake_futex_pi() 1606 DEFINE_WAKE_Q(wake_q); in futex_wake() 1634 mark_wake_futex(&wake_q, this); in futex_wake() 1641 wake_up_q(&wake_q); in futex_wake() 1703 DEFINE_WAKE_Q(wake_q); in futex_wake_op() 1753 mark_wake_futex(&wake_q, thi in futex_wake_op() [all...] |
/kernel/linux/linux-5.10/kernel/ |
H A D | stop_machine.c | 24 #include <linux/sched/wake_q.h>
|
/kernel/linux/linux-6.6/kernel/ |
H A D | stop_machine.c | 24 #include <linux/sched/wake_q.h>
|
/kernel/linux/linux-5.10/include/linux/ |
H A D | sched.h | 1147 struct wake_q_node wake_q; member
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | sched.h | 1255 struct wake_q_node wake_q; member
|
/kernel/linux/linux-5.10/kernel/sched/ |
H A D | core.c | 524 struct wake_q_node *node = &task->wake_q; in __wake_q_add() 527 * Atomically grab the task, if ->wake_q is !nil already it means in __wake_q_add() 578 * wake_q to do the right thing depending whether or not the @task is already 594 task = container_of(node, struct task_struct, wake_q); in wake_up_q() 598 task->wake_q.next = NULL; in wake_up_q()
|
H A D | sched.h | 33 #include <linux/sched/wake_q.h>
|
/kernel/linux/linux-6.6/kernel/sched/ |
H A D | core.c | 60 #include <linux/sched/wake_q.h> 956 struct wake_q_node *node = &task->wake_q; in __wake_q_add() 959 * Atomically grab the task, if ->wake_q is !nil already it means in __wake_q_add() 1010 * wake_q to do the right thing depending whether or not the @task is already 1026 task = container_of(node, struct task_struct, wake_q); in wake_up_q() 1029 task->wake_q.next = NULL; in wake_up_q()
|