Home
last modified time | relevance | path

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

/linux-4.1.27/Documentation/
Dpi-futex.txt6 - in the user-space fastpath a PI-enabled futex involves no kernel work
63 locks (such as futex-based pthread mutexes) is priority inheritance:
79 normal futex-based locks: a 0 value means unlocked, and a value==TID
84 To handle the slowpath, we have added two new futex ops:
91 remaining work: if there is no futex-queue attached to the futex address
92 yet then the code looks up the task that owns the futex [it has put its
93 own TID into the futex value], and attaches a 'PI state' structure to
94 the futex-queue. The pi_state includes an rt-mutex, which is a PI-aware,
97 futex value. Then this task tries to lock the rt-mutex, on which it
99 futex value to its own TID and returns. Userspace has no other work to
[all …]
Drobust-futexes.txt11 A futex is in essence a user-space address, e.g. a 32-bit lock variable
16 creates a 'futex queue' internally, so that it can later on match up the
18 When the owner thread releases the futex, it notices (via the variable
21 taken and released the lock, the futex is again back to 'uncontended'
23 completely forgets that there ever was a futex at that address. This
38 There is a big conceptual problem with futex based mutexes though: it is
40 the kernel cannot help with the cleanup: if there is no 'futex queue'
47 is needed to release that futex based lock. This is one of the leading
72 are to be cleaned up, because a robust futex might have been registered
73 in another task, and the futex variable might have been simply mmap()-ed
[all …]
Drobust-futex-ABI.txt3 The robust futex ABI
24 waiting on a particular futex, and waking up the next waiter on a
25 particular futex.
78 lock variable used by the futex mechanism, in conjunction with
80 waiting for a lock on a threads exit if that next thread used the futex
83 For each futex lock currently held by a thread, if it wants this
89 that lock using the futex mechanism.
116 existing futex mechanism to wait for, and wakeup, locks. The kernels
121 There may exist thousands of futex lock structures in a threads shared
126 A given futex lock structure in a user shared memory region may be held
[all …]
Dfutex-requeue-pi.txt4 Requeueing of tasks from a non-PI futex to a PI futex requires
55 user space already holding the PI futex. The glibc implementation
104 and pthread_cond_timedwait()) to block on the initial futex and wait
105 to be requeued to a PI-aware futex. The implementation is the
115 PI futex on behalf of the top waiter. If it can, this waiter is
117 nr_wake+nr_requeue tasks to the PI futex, calling
D00-INDEX198 futex-requeue-pi.txt
199 - info on requeueing of tasks from a non-PI futex to a PI futex
358 pi-futex.txt
390 robust-futex-ABI.txt
391 - documentation of the robust futex ABI.
Dunshare.txt279 4) Concurrent execution: Use shared memory segments and futex on
Dnommu-mmap.txt178 be given if an address passed to the futex system call lies outside the
/linux-4.1.27/tools/perf/bench/
Dfutex-hash.c39 u_int32_t *futex; member
79 ret = futex_wait(&w->futex[i], 1234, NULL, futex_flag); in workerfn()
154 worker[i].futex = calloc(nfutexes, sizeof(*worker[i].futex)); in bench_futex_hash()
155 if (!worker[i].futex) in bench_futex_hash()
199 worker[i].tid, &worker[i].futex[0], t); in bench_futex_hash()
202 worker[i].tid, &worker[i].futex[0], in bench_futex_hash()
203 &worker[i].futex[nfutexes-1], t); in bench_futex_hash()
206 free(worker[i].futex); in bench_futex_hash()
Dfutex.h35 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ macro
45 return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags); in futex_wait()
55 return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags); in futex_wake()
67 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue()
DBuild4 perf-y += futex-hash.o
5 perf-y += futex-wake.o
6 perf-y += futex-requeue.o
/linux-4.1.27/tools/perf/scripts/python/bin/
Dfutex-contention-report4 perf script $@ -s "$PERF_EXEC_PATH"/scripts/python/futex-contention.py
/linux-4.1.27/Documentation/DocBook/
D.kernel-locking.xml.cmd2 …cumentation/DocBook/kernel-locking.tmpl include/linux/mutex.h kernel/locking/mutex.c kernel/futex.c
/linux-4.1.27/kernel/
Dfutex.c2232 restart->futex.uaddr = uaddr; in futex_wait()
2233 restart->futex.val = val; in futex_wait()
2234 restart->futex.time = abs_time->tv64; in futex_wait()
2235 restart->futex.bitset = bitset; in futex_wait()
2236 restart->futex.flags = flags | FLAGS_HAS_TIMEOUT; in futex_wait()
2251 u32 __user *uaddr = restart->futex.uaddr; in futex_wait_restart()
2254 if (restart->futex.flags & FLAGS_HAS_TIMEOUT) { in futex_wait_restart()
2255 t.tv64 = restart->futex.time; in futex_wait_restart()
2260 return (long)futex_wait(uaddr, restart->futex.flags, in futex_wait_restart()
2261 restart->futex.val, tp, restart->futex.bitset); in futex_wait_restart()
[all …]
Dfutex_compat.c174 COMPAT_SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val, in COMPAT_SYSCALL_DEFINE6() argument
DMakefile38 obj-$(CONFIG_FUTEX) += futex.o
/linux-4.1.27/arch/avr32/include/asm/
DKbuild9 generic-y += futex.h
/linux-4.1.27/arch/frv/kernel/
DMakefile22 obj-$(CONFIG_FUTEX) += futex.o
/linux-4.1.27/arch/um/include/asm/
DKbuild11 generic-y += futex.h
/linux-4.1.27/arch/cris/include/asm/
DKbuild10 generic-y += futex.h
/linux-4.1.27/include/linux/
Dthread_info.h30 } futex; member
/linux-4.1.27/arch/m68k/include/asm/
DKbuild9 generic-y += futex.h
/linux-4.1.27/tools/perf/Documentation/
Dperf-bench.txt58 'futex'::
205 SUITES FOR 'futex'
/linux-4.1.27/arch/blackfin/include/asm/
DKbuild12 generic-y += futex.h
/linux-4.1.27/arch/metag/include/asm/
DKbuild14 generic-y += futex.h
/linux-4.1.27/arch/c6x/include/asm/
DKbuild17 generic-y += futex.h
/linux-4.1.27/arch/unicore32/include/asm/
DKbuild17 generic-y += futex.h
/linux-4.1.27/arch/nios2/include/asm/
DKbuild20 generic-y += futex.h
/linux-4.1.27/arch/openrisc/include/asm/
DKbuild26 generic-y += futex.h
/linux-4.1.27/Documentation/locking/
Drt-mutex.txt6 (PTHREAD_PRIO_INHERIT). [See Documentation/pi-futex.txt for more details
/linux-4.1.27/arch/parisc/kernel/
Dsyscall_table.S308 ENTRY_COMP(futex) /* 210 */
/linux-4.1.27/arch/powerpc/include/asm/
Dsystbl.h228 COMPAT_SYS_SPU(futex)
/linux-4.1.27/arch/x86/syscalls/
Dsyscall_64.tbl211 202 common futex sys_futex
Dsyscall_32.tbl249 240 i386 futex sys_futex compat_sys_futex
/linux-4.1.27/Documentation/vm/
Dtranshuge.txt269 under it, see the futex code to see an example of that, hugetlbfs also
270 needed special handling in futex code for similar reasons).
/linux-4.1.27/include/uapi/linux/
DKbuild135 header-y += futex.h
/linux-4.1.27/arch/arm64/
DKconfig633 In some older versions of glibc [<=2.8] SWP is used during futex
/linux-4.1.27/arch/arm/mm/
DKconfig684 In some older versions of glibc [<=2.8] SWP is used during futex
/linux-4.1.27/Documentation/s390/
DDebugging390.txt271 the mvcos instruction is not available or if a compare-and-swap (futex)
294 - secondary space mode in case of futex atomic operations, so that the
/linux-4.1.27/init/
DKconfig1484 bool "Enable futex support" if EXPERT
/linux-4.1.27/
DCREDITS2184 D: Parport fixes, futex improvements