Messages in this thread | | | Subject | Re: [RFC][PATCH v2 5/5] mutex: Give spinners a chance to spin_on_owner if need_resched() triggered while queued | From | Jason Low <> | Date | Mon, 03 Feb 2014 12:55:34 -0800 |
| |
On Mon, 2014-02-03 at 20:25 +0100, Peter Zijlstra wrote: > On Mon, Feb 03, 2014 at 10:39:20AM -0800, Jason Low wrote: > > > To avoid the xchg on every loop. > > > > Ah yes, we want to use xchg() on &node->next. > > > > Since the cmpxchg() is now in a loop in the unlock function, an > > additional (*lock == node) check before the cmpxchg() would also be nice > > to avoid spinning on cmpxchg() there too. > > Right, I have the below; you can find the patches this depends upon > here: > > http://programming.kicks-ass.net/sekrit/patches.tar.bz2 > > --- > Subject: locking, mutex: Cancelable MCS lock for adaptive spinning > From: Peter Zijlstra <peterz@infradead.org> > Date: Wed, 29 Jan 2014 12:51:42 +0100 > > Since we want a task waiting for a mutex_lock() to go to sleep and > reschedule on need_resched() we must be able to abort the > mcs_spin_lock() around the adaptive spin. > > Therefore implement a cancelable mcs lock. > > XXX: anybody got a better name than m_spinlock?
So I was thinking something along the lines of mcs_spin_lock_cancelable() as that's essentially what this function does.
| |