On Wed, 2009-01-14 at 10:53 -0800, Andrew Morton wrote: > On Wed, 14 Jan 2009 19:33:19 +0100 Ingo Molnar <mingo@xxxxxxx> wrote: > > > Please pull the adaptive-mutexes-for-linus git tree > > <fear> > > - It seems a major shortcoming that the feature is disabled if > CONFIG_DEBUG_MUTEXES=y. It means that lots of people won't test it. Yes, that's a bit unfortunate, a simple patch to enable that is: I must admit I'm a bit stumped on why that debug check triggers, I couldn't reproduce today, but Ingo ran into it quite quickly :/ Index: linux-2.6/kernel/mutex-debug.c =================================================================== --- linux-2.6.orig/kernel/mutex-debug.c +++ linux-2.6/kernel/mutex-debug.c @@ -74,7 +74,7 @@ void debug_mutex_unlock(struct mutex *lo return; DEBUG_LOCKS_WARN_ON(lock->magic != lock); - DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info()); + /* DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info()); */ DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next); mutex_clear_owner(lock); } Index: linux-2.6/kernel/mutex.c =================================================================== --- linux-2.6.orig/kernel/mutex.c +++ linux-2.6/kernel/mutex.c @@ -148,7 +148,7 @@ __mutex_lock_common(struct mutex *lock, preempt_disable(); mutex_acquire(&lock->dep_map, subclass, 0, ip); -#if defined(CONFIG_SMP) && !defined(CONFIG_DEBUG_MUTEXES) +#ifdef CONFIG_SMP /* * Optimistic spinning. * @@ -162,9 +162,6 @@ __mutex_lock_common(struct mutex *lock, * Since this needs the lock owner, and this mutex implementation * doesn't track the owner atomically in the lock field, we need to * track it non-atomically. - * - * We can't do this for DEBUG_MUTEXES because that relies on wait_lock - * to serialize everything. */ for (;;) { > - When people hit performance/latency oddities, it would be nice if > they had a /proc knob with which they could disable this feature at > runtime. > > This would also be useful for comparative performance testing. CONFIG_SCHED_DEBUG=y echo NO_MUTEX_SPIN > /debug/sched_features -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html