Skip to content

mutex subsystem, -V8

Ingo Molnar lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest11 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11mutex subsystem, add atomic_xchg() to all archesinclude/asm-alpha/atomic.h include/asm-arm/atomic.h include/asm-arm26/atomic.h +19 more+29 -00 replies
2/11mutex subsystem, add asm-generic/mutex-[dec|xchg|null].h implementationsinclude/asm-generic/mutex-dec.h include/asm-generic/mutex-null.h include/asm-generic/mutex-xchg.h+215 -00 replies
3/11mutex subsystem, add include/asm-i386/mutex.hinclude/asm-i386/mutex.h+140 -00 replies
4/11mutex subsystem, add include/asm-x86_64/mutex.hinclude/asm-x86_64/mutex.h+97 -03 replies
5/11mutex subsystem, add include/asm-arm/mutex.hinclude/asm-arm/mutex.h+144 -00 replies
6/11mutex subsystem, add default include/asm-*/mutex.h filesinclude/asm-alpha/mutex.h include/asm-cris/mutex.h include/asm-frv/mutex.h +16 more+171 -00 replies
7/11mutex subsystem, coreinclude/linux/mutex.h kernel/Makefile kernel/mutex.c +1 more+581 -10 replies
8/11mutex subsystem, documentationDocumentation/mutex-design.txt+126 -00 replies
9/11mutex subsystem, debugging codeinclude/linux/mutex-debug.h include/linux/sched.h kernel/Makefile +4 more+636 -00 replies
10/11mutex subsystem, more debugging codearch/i386/mm/pageattr.c drivers/char/sysrq.c include/linux/mm.h +4 more+37 -00 replies
11/11mutex subsystem, XFS namespace collision fixesfs/xfs/linux-2.6/mutex.h fs/xfs/quota/xfs_dquot.c fs/xfs/quota/xfs_dquot.h +8 more+52 -520 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [patch 00/11] mutex subsystem, -V8

this is version -V8 of the generic mutex subsystem. It consists of the following 11 patches:

add-atomic-xchg.patch
mutex-generic-asm-implementations.patch
mutex-asm-mutex.h-i386.patch
mutex-asm-mutex.h-x86_64.patch
mutex-asm-mutex.h-arm.patch
mutex-arch-mutex-h.patch
mutex-core.patch
mutex-docs.patch
mutex-debug.patch
mutex-debug-more.patch
xfs-mutex-namespace-collision-fix.patch

the patches are against Linus' latest GIT tree, and they should work fine on every Linux architecture.

i have tested all 5 mutex implementation variants under MUTEX_DEBUG_FULL on x86: native, -dec, -xchg, -null and debug.

Changes since -V7:

 11 files changed, 258 insertions(+), 122 deletions(-)

- added a __mutex_fastpath_trylock(count, fn) method for architectures to define a trylock fastpath.

While trylock has no 'slowpath' in the classic sense, but e.g. the ARMv6 fastpath implementation can 'fail' to take the lock speculatively, and has to call back into the generic code in that case, to guarantee that the trylock is actually attempted. The debug and xchg variant also makes use of the generic code, unconditionally.

The ARMv6 fastpath implementation is from Nicolas Pitre.

this change gets rid of the final #ifdefs from the core kernel/mutex.c code, and makes it squeeky clean ;-)

- inline mutex_is_locked() (Nicolas Pitre)

- more cleanups (of assembly code in particular).

Ingo