Home
last modified time | relevance | path

Searched refs:futex (Results 1 – 25 of 82) sorted by relevance

1234

/OK3568_Linux_fs/kernel/tools/testing/selftests/futex/include/
H A Dfutextest.h70 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ macro
80 return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags); in futex_wait()
90 return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags); in futex_wake()
101 return futex(uaddr, FUTEX_WAIT_BITSET, val, timeout, NULL, bitset, in futex_wait_bitset()
112 return futex(uaddr, FUTEX_WAKE_BITSET, nr_wake, NULL, NULL, bitset, in futex_wake_bitset()
124 return futex(uaddr, FUTEX_LOCK_PI, detect, timeout, NULL, 0, opflags); in futex_lock_pi()
133 return futex(uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0, opflags); in futex_unlock_pi()
143 return futex(uaddr, FUTEX_WAKE_OP, nr_wake, nr_wake2, uaddr2, wake_op, in futex_wake_op()
159 return futex(uaddr, FUTEX_REQUEUE, nr_wake, nr_requeue, uaddr2, 0, in futex_requeue()
172 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue()
[all …]
/OK3568_Linux_fs/yocto/poky/meta/recipes-support/boost/boost/
H A D0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch4 Subject: [PATCH] futex: fix build on 32-bit architectures using 64-bit time_t
8 | ./boost/fiber/detail/futex.hpp:31:23: error: use of undeclared identifier 'SYS_futex'
16 boost/fiber/detail/futex.hpp | 4 ++++
19 diff --git a/boost/fiber/detail/futex.hpp b/boost/fiber/detail/futex.hpp
21 --- a/boost/fiber/detail/futex.hpp
22 +++ b/boost/fiber/detail/futex.hpp
33 #include <linux/futex.h>
/OK3568_Linux_fs/buildroot/package/mesa3d/
H A D0005-src-util-futex.h-fix-build-on-32-bit-architectures-u.patch4 Subject: [PATCH] src/util/futex.h: fix build on 32-bit architectures using
10 ../src/util/futex.h: In function 'sys_futex':
11 ../src/util/futex.h:39:19: error: 'SYS_futex' undeclared (first use in this function); did you mean…
23 src/util/futex.h | 4 ++++
26 diff --git a/src/util/futex.h b/src/util/futex.h
28 --- a/src/util/futex.h
29 +++ b/src/util/futex.h
/OK3568_Linux_fs/kernel/Documentation/locking/
H A Dpi-futex.rst7 - in the user-space fastpath a PI-enabled futex involves no kernel work
64 locks (such as futex-based pthread mutexes) is priority inheritance:
80 normal futex-based locks: a 0 value means unlocked, and a value==TID
85 To handle the slowpath, we have added two new futex ops:
92 remaining work: if there is no futex-queue attached to the futex address
93 yet then the code looks up the task that owns the futex [it has put its
94 own TID into the futex value], and attaches a 'PI state' structure to
95 the futex-queue. The pi_state includes an rt-mutex, which is a PI-aware,
98 futex value. Then this task tries to lock the rt-mutex, on which it
100 futex value to its own TID and returns. Userspace has no other work to
[all …]
H A Drobust-futexes.rst15 A futex is in essence a user-space address, e.g. a 32-bit lock variable
20 creates a 'futex queue' internally, so that it can later on match up the
22 When the owner thread releases the futex, it notices (via the variable
25 taken and released the lock, the futex is again back to 'uncontended'
27 completely forgets that there ever was a futex at that address. This
42 There is a big conceptual problem with futex based mutexes though: it is
44 the kernel cannot help with the cleanup: if there is no 'futex queue'
51 is needed to release that futex based lock. This is one of the leading
76 are to be cleaned up, because a robust futex might have been registered
77 in another task, and the futex variable might have been simply mmap()-ed
[all …]
H A Dindex.rst21 pi-futex
22 futex-requeue-pi
26 robust-futex-ABI
H A Drobust-futex-ABI.rst2 The robust futex ABI
26 waiting on a particular futex, and waking up the next waiter on a
27 particular futex.
80 lock variable used by the futex mechanism, in conjunction with
82 waiting for a lock on a threads exit if that next thread used the futex
85 For each futex lock currently held by a thread, if it wants this
91 that lock using the futex mechanism.
118 existing futex mechanism to wait for, and wakeup, locks. The kernels
123 There may exist thousands of futex lock structures in a threads shared
128 A given futex lock structure in a user shared memory region may be held
[all …]
H A Dfutex-requeue-pi.rst5 Requeueing of tasks from a non-PI futex to a PI futex requires
56 user space already holding the PI futex. The glibc implementation
105 and pthread_cond_timedwait()) to block on the initial futex and wait
106 to be requeued to a PI-aware futex. The implementation is the
116 PI futex on behalf of the top waiter. If it can, this waiter is
118 nr_wake+nr_requeue tasks to the PI futex, calling
/OK3568_Linux_fs/kernel/tools/perf/bench/
H A Dfutex.h36 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ macro
46 return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags); in futex_wait()
56 return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags); in futex_wake()
65 return futex(uaddr, FUTEX_LOCK_PI, 0, timeout, NULL, 0, opflags); in futex_lock_pi()
74 return futex(uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0, opflags); in futex_unlock_pi()
86 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue()
H A Dfutex-lock-pi.c28 u_int32_t *futex; member
94 ret = futex_lock_pi(w->futex, NULL, futex_flag); in workerfn()
99 w->tid, w->futex, ret); in workerfn()
107 ret = futex_unlock_pi(w->futex, futex_flag); in workerfn()
110 w->tid, w->futex, ret); in workerfn()
130 worker[i].futex = calloc(1, sizeof(u_int32_t)); in create_threads()
131 if (!worker[i].futex) in create_threads()
134 worker[i].futex = &global_futex; in create_threads()
220 worker[i].tid, worker[i].futex, t); in bench_futex_lock_pi()
223 zfree(&worker[i].futex); in bench_futex_lock_pi()
H A Dfutex-hash.c48 u_int32_t *futex; member
89 ret = futex_wait(&w->futex[i], 1234, NULL, futex_flag); in workerfn()
168 worker[i].futex = calloc(nfutexes, sizeof(*worker[i].futex)); in bench_futex_hash()
169 if (!worker[i].futex) in bench_futex_hash()
214 worker[i].tid, &worker[i].futex[0], t); in bench_futex_hash()
217 worker[i].tid, &worker[i].futex[0], in bench_futex_hash()
218 &worker[i].futex[nfutexes-1], t); in bench_futex_hash()
221 zfree(&worker[i].futex); in bench_futex_hash()
H A DBuild5 perf-y += futex-hash.o
6 perf-y += futex-wake.o
7 perf-y += futex-wake-parallel.o
8 perf-y += futex-requeue.o
9 perf-y += futex-lock-pi.o
H A Dfutex-wake-parallel.c48 static u_int32_t futex = 0; variable
82 waker->nwoken = futex_wake(&futex, nwakes, futex_flag); in waking_workerfn()
133 if (futex_wait(&futex, 0, NULL, futex_flag) != EINTR) in blocked_workerfn()
271 &futex, nwaking_threads, nwakes); in bench_futex_wake_parallel()
/OK3568_Linux_fs/yocto/poky/meta/recipes-graphics/mesa/files/
H A D0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch4 Subject: [PATCH] futex.h: Define __NR_futex if it does not exist
17 src/util/futex.h | 4 ++++
20 diff --git a/src/util/futex.h b/src/util/futex.h
22 --- a/src/util/futex.h
23 +++ b/src/util/futex.h
/OK3568_Linux_fs/kernel/tools/testing/selftests/powerpc/benchmarks/
H A Dfutex_bench.c18 #define futex(A, B, C, D, E, F) syscall(__NR_futex, A, B, C, D, E, F) macro
29 futex(&addr, FUTEX_WAKE, 1, NULL, NULL, 0); in test_futex()
/OK3568_Linux_fs/kernel/tools/testing/selftests/futex/
H A DREADME3 Futex Test is intended to thoroughly test the Linux kernel futex system call
6 Functional tests shall test the documented behavior of the futex operation
54 based on the primary futex operation they test. Eventually this will become a
/OK3568_Linux_fs/yocto/meta-qt5/recipes-qt/qt5/qtbase/
H A D0017-Define-__NR_futex-if-it-does-not-exist.patch27 # include <linux/futex.h>
33 // if not defined in linux/futex.h
/OK3568_Linux_fs/kernel/tools/perf/Documentation/
H A Dperf-bench.txt61 'futex'::
206 SUITES FOR 'futex'
221 Suite for evaluating futex lock_pi calls.
/OK3568_Linux_fs/kernel/tools/perf/scripts/python/bin/
H A Dfutex-contention-report4 perf script $@ -s "$PERF_EXEC_PATH"/scripts/python/futex-contention.py
/OK3568_Linux_fs/kernel/tools/testing/selftests/timens/
H A DMakefile1 TEST_GEN_PROGS := timens timerfd timer clock_nanosleep procfs exec futex
/OK3568_Linux_fs/kernel/kernel/
H A Dfutex.c2743 restart->futex.uaddr = uaddr; in futex_wait()
2744 restart->futex.val = val; in futex_wait()
2745 restart->futex.time = *abs_time; in futex_wait()
2746 restart->futex.bitset = bitset; in futex_wait()
2747 restart->futex.flags = flags | FLAGS_HAS_TIMEOUT; in futex_wait()
2763 u32 __user *uaddr = restart->futex.uaddr; in futex_wait_restart()
2766 if (restart->futex.flags & FLAGS_HAS_TIMEOUT) { in futex_wait_restart()
2767 t = restart->futex.time; in futex_wait_restart()
2772 return (long)futex_wait(uaddr, restart->futex.flags, in futex_wait_restart()
2773 restart->futex.val, tp, restart->futex.bitset); in futex_wait_restart()
[all …]
/OK3568_Linux_fs/kernel/include/linux/
H A Drestart_block.h36 } futex; member
/OK3568_Linux_fs/yocto/poky/meta/recipes-support/boost/
H A Dboost_1.78.0.bb9 file://0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch \
/OK3568_Linux_fs/kernel/include/trace/hooks/
H A Dfutex.h3 #define TRACE_SYSTEM futex
/OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/
H A Dsys_futex.patch13 # include <linux/futex.h>

1234