Re: futex(2) man page update help request
flat view
From: Torvald Riegel <hidden>
Date: 2015-01-24 12:59:10
Also in:
linux-man, lkml
On Sat, 2015-01-24 at 11:05 +0100, Thomas Gleixner wrote:
On Fri, 23 Jan 2015, Torvald Riegel wrote:quoted
On Fri, 2015-01-16 at 16:46 -0800, Darren Hart wrote:quoted
On 1/16/15, 12:54 PM, "Michael Kerrisk (man-pages)" [off-list ref] wrote:quoted
Color me stupid, but I can't see this in futex_requeue(). Where is that check that is "independent of the requeue type (normal/pi)"? When I look through futex_requeue(), all the likely looking sources of EINVAL are governed by a check on the 'requeue_pi' argument.Right, in the non-PI case, I believe there are valid use cases: move to the back of the FIFO, for example (OK, maybe the only example?).But we never guarantee a futex is a FIFO, or do we? If we don't, then such a requeue could be implemented as a no-op by the kernel, which would sort of invalidate the use case. (And I guess we don't want to guarantee FIFO behavior for futexes.)The (current) behaviour is: real-time threads: FIFO per priority level sched-other threads: FIFO independent of nice level The wakeup is priority ordered. Highest priority level first.
OK. But, just to be clear, do I correctly understand that you do not want to guarantee FIFO behavior in the specified futex semantics? I think there are cases where being able to *rely* on FIFO (now and on all future kernels) would be helpful for users (e.g., on POSIX/C++11 condvars and I assume in other ordered-wakeup cases too) -- but at the same time, this would constrain future futex implementations.