Messages in this thread | | | Subject | Re: Possible bug with mutex adaptative spinning | From | Peter Zijlstra <> | Date | Fri, 16 Apr 2010 23:27:31 +0200 |
| |
On Wed, 2010-04-14 at 12:56 +1000, Benjamin Herrenschmidt wrote: > On Wed, 2010-04-14 at 12:35 +1000, Benjamin Herrenschmidt wrote: > > Hi Peter ! > > > > I -may- have found a bug with mutex adaptative spinning. We hit it when > > torture testing CPU unplug. > > .../... > > 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.
The inner-most spin loop breaks out on need_resched():
if (task_thread_info(rq->curr) != owner || need_resched()) return 0;
| |