On Wed, 2010-04-14 at 12:35 +1000, Benjamin Herrenschmidt wrote:
.../...
In fact, I wonder if there's another potential problem:
If the owner is actually running, it may do so for a very long time. It
looks to me that everybody trying to take the mutex will thus spin and
never get out of the spin loop until the owner stops running.
That sounds very wrong to me :-)
Shouldn't you at least remove the test for !owner when testing
need_resched() in __mutex_lock_common() ?
Cheers,
Ben.
--