On Thu, 2011-09-15 at 19:29 +0200, Manfred Spraul wrote:I'd ask the question the other way arould:What is broken?So basically sembench was broken and the futex patch is causing spurious
wakeups.
I've got the below patch to fix up the sem code.
One more question, do the sem wakeups need to be issued in FIFO order?
There's a comment in there:
* User space visible behavior:
* - FIFO ordering for semop() operations (just FIFO, not starvation
* protection)
that seems to suggest the sem ops processing is in FIFO order, but does
the user visible effect propagate to the wakeup order?
Good solution.
/*
* If an interrupt occurred we have to clean up the queue
*/
if (timeout&& jiffies_left == 0)
error = -EAGAIN;
+
+ if (error == -EINTR&& !signal_pending(current))
+ goto retry;
+
unlink_queue(sma,&queue);
out_unlock_free: