Commit Graph

117 Commits

Author SHA1 Message Date
Michael Kerrisk 6b060884c5 futex.2: srcfix: added FIXMES
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 0582b19df0 futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 1afcee7c9b futex.2: ffix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 4d85047f16 futex.2: Rewrite text of ETIMEDOUT to omit mention of FUTEX_WAIT
Several operations can employ timeouts, so word this error
more generally.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 0c74df0b6a futex.2: Reword EINVAL error for invalid 'uaddr'/ 'uaddr2' case
There's no need to list all of the various futex operations in
this error case. These arguments are used the same way by each
operation, so the text can be worded in a more general way.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk ae2c1774a2 futex.2: Note the existence of the _PRIVATE constants for 'futex_op'
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk ff5976814d futex.2: Expand FUTEX_FD description
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 75bc6c1197 futex.2: srcfix: note kernel commit that removed FUTEX_FD
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 1abce893a5 futex.2: srcfix: add copyright notices
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 730bfbda71 futex.2: FUTEX_WAKE makes no guarantees about which waiters are awoken
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 2674f7815a futex.2: FUTEX_WAIT_BITSET can also get EINTR error
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 4710334a35 futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 36ab2074ca futex.2: Add introductory paragraph describing 'timeout', 'uaddr2', and 'val3'
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk f388ba704e futex.2: Rewrite the intro paragraphs a little
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk dd05d61221 futex.2: Cut down discussion of FUTEX_REQUEUE; defer to FUTEX_CMP_REQUEUE
FUTEX_CMP_REQUEUE supercedes FUTEX_REQUEUE and provides a superset
of its functionality. There is need to duplicate any details in
the FUTEX_REQUEUE description, simple defer to the
FUTEX_CMP_REQUEUE and note the differences. This also guides the
reader to do the right thing: use FUTEX_CMP_REQUEUE rather than
FUTEX_REQUEUE.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 3dfcc11d46 futex.2: Expand description of FUTEX_CMP_REQUEUE
With some help from "Futexes are tricky" bt Ulrich Drepper.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 4ac63a6c1a futex.2: Warn that FUTEX_REQUEUE should be avoided in favor of FUTEX_CMP_REQUEUE
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 6bac3b8517 futex.2: Document FUTEX_WAKE_OP
Based on "Futexes are tricky" and some reading of the kernel
source.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk f42eb21b57 futex.2: SEE ALSO: Add reference to "Futexes are tricky" by Ulrich Drepper
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk ec77c507c1 futex.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk d33602c4e0 futex.2: Rename 'op' argument to 'futex_op'
This is a little more readable, and also helps avoid confusing
when talking about the 'op' subfield in the FUTEX_WAKE_OP
discussion.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 9a12ca2185 futex.2: ffix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 519f2c3db6 futex.2: srcfix: add FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk f065673c7a futex.2: Elaborate on the operation of FUTEX_WAIT
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 36448cfa8d futex.2: Remove duplicate EQWOULDBLOCK error
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 1c952cf53c futex.2: Note that the CLOCK_MONOTONIC clock is used for relative timeouts
Verified from inspection of kernel/futex.c::futex_wait().

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 1909e523d0 futex.2: Clarify that the FUTEX_WAIT timeout is relative
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 81c9d87e3d futex.2: Clarify which operations were available as at Linux 2.6.0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 4a7e5b05cc futex.2: Rework FUTEX_CLOCK_REALTIME text
And move ENOSYS diuscussion to ERRORS.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk d67e21f5e2 futex.2: Add placeholders for as yet undocumented operations
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Thomas Gleixner 2e98bbc24a futex.2: Document FUTEX_CLOCK_REALTIME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Thomas Gleixner fc30eb799b futex.2: Document FUTEX_PRIVATE_FLAG
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 6be4bad7e0 futex.2: Note that 'op' argument consists of two parts: operation + options
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 5c47973251 futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 409f08b018 futex.2: ffix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk a72a3aeb43 futex.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk fd1dc4c2c7 futex.2: srcfix: Add FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk e169277fca futex.2: ERRORS: add FUTEX_CMP_REQUEUE to EINVAL inconsistent state case
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk a1f47699ab futex.2: ERRORS: add FUTEX_CMP_REQUEUE to EINVAL for non-4-byte aligned address
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 98fe2f25d2 futex.2: Add FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 03433acb7b futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk add875c03c futex.2: ERRORS: add EINVAL for FUTEX_REQUEUE to same futex
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk bae14b6c60 futex.2: ERRORS: Add FUTEX_REQUEUE to EINVAL inconsistent state case
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk caf1ff2510 futex.2: ERRORS: add FUTEX_REQUEUE to EINVAL for non-4-byte aligned address
Reported-by Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Thomas Gleixner 2abb73b988 futex.2: Rework description of arguments for FUTEX_REQUEUE
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:40 +01:00
Michael Kerrisk 4798a7f357 futex.2: ffix: Separate text about ignored arguments into individual paragraphs
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:39 +01:00
Michael Kerrisk 496df3049b futex.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:39 +01:00
Thomas Gleixner 9534086bb1 futex.2: ERRORS: add EINVAL error for FUTEX_WAIT inconsistent state case
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:39 +01:00
Michael Kerrisk ea355b7f77 futex.2: Add FUTEX_WAKE to EINVAL error for 'uaddr' not 4-byte aligned
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:39 +01:00
Michael Kerrisk d1926d782e futex.2: Reword ETIMEDOUT error
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:39 +01:00