Symbol: futex
arch/arm64/include/asm/futex.h
160
u32 futex[2];
arch/arm64/include/asm/futex.h
168
oval64.futex[futex_pos] = oldval;
arch/arm64/include/asm/futex.h
169
if (get_user(oval64.futex[other_pos], (u32 __user *)uaddr64 + other_pos))
arch/arm64/include/asm/futex.h
174
nval64.futex[futex_pos] = newval;
arch/arm64/include/asm/futex.h
175
nval64.futex[other_pos] = oval64.futex[other_pos];
arch/arm64/include/asm/futex.h
180
oldval = oval64.futex[futex_pos];
arch/arm64/include/asm/futex.h
181
other = oval64.futex[other_pos];
arch/arm64/include/asm/futex.h
182
orig_other = orig64.futex[other_pos];
arch/um/include/shared/skas/stub-data.h
64
unsigned int futex;
arch/um/kernel/skas/mmu.c
135
stub_data->futex = FUTEX_IN_KERN;
arch/um/kernel/skas/mmu.c
137
os_futex_wake(&stub_data->futex);
arch/um/kernel/skas/stub.c
122
d->futex = FUTEX_IN_KERN;
arch/um/kernel/skas/stub.c
124
res = stub_syscall3(__NR_futex, (unsigned long)&d->futex,
arch/um/kernel/skas/stub.c
129
res = stub_syscall4(__NR_futex, (unsigned long)&d->futex,
arch/um/kernel/skas/stub.c
131
} while (res == -EINTR || d->futex == FUTEX_IN_KERN);
arch/um/os-Linux/skas/process.c
190
data->futex = FUTEX_IN_CHILD;
arch/um/os-Linux/skas/process.c
191
CATCH_EINTR(syscall(__NR_futex, &data->futex,
arch/um/os-Linux/skas/process.c
210
ret = syscall(__NR_futex, &data->futex,
arch/um/os-Linux/skas/process.c
218
} while (data->futex == FUTEX_IN_CHILD);
arch/um/os-Linux/skas/process.c
475
proc_data->futex = FUTEX_IN_CHILD;
arch/x86/entry/vdso/vma.c
82
struct futex_mm_data *fd = &current->mm->futex;
include/linux/futex.h
133
csr = current->mm->futex.unlock.cs_ranges;
include/linux/futex.h
67
memset(&tsk->futex, 0, sizeof(tsk->futex));
include/linux/futex.h
68
INIT_LIST_HEAD(&tsk->futex.pi_state_list);
include/linux/futex.h
69
tsk->futex.state = FUTEX_STATE_OK;
include/linux/futex.h
70
mutex_init(&tsk->futex.exit_mutex);
include/linux/mm_types.h
1263
struct futex_mm_data futex;
include/linux/restart_block.h
38
} futex;
include/linux/sched.h
1353
struct futex_sched_data futex;
kernel/exit.c
1025
if (unlikely(current->futex.pi_state_cache))
kernel/exit.c
1026
kfree(current->futex.pi_state_cache);
kernel/futex/core.c
1110
struct robust_list_head __user *head = curr->futex.robust_list;
kernel/futex/core.c
1171
struct robust_list_head __user *head = current->futex.robust_list;
kernel/futex/core.c
1186
current->futex.robust_list = NULL;
kernel/futex/core.c
1224
struct compat_robust_list_head __user *head = current->futex.compat_robust_list;
kernel/futex/core.c
1289
struct compat_robust_list_head __user *head = current->futex.compat_robust_list;
kernel/futex/core.c
1296
current->futex.compat_robust_list = NULL;
kernel/futex/core.c
1312
struct list_head *next, *head = &curr->futex.pi_state_list;
kernel/futex/core.c
1426
if (unlikely(tsk->futex.robust_list)) {
kernel/futex/core.c
1428
tsk->futex.robust_list = NULL;
kernel/futex/core.c
1432
if (unlikely(tsk->futex.compat_robust_list)) {
kernel/futex/core.c
1434
tsk->futex.compat_robust_list = NULL;
kernel/futex/core.c
1438
if (unlikely(!list_empty(&tsk->futex.pi_state_list)))
kernel/futex/core.c
1462
if (tsk->futex.state == FUTEX_STATE_EXITING) {
kernel/futex/core.c
1463
__assume_ctx_lock(&tsk->futex.exit_mutex);
kernel/futex/core.c
1464
mutex_unlock(&tsk->futex.exit_mutex);
kernel/futex/core.c
1466
tsk->futex.state = FUTEX_STATE_DEAD;
kernel/futex/core.c
1470
__acquires(&tsk->futex.exit_mutex)
kernel/futex/core.c
1478
mutex_lock(&tsk->futex.exit_mutex);
kernel/futex/core.c
1492
tsk->futex.state = FUTEX_STATE_EXITING;
kernel/futex/core.c
1497
__releases(&tsk->futex.exit_mutex)
kernel/futex/core.c
1503
tsk->futex.state = state;
kernel/futex/core.c
1508
mutex_unlock(&tsk->futex.exit_mutex);
kernel/futex/core.c
1569
WARN_ON_ONCE(atomic_long_read(&mm->futex.phash.atomic) != 0);
kernel/futex/core.c
1576
atomic_long_set(&mm->futex.phash.atomic, LONG_MAX);
kernel/futex/core.c
1579
call_rcu_hurry(&mm->futex.phash.rcu, futex_ref_rcu);
kernel/futex/core.c
1600
unsigned int *ptr = per_cpu_ptr(mm->futex.phash.ref, cpu);
kernel/futex/core.c
1608
this_cpu_inc(*mm->futex.phash.ref); /* 0 -> 1 */
kernel/futex/core.c
1616
ret = atomic_long_add_return(count - LONG_MAX - 1, &mm->futex.phash.atomic);
kernel/futex/core.c
1626
struct mm_struct *mm = container_of(head, struct mm_struct, futex.phash.rcu);
kernel/futex/core.c
1627
struct futex_private_hash *fph = rcu_dereference_raw(mm->futex.phash.hash);
kernel/futex/core.c
1656
WARN_ON_ONCE(rcu_dereference_raw(mm->futex.phash.hash) != fph);
kernel/futex/core.c
1684
if (poll_state_synchronize_rcu(mm->futex.phash.batches)) {
kernel/futex/core.c
1692
call_rcu_hurry(&mm->futex.phash.rcu, futex_ref_rcu);
kernel/futex/core.c
1702
__this_cpu_inc(*mm->futex.phash.ref);
kernel/futex/core.c
1706
return atomic_long_inc_not_zero(&mm->futex.phash.atomic);
kernel/futex/core.c
1716
__this_cpu_dec(*mm->futex.phash.ref);
kernel/futex/core.c
1720
return atomic_long_dec_and_test(&mm->futex.phash.atomic);
kernel/futex/core.c
1732
return atomic_long_read(&mm->futex.phash.atomic) == 0;
kernel/futex/core.c
1746
free_percpu(mm->futex.phash.ref);
kernel/futex/core.c
1747
kvfree(mm->futex.phash.hash_new);
kernel/futex/core.c
1748
fph = rcu_dereference_raw(mm->futex.phash.hash);
kernel/futex/core.c
1759
if (!mm->futex.phash.hash_new)
kernel/futex/core.c
1762
fph = rcu_dereference(mm->futex.phash.hash);
kernel/futex/core.c
1804
fph = rcu_dereference(mm->futex.phash.hash);
kernel/futex/core.c
1812
if (!mm->futex.phash.ref) {
kernel/futex/core.c
1817
mm->futex.phash.ref = alloc_percpu(unsigned int);
kernel/futex/core.c
1818
if (!mm->futex.phash.ref)
kernel/futex/core.c
1820
this_cpu_inc(*mm->futex.phash.ref); /* 0 -> 1 */
kernel/futex/core.c
1843
scoped_guard(mutex, &mm->futex.phash.lock) {
kernel/futex/core.c
1847
cur = rcu_dereference_protected(mm->futex.phash.hash,
kernel/futex/core.c
1848
lockdep_is_held(&mm->futex.phash.lock));
kernel/futex/core.c
1849
new = mm->futex.phash.hash_new;
kernel/futex/core.c
1850
mm->futex.phash.hash_new = NULL;
kernel/futex/core.c
1860
mm->futex.phash.hash_new = new;
kernel/futex/core.c
1911
fph = rcu_dereference(current->mm->futex.phash.hash);
kernel/futex/core.c
1938
fph = rcu_dereference(current->mm->futex.phash.hash);
kernel/futex/core.c
197
struct futex_mm_phash *mmph = &mm->futex.phash;
kernel/futex/core.c
1981
futex_hash_init_mm(&mm->futex);
kernel/futex/core.c
1982
futex_robust_unlock_init_mm(&mm->futex);
kernel/futex/core.c
222
scoped_guard(mutex, &mm->futex.phash.lock) {
kernel/futex/core.c
225
fph = mm->futex.phash.hash_new;
kernel/futex/core.c
227
mm->futex.phash.hash_new = NULL;
kernel/futex/core.c
249
fph = rcu_dereference(mm->futex.phash.hash);
kernel/futex/core.c
376
fph = rcu_dereference(key->private.mm->futex.phash.hash);
kernel/futex/core.c
786
mutex_lock(&exiting->futex.exit_mutex);
kernel/futex/core.c
795
mutex_unlock(&exiting->futex.exit_mutex);
kernel/futex/pi.c
109
current->futex.pi_state_cache = pi_state;
kernel/futex/pi.c
17
if (likely(current->futex.pi_state_cache))
kernel/futex/pi.c
31
current->futex.pi_state_cache = pi_state;
kernel/futex/pi.c
330
if (tsk && tsk->futex.state != FUTEX_STATE_DEAD)
kernel/futex/pi.c
38
struct futex_pi_state *pi_state = current->futex.pi_state_cache;
kernel/futex/pi.c
399
list_add(&pi_state->list, &p->futex.pi_state_list);
kernel/futex/pi.c
41
current->futex.pi_state_cache = NULL;
kernel/futex/pi.c
443
if (unlikely(p->futex.state != FUTEX_STATE_OK)) {
kernel/futex/pi.c
63
list_add(&pi_state->list, &new_owner->futex.pi_state_list);
kernel/futex/pi.c
99
if (current->futex.pi_state_cache) {
kernel/futex/syscalls.c
191
SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
kernel/futex/syscalls.c
34
current->futex.robust_list = head;
kernel/futex/syscalls.c
42
return p->futex.compat_robust_list;
kernel/futex/syscalls.c
44
return p->futex.robust_list;
kernel/futex/syscalls.c
487
current->futex.compat_robust_list = head;
kernel/futex/waitwake.c
761
restart->futex.uaddr = uaddr;
kernel/futex/waitwake.c
762
restart->futex.val = val;
kernel/futex/waitwake.c
763
restart->futex.time = *abs_time;
kernel/futex/waitwake.c
764
restart->futex.bitset = bitset;
kernel/futex/waitwake.c
765
restart->futex.flags = flags | FLAGS_HAS_TIMEOUT;
kernel/futex/waitwake.c
775
u32 __user *uaddr = restart->futex.uaddr;
kernel/futex/waitwake.c
778
if (restart->futex.flags & FLAGS_HAS_TIMEOUT)
kernel/futex/waitwake.c
779
tp = &restart->futex.time;
kernel/futex/waitwake.c
783
return (long)futex_wait(uaddr, restart->futex.flags,
kernel/futex/waitwake.c
784
restart->futex.val, tp, restart->futex.bitset);
kernel/sys_ni.c
79
COND_SYSCALL(futex);
tools/perf/bench/futex-hash.c
189
worker[i].futex = calloc(params.nfutexes, sizeof(*worker[i].futex));
tools/perf/bench/futex-hash.c
190
if (!worker[i].futex)
tools/perf/bench/futex-hash.c
239
worker[i].tid, &worker[i].futex[0], t);
tools/perf/bench/futex-hash.c
242
worker[i].tid, &worker[i].futex[0],
tools/perf/bench/futex-hash.c
243
&worker[i].futex[params.nfutexes-1], t);
tools/perf/bench/futex-hash.c
246
zfree(&worker[i].futex);
tools/perf/bench/futex-hash.c
46
u_int32_t *futex;
tools/perf/bench/futex-hash.c
95
ret = futex_wait(&w->futex[i], 1234, NULL, futex_flag);
tools/perf/bench/futex-lock-pi.c
100
ret = futex_lock_pi(w->futex, NULL, futex_flag);
tools/perf/bench/futex-lock-pi.c
105
w->tid, w->futex, ret);
tools/perf/bench/futex-lock-pi.c
113
ret = futex_unlock_pi(w->futex, futex_flag);
tools/perf/bench/futex-lock-pi.c
116
w->tid, w->futex, ret);
tools/perf/bench/futex-lock-pi.c
144
worker[i].futex = calloc(1, sizeof(u_int32_t));
tools/perf/bench/futex-lock-pi.c
145
if (!worker[i].futex)
tools/perf/bench/futex-lock-pi.c
148
worker[i].futex = &global_futex;
tools/perf/bench/futex-lock-pi.c
243
worker[i].tid, worker[i].futex, t);
tools/perf/bench/futex-lock-pi.c
246
zfree(&worker[i].futex);
tools/perf/bench/futex-lock-pi.c
29
u_int32_t *futex;
tools/perf/bench/futex-wake-parallel.c
143
if (futex_wait(&futex, 0, NULL, futex_flag) != EINTR)
tools/perf/bench/futex-wake-parallel.c
303
&futex, params.nwakes, nwakes);
tools/perf/bench/futex-wake-parallel.c
49
static u_int32_t futex = 0;
tools/perf/bench/futex-wake-parallel.c
89
waker->nwoken = futex_wake(&futex, nwakes, futex_flag);
tools/testing/selftests/futex/functional/futex_numa_mpol.c
153
futex_numa->futex = 0;
tools/testing/selftests/futex/functional/futex_numa_mpol.c
197
futex_numa->futex = 0;
tools/testing/selftests/futex/functional/futex_wait.c
124
futex = shm;
tools/testing/selftests/futex/functional/futex_wait.c
126
ksft_print_dbg_msg("Calling shared (file backed) futex_wait on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
132
ksft_print_dbg_msg("Calling shared (file backed) futex_wake on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
20
void *futex;
tools/testing/selftests/futex/functional/futex_wait.c
33
if (futex_wait(futex, 0, &to, flags))
tools/testing/selftests/futex/functional/futex_wait.c
46
futex = &f_private;
tools/testing/selftests/futex/functional/futex_wait.c
49
ksft_print_dbg_msg("Calling private futex_wait on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
55
ksft_print_dbg_msg("Calling private futex_wake on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
56
res = futex_wake(futex, 1, FUTEX_PRIVATE_FLAG);
tools/testing/selftests/futex/functional/futex_wait.c
83
futex = shared_data;
tools/testing/selftests/futex/functional/futex_wait.c
85
ksft_print_dbg_msg("Calling shared (page anon) futex_wait on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
91
ksft_print_dbg_msg("Calling shared (page anon) futex_wake on futex: %p\n", futex);
tools/testing/selftests/futex/functional/futex_wait.c
92
res = futex_wake(futex, 1, 0);
tools/testing/selftests/futex/functional/robust_list.c
113
head->futex_offset = (size_t) offsetof(struct lock_struct, futex) -
tools/testing/selftests/futex/functional/robust_list.c
126
_Atomic(unsigned int) *futex = &lock->futex;
tools/testing/selftests/futex/functional/robust_list.c
137
if (atomic_compare_exchange_strong(futex, &zero, tid)) {
tools/testing/selftests/futex/functional/robust_list.c
163
tid = atomic_load(futex);
tools/testing/selftests/futex/functional/robust_list.c
166
atomic_store(futex, tid);
tools/testing/selftests/futex/functional/robust_list.c
168
ret = futex_wait((futex_t *) futex, tid, &to, 0);
tools/testing/selftests/futex/functional/robust_list.c
222
struct lock_struct lock = { .futex = 0 };
tools/testing/selftests/futex/functional/robust_list.c
223
_Atomic(unsigned int) *futex = &lock.futex;
tools/testing/selftests/futex/functional/robust_list.c
249
ASSERT_TRUE(*futex & FUTEX_OWNER_DIED);
tools/testing/selftests/futex/functional/robust_list.c
406
struct lock_struct lock = { .futex = 0 };
tools/testing/selftests/futex/functional/robust_list.c
407
_Atomic(unsigned int) *futex = &lock.futex;
tools/testing/selftests/futex/functional/robust_list.c
425
ASSERT_TRUE(*futex & FUTEX_OWNER_DIED);
tools/testing/selftests/futex/functional/robust_list.c
448
locks[i].futex = 0;
tools/testing/selftests/futex/functional/robust_list.c
475
if (!(lock->futex & FUTEX_OWNER_DIED)) {
tools/testing/selftests/futex/functional/robust_list.c
634
struct lock_struct lock = { .futex = 0 };
tools/testing/selftests/futex/functional/robust_list.c
635
_Atomic(unsigned int) *futex = &lock.futex;
tools/testing/selftests/futex/functional/robust_list.c
646
*futex = tid;
tools/testing/selftests/futex/functional/robust_list.c
654
ret = self->vdso(futex, tid, &head.list_op_pending);
tools/testing/selftests/futex/functional/robust_list.c
657
ASSERT_EQ(*futex, 0);
tools/testing/selftests/futex/functional/robust_list.c
675
struct lock_struct lock = { .futex = 0 };
tools/testing/selftests/futex/functional/robust_list.c
676
_Atomic(unsigned int) *futex = &lock.futex;
tools/testing/selftests/futex/functional/robust_list.c
686
*futex = tid | FUTEX_WAITERS;
tools/testing/selftests/futex/functional/robust_list.c
694
ret = self->vdso(futex, tid, &head.list_op_pending);
tools/testing/selftests/futex/functional/robust_list.c
697
ASSERT_EQ(*futex, tid | FUTEX_WAITERS);
tools/testing/selftests/futex/functional/robust_list.c
75
_Atomic(unsigned int) futex;
tools/testing/selftests/futex/functional/robust_list.c
755
struct lock_struct lock = { .futex = 0 };
tools/testing/selftests/futex/functional/robust_list.c
756
_Atomic(unsigned int) *futex = &lock.futex;
tools/testing/selftests/futex/functional/robust_list.c
769
*futex = tid | FUTEX_WAITERS;
tools/testing/selftests/futex/functional/robust_list.c
777
ret = sys_futex_robust_unlock(futex, FUTEX_ROBUST_UNLOCK | variant->op, tid,
tools/testing/selftests/futex/functional/robust_list.c
781
ASSERT_EQ(*futex, 0);
tools/testing/selftests/futex/include/futex2test.h
55
futex_t futex;
tools/testing/selftests/futex/include/futextest.h
108
return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags);
tools/testing/selftests/futex/include/futextest.h
118
return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags);
tools/testing/selftests/futex/include/futextest.h
129
return futex(uaddr, FUTEX_WAIT_BITSET, val, timeout, NULL, bitset,
tools/testing/selftests/futex/include/futextest.h
140
return futex(uaddr, FUTEX_WAKE_BITSET, nr_wake, NULL, NULL, bitset,
tools/testing/selftests/futex/include/futextest.h
152
return futex(uaddr, FUTEX_LOCK_PI, detect, timeout, NULL, 0, opflags);
tools/testing/selftests/futex/include/futextest.h
161
return futex(uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0, opflags);
tools/testing/selftests/futex/include/futextest.h
171
return futex(uaddr, FUTEX_WAKE_OP, nr_wake, nr_wake2, uaddr2, wake_op,
tools/testing/selftests/futex/include/futextest.h
187
return futex(uaddr, FUTEX_REQUEUE, nr_wake, nr_requeue, uaddr2, 0,
tools/testing/selftests/futex/include/futextest.h
200
return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2,
tools/testing/selftests/futex/include/futextest.h
216
return futex(uaddr, FUTEX_WAIT_REQUEUE_PI, val, timeout, uaddr2, 0,
tools/testing/selftests/futex/include/futextest.h
231
return futex(uaddr, FUTEX_CMP_REQUEUE_PI, nr_wake, nr_requeue, uaddr2,
tools/testing/selftests/powerpc/benchmarks/futex_bench.c
29
futex(&addr, FUTEX_WAKE, 1, NULL, NULL, 0);