[patch 0/8] mutex subsystem, ANNOUNCE

From: Ingo Molnar
Date: Wed Dec 21 2005 - 17:36:45 EST


this is the latest version of the mutex subsystem patch-queue. It
consists of the following patches:

xfs-mutex-namespace-collision-fix.patch
add-atomic-xchg.patch
add-atomic-call-func-i386.patch
add-atomic-call-func-x86_64.patch
add-atomic-call-wrappers-rest.patch
mutex-core.patch
mutex-debug.patch
mutex-debug-more.patch

the patches are against Linus' latest tree.

Changes since the previous version:

- fixed the %eax clobber bug noticed by Linus. Also fixed a similar bug
in the x86_64 assembly routine. Ended up solving this by marking the
register clobbered - the function-always-returns change resulted in
worse code. (usually the slowpath functions dont have the atomic-lock
parameter ready at the end of the function, so they have to do extra
work to return it.)

- implemented Oleg's suggestion of doing the xchg() before adding the
waiter to the queue.

- optimization: in the xchg() case we can avoid hitting the slowpath
when releasing the lock later on, by setting the count to 0 if the
wait-list is otherwise empty. This is the common-case for wakeups.

- bugfix: forgot to take a spinlock in the signal-return path.

- added a couple of likely/unlikely modifiers, based on profile output.

- inline the trylock fastpath into the mutex_trylock() function.

- move the waiter->lock field into the debug path - nothing in the
non-debug case was using it. This is also a small optimization for
the slowpath.

- optimization: do a cheaper list_del in the non-debug case. This also
enabled the removal of debug_remove_waiter().

- fix for the debugging branch: initialize the wait->list to empty.

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/