* [patch 00/21] mutex subsystem, -V15
@ 2006-01-05 15:36 Ingo Molnar
0 siblings, 0 replies; only message in thread
From: Ingo Molnar @ 2006-01-05 15:36 UTC (permalink / raw)
To: lkml
Cc: Linus Torvalds, Andrew Morton, Arjan van de Ven, Nicolas Pitre,
Jes Sorensen, Al Viro, Oleg Nesterov, David Howells, Alan Cox,
Christoph Hellwig, Andi Kleen, Russell King
this is version 15 of the generic mutex subsystem, against v2.6.15.
The patch-queue consists of 21 patches, which can also be downloaded
from:
http://redhat.com/~mingo/generic-mutex-subsystem/
Changes since -V14:
5 files changed, 164 insertions(+), 191 deletions(-)
- micro-optimization #1: changed waiter->ti to be waiter->task, this
shaved off 2 more instructions from the slowpath. Suggested by David
Howells.
- micro-optimization #2: beware, this is evil black magic: i've enabled
architectures to do tail-merging of the slowpath if they want to, and
implemented this on x86. This shaves off another 3 instructions
from the slowpath, which can now directly branch into the slowpath
function, and the ret from there will bring us back to the call site.
The cost is that no other code but the fastpath must be put into
mutex_lock()/_unlock(). I have added big warnings to the affected
places. The non-assembly generic includes, nor the debugging code is
affected by this.
- reordered the API functions to be in likelyhood-of-use order:
mutex_lock()-fastpath, mutex_unlock()-fastpath,
mutex_lock()-slowpath, mutex_unlock()-slowpath,
mutex_lock_interruptible() fastpath/slowpath, mutex_trylock().
- cleanup: got rid of the intermediate __mutex_lock()/__mutex_unlock()
wrappers, they were unnecessary. Renamed the _noinline functions to
_slowpath - this is more descriptive.
Ingo
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-01-05 15:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-05 15:36 [patch 00/21] mutex subsystem, -V15 Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®