Re: Possible bug with mutex adaptative spinning
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2010-04-16 23:41:33
Also in:
lkml
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2010-04-16 23:41:33
Also in:
lkml
On Fri, 2010-04-16 at 23:27 +0200, Peter Zijlstra wrote:
quoted
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.The inner-most spin loop breaks out on need_resched(): if (task_thread_info(rq->curr) != owner || need_resched()) return 0;
You are right, this was only a problem in conjunction with the other bug returning 1 all the time, causing us to ignore need_resched(). With that fixed, it looks fine now. Thanks ! Cheers, Ben.