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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]