/kernel/linux/linux-5.10/tools/testing/selftests/futex/include/ |
H A D | futextest.h | 57 * @uaddr2: address of second futex for some ops\ 70 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ 71 syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3) 140 futex_wake_op(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_wake2, in futex_wake_op() argument 143 return futex(uaddr, FUTEX_WAKE_OP, nr_wake, nr_wake2, uaddr2, wake_op, in futex_wake_op() 156 futex_requeue(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_requeue, in futex_requeue() argument 159 return futex(uaddr, FUTEX_REQUEUE, nr_wake, nr_requeue, uaddr2, 0, in futex_requeue() 164 * futex_cmp_requeue() - requeue tasks from uaddr to uaddr2 169 futex_cmp_requeue(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, in futex_cmp_requeue() argument 172 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue() 185 futex_wait_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, struct timespec *timeout, int opflags) futex_wait_requeue_pi() argument 200 futex_cmp_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, int nr_requeue, int opflags) futex_cmp_requeue_pi() argument [all...] |
/kernel/linux/linux-6.6/tools/testing/selftests/futex/include/ |
H A D | futextest.h | 57 * @uaddr2: address of second futex for some ops\ 70 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ 71 syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3) 140 futex_wake_op(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_wake2, in futex_wake_op() argument 143 return futex(uaddr, FUTEX_WAKE_OP, nr_wake, nr_wake2, uaddr2, wake_op, in futex_wake_op() 156 futex_requeue(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_requeue, in futex_requeue() argument 159 return futex(uaddr, FUTEX_REQUEUE, nr_wake, nr_requeue, uaddr2, 0, in futex_requeue() 164 * futex_cmp_requeue() - requeue tasks from uaddr to uaddr2 169 futex_cmp_requeue(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, in futex_cmp_requeue() argument 172 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue() 185 futex_wait_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, struct timespec *timeout, int opflags) futex_wait_requeue_pi() argument 200 futex_cmp_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, int nr_requeue, int opflags) futex_cmp_requeue_pi() argument [all...] |
/kernel/linux/linux-6.6/tools/perf/bench/ |
H A D | futex.h | 37 * @uaddr2: address of second futex for some ops 50 volatile u_int32_t *uaddr2, int val3, int opflags) in futex_syscall() 52 return syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3); in futex_syscall() 57 volatile u_int32_t *uaddr2, int val3, int opflags) in futex_syscall_nr_requeue() 59 return syscall(SYS_futex, uaddr, op | opflags, val, nr_requeue, uaddr2, val3); in futex_syscall_nr_requeue() 101 * futex_cmp_requeue() - requeue tasks from uaddr to uaddr2 106 futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wake, in futex_cmp_requeue() argument 109 return futex_syscall_nr_requeue(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue() 114 * futex_wait_requeue_pi() - block on uaddr and prepare to requeue to uaddr2 116 * @uaddr2 49 futex_syscall(volatile u_int32_t *uaddr, int op, u_int32_t val, struct timespec *timeout, volatile u_int32_t *uaddr2, int val3, int opflags) futex_syscall() argument 56 futex_syscall_nr_requeue(volatile u_int32_t *uaddr, int op, u_int32_t val, int nr_requeue, volatile u_int32_t *uaddr2, int val3, int opflags) futex_syscall_nr_requeue() argument 122 futex_wait_requeue_pi(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, struct timespec *timeout, int opflags) futex_wait_requeue_pi() argument 139 futex_cmp_requeue_pi(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_requeue, int opflags) futex_cmp_requeue_pi() argument [all...] |
/kernel/linux/linux-6.6/kernel/futex/ |
H A D | syscalls.c | 86 u32 __user *uaddr2, u32 val2, u32 val3) in do_futex() 113 return futex_requeue(uaddr, flags, uaddr2, val, val2, NULL, 0); in do_futex() 115 return futex_requeue(uaddr, flags, uaddr2, val, val2, &val3, 0); in do_futex() 117 return futex_wake_op(uaddr, flags, uaddr2, val, val2, val3); in do_futex() 130 uaddr2); in do_futex() 132 return futex_requeue(uaddr, flags, uaddr2, val, val2, &val3, 1); in do_futex() 166 u32 __user *, uaddr2, u32, val3) in SYSCALL_DEFINE6() 183 return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3); in SYSCALL_DEFINE6() 360 const struct old_timespec32 __user *, utime, u32 __user *, uaddr2, in SYSCALL_DEFINE6() 376 return do_futex(uaddr, op, val, tp, uaddr2, (unsigne in SYSCALL_DEFINE6() 85 do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3) do_futex() argument [all...] |
H A D | requeue.c | 45 * or to IGNORE. DONE/LOCKED means the waiter q is now on the uaddr2 futex 347 * futex_requeue() - Requeue waiters from uaddr1 to uaddr2 350 * @uaddr2: target futex user address 357 * Requeue waiters on uaddr1 to uaddr2. In the requeue_pi case, try to acquire 358 * uaddr2 atomically on behalf of the top waiter. 364 int futex_requeue(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2, in futex_requeue() argument 391 if (uaddr1 == uaddr2) in futex_requeue() 399 * only sense if the PI futex @uaddr2 is uncontended as in futex_requeue() 401 * @uaddr2 before waking the waiter. The waiter can then in futex_requeue() 430 ret = get_futex_key(uaddr2, flag in futex_requeue() 762 futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, u32 val, ktime_t *abs_time, u32 bitset, u32 __user *uaddr2) futex_wait_requeue_pi() argument [all...] |
H A D | futex.h | 261 *uaddr2); 264 u32 __user *uaddr2, int nr_wake, int nr_requeue, 288 u32 __user *uaddr2, int nr_wake, int nr_wake2, int op);
|
H A D | waitwake.c | 238 int futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2, in futex_wake_op() argument 251 ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE); in futex_wake_op() 260 op_ret = futex_atomic_op_inuser(op, uaddr2); in futex_wake_op() 275 ret = fault_in_user_writeable(uaddr2); in futex_wake_op()
|
/kernel/linux/linux-5.10/tools/perf/bench/ |
H A D | futex.h | 23 * @uaddr2: address of second futex for some ops\ 36 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ 37 syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3) 78 * futex_cmp_requeue() - requeue tasks from uaddr to uaddr2 83 futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wake, in futex_cmp_requeue() argument 86 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue()
|
/kernel/linux/linux-5.10/tools/lib/traceevent/plugins/ |
H A D | plugin_futex.c | 22 unsigned long long uaddr2; member 38 { "FUTEX_REQUEUE", " val=%llu", " val2=%llu", " uaddr2=0x%08llx", NULL }, 39 { "FUTEX_CMP_REQUEUE", " val=%llu", " val2=%llu", " uaddr2=0x%08llx", " val3=0x%08llx" }, 40 { "FUTEX_WAKE_OP", " val=%llu", " val2=%llu", " uaddr2=0x%08llx", " val3=0x%08llx" }, 46 { "FUTEX_WAIT_REQUEUE_PI", " val=0x%08llx", " utime=0x%08llx", " uaddr2=0x%08llx", " val3=0x%08llx" }, 47 { "FUTEX_CMP_REQUEUE_PI", " val=%llu", " val2=%llu", " uaddr2=0x%08llx", " val3=0x%08llx" }, 63 trace_seq_printf(s, fop->fmt_uaddr2, args->uaddr2); in futex_print() 88 if (tep_get_field_val(s, event, "uaddr2", record, &args.uaddr2, 1)) in futex_handler()
|
/kernel/linux/linux-5.10/kernel/futex/ |
H A D | core.c | 1696 futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2, in futex_wake_op() argument 1709 ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE); in futex_wake_op() 1718 op_ret = futex_atomic_op_inuser(op, uaddr2); in futex_wake_op() 1733 ret = fault_in_user_writeable(uaddr2); in futex_wake_op() 1913 * futex_requeue() - Requeue waiters from uaddr1 to uaddr2 1916 * @uaddr2: target futex user address 1923 * Requeue waiters on uaddr1 to uaddr2. In the requeue_pi case, try to acquire 1924 * uaddr2 atomically on behalf of the top waiter. 1931 u32 __user *uaddr2, int nr_wake, int nr_requeue, in futex_requeue() 1958 if (uaddr1 == uaddr2) in futex_requeue() 1930 futex_requeue(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2, int nr_wake, int nr_requeue, u32 *cmpval, int requeue_pi) futex_requeue() argument 3179 futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, u32 val, ktime_t *abs_time, u32 bitset, u32 __user *uaddr2) futex_wait_requeue_pi() argument 3723 do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3) do_futex() argument [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | futex.h | 79 u32 __user *uaddr2, u32 val2, u32 val3); 86 ktime_t *timeout, u32 __user *uaddr2, in do_futex() 85 do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3) do_futex() argument
|
H A D | restart_block.h | 35 u32 __user *uaddr2; member
|
H A D | syscalls.h | 606 struct __kernel_timespec __user *utime, u32 __user *uaddr2, 609 struct old_timespec32 __user *utime, u32 __user *uaddr2,
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | futex.h | 79 u32 __user *uaddr2, u32 val2, u32 val3); 86 ktime_t *timeout, u32 __user *uaddr2, in do_futex() 85 do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3) do_futex() argument
|
H A D | restart_block.h | 36 u32 __user *uaddr2; member
|
H A D | syscalls.h | 540 u32 __user *uaddr2, u32 val3); 543 u32 __user *uaddr2, u32 val3);
|
/kernel/linux/linux-5.10/tools/perf/scripts/python/ |
H A D | futex-contention.py | 30 nr, uaddr, op, val, utime, uaddr2, val3):
|
/kernel/linux/linux-6.6/tools/perf/scripts/python/ |
H A D | futex-contention.py | 30 nr, uaddr, op, val, utime, uaddr2, val3):
|