Re: [patch 3/4] ipc: sem preempt improve

Manfred Spraul
2009-08-16T13:19:12Z

On 08/11/2009 01:09 PM, npiggin@suse.de wrote:
> The strange sysv semaphore wakeup scheme has a kind of busy-wait lock
> involved, which could deadlock if preemption is enabled during the
> "lock".
>
> It is an implementation detail (due to a spinlock being held) that this
> is actually the case. However if "spinlocks" are made preemptible, or if
> the sem lock is changed to a sleeping lock for example, then the wakeup
> would become buggy. So this might be a bugfix for -rt kernels.
>
> Imagine waker being preempted by wakee and never clearing IN_WAKEUP --
> if wakee has higher RT priority then there is a priority inversion deadlock.
> Even if there is not a priority inversion to cause a deadlock, then there
> is still time wasted spinning.
>
> Signed-off-by: Nick Piggin<npiggin@suse.de>
>
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>