[patch 0/8] mutex subsystem, ANNOUNCE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, and were tested on i386, 
x86_64 and ia64. [the tests were also done in DEBUG_MUTEX_FULL mode, to 
make sure the code works fine. MUTEX_FULL support is not included in 
this patchqueue].

The patches can also be downloaded from:

  http://redhat.com/~mingo/generic-mutex-subsystem/

Changes since the previous version:

- dropped the semaphore-renaming and migration-helper patches. The 
  patches now contain only the pure mutex subsystem, nothing more.

- removed the fastpath dependency on __HAVE_ARCH_CMPXCHG: now every 
  architecture is able to use the generic mutex_lock/mutex_unlock 
  lockless fastpath. The quality of the fastpath is still as good as in 
  the previous version.

- added ARCH_IMPLEMENTS_MUTEX_FASTPATH for architectures that want to 
  hand-code their own fastpath. The mutex_lock_slowpath,
  mutex_unlock_slowpath and mutex_lock_interruptible_slowpath global
  functions can be used by such architectures in this case, and they 
  should implement the mutex_lock(), mutex_unlock() and
  mutex_lock_interruptible() functions themselves. I have tested this
  mechanism on x86. (but x86 wants to use the generic functions 
  otherwise, so those changes are not included in this patchqueue.)

- fixed the x86_64 register-clobber bug noticed by Zwane Mwaikambo

- XFS namespace collision fixes from Jes Sorensen

- lots of cleanups to "hide" the debugging code, it should now be much 
  less intrusive visually - kernel/mutex.c is now both smaller and 
  easier to read. There's no reduction in debugging functionality.

- cleaned up the debugging code

- unified all the externally visible debugging functions around the 
  mutex_debug_ prefix.

- added the proper atomic ops to every architecture - so in theory 
  mutexes should now work on every architectures. i386, x86_64 and ia64 
  was tested.

- created mutex-debug.h to hide some of the debugging details. Moved the 
  mm.h and sched.h debug-function declarations into this file.

- documentation updates

- eliminated the ->file, ->line debugging variant - __FUNCTION__ is good
  enough and resulted in nicer code.

- properly check for held locks in kfree() too, if DEBUG.

- check for held-lock reinitialization via mutex_init(), if DEBUG.

- more micro-optimizations: eliminated an extra spinlock drop/reacquire 
  in the slowpath.

- dropped waiter->woken, profiles showed that it triggered very rarely.

- dropped the timeout/timer bits - nothing is using them right now, we 
  can add them back later.

- new mutex_trylock() optimization on architectures that support cmpxchg.

- marked ->name as const

- fixed typo: CONFIG_DEBUG_MUTEXESS -> CONFIG_DEBUG_MUTEXES

- mb() -> smp_mb() in mutex_is_locked()

- mutex_trylock doesnt need __sched

comments, fixes, bugreports are welcome,

	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]
  Powered by Linux