Messages in this thread | | | Subject | Re: Possible bug with mutex adaptative spinning | From | Benjamin Herrenschmidt <> | Date | Sat, 17 Apr 2010 08:01:32 +1000 |
| |
On Fri, 2010-04-16 at 23:27 +0200, Peter Zijlstra wrote: > > 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.
| |