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 <pet...@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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/