Commit Graph

167 Commits

Author SHA1 Message Date
Michael Kerrisk 7c16fbff95 futex.2: Integrate text from Darren Hart on PI Mutexes
From the 2009 Real-Time Linux Workshop paper
Requeue-PI: Making Glibc Condvars PI-Aware
Darren Hart, Dinakar Guniguntala
http://lwn.net/images/conf/rtlws11/papers/proc/p10.pdf

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk b4d4f5c537 futex.2: srcfix: Remove obsolete FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk bd90a5f9c3 futex.2: Add subsection for PI futexes
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 9ce19cf1b7 futex.2: Fix discussion of FUTEX_LOCK_PI 'timeout' argument
Reading futex_lock_pi(), it appears that the timeout is *not*
interpreted in the same way as for FUTEX_WAKE.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk a8b5b324e3 futex.2: RETURN VALUE: add FUTEX_WAKE_OP
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 22c15de938 futex.2: RETURN VALUE: add FUTEX_WAIT_REQUEUE_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk dddd395a8d futex.2: RETURN VALUE: add FUTEX_CMP_REQUEUE_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 52bb928f26 futex.2: RETURN VALUE: add FUTEX_UNLOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 5c716eef68 futex.2: RETURN VALUE: add FUTEX_TRYLOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk bf02a260f4 futex.2: RETURN VALUE: add FUTEX_LOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk b884566b97 futex.2: RETURN VALUE: add FUTEX_WAKE_BITSET
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 7bcc535166 futex.2: RETURN VALUE: add FUTEX_WAIT_BITSET
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 7446a8373c futex.2: RETURN VALUE: mention FUTEX_WAKE_BITSET under FUTEX_WAIT
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 8f23887259 futex.2: Remove uneeded reference to ERRORS section
(The need to read ERRORS is implied.)

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk dcad19c0c1 futex.2: RETURN VALUE: add placeholder for various operations
There are still several operations whose return value
is not yet described.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk 76f347bada futex.2: ERRORS: Add EPERM case for FUTEX_UNLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk f2424faec3 futex.2: ERRORS: Add ENOSYS case for FUTEX_UNLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:43 +01:00
Michael Kerrisk ce022f1841 futex.2: ERRORS: Add EINVAL case for FUTEX_UNLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Thomas Gleixner ecae2099c5 futex.2: Document FUTEX_UNLOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 34f14794b5 futex.2: srcfix: FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 12fdbe23b2 futex.2: Rearrange order FUTEX_UNLOCK_PI in list of operations
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk a9dcb4d1de futex.2: ERRORS: Add ENOSYS case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk fedaeaf35c futex.2: srcfix: Add FIXME for the FUTEX_OWNER_DIED condition
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk d08ce5dd00 futex.2: srcfix: Add FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 7a39e745a7 futex.2: ERRORS: Add EDEADLK case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 6f147f79bf futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 61f8c1d19b futex.2: srcfix: add FIXMEs
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 5662f56a3d futex.2: ERRORS: Add EAGAIN case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 0b0e49344a futex.2: ERRORS: Add ESRCH case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk c7589177b7 futex.2: ERRORS: Add EPERM case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk a218ef20dc futex.2: ERRORS: Add EINVAL case for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 672595267c futex.2: srcfix: Add some FIXMEs for FUTEX_LOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk a449c6342a futex.2: ERRORS: Add ENOMEM for FUTEX_LOCK_PI and FUTEX_TRYLOCK_PI
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Thomas Gleixner e0547e70ae futex.2: Document FUTEX_LOCK_PI
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk dcdfde2633 futex.2: srcfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk f2103b2686 futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 43b9908905 futex.2: SEE ALSO: add Documentation/{pi-futex.txt,futex-requeue-pi.txt}
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk dd218aaa9d futex.2: srcfix: add FIXMEs
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 9913033cf0 futex.2: SEE ALSO: add get_robust_list(2)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 09cb4ce716 futex.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk a7c2bf45b7 futex.2: Reorder operations list more or less chronologically
Since there are various sets of related futex operations
that were added at the same time, ordering the descriptions
of operations chronologically makes some sense. In the
meantime, though, keep all of the "PI" operations together.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 63d3f91178 futex.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk e9d4496bf3 futex.2: Add discussion of FUTEX_WAIT_BITSET/FUTEX_WAKE_BITSET "multiplexing"
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:42 +01:00
Michael Kerrisk 98d769c098 futex.2: Enhance FUTEX_WAKE_BITSET text
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Thomas Gleixner 55cc422d78 futex.2: Document FUTEX_WAKE_BITSET
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk fd9e59d424 futex.2: Add description of FUTEX_WAIT_BITSET 'timeout' argument
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Thomas Gleixner 79c9b4366e futex.2: Document FUTEX_WAIT_BITSET
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 5447735dd2 futex.2: Consolidate EINVAL FUTEX_LOCK_PI errors
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 52dee70ef0 futex.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00
Michael Kerrisk 180f97b797 futex.2: Reword invalid timeout EINVAL case more generally
Several operations can produce this error, so reword
the text more generally.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-12-15 14:39:41 +01:00