* [PATCH v5 0/4] MCS Lock: MCS lock code cleanup and optimizations
@ 2013-11-08 19:51 Tim Chen
0 siblings, 0 replies; only message in thread
From: Tim Chen @ 2013-11-08 19:51 UTC (permalink / raw)
To: Ingo Molnar, Andrew Morton, Thomas Gleixner
Cc: linux-kernel, linux-mm, linux-arch, Linus Torvalds, Waiman Long,
Andrea Arcangeli, Alex Shi, Andi Kleen, Michel Lespinasse,
Davidlohr Bueso, Matthew R Wilcox, Dave Hansen, Peter Zijlstra,
Rik van Riel, Peter Hurley, Paul E.McKenney, Tim Chen,
Raghavendra K T, George Spelvin, H. Peter Anvin, Arnd Bergmann,
Aswin Chandramouleeswaran, Scott J Norton, Will Deacon,
Figo.zhang
In this patch series, we separated out the MCS lock code which was
previously embedded in the mutex.c. This allows for easier reuse of
MCS lock in other places like rwsem and qrwlock. We also did some micro
optimizations and barrier cleanup.
The original code has potential leaks between critical sections, which
was not a problem when MCS was embedded within the mutex but needs
to be corrected when allowing the MCS lock to be used by itself for
other locking purposes.
Proper barriers are now embedded with the usage of smp_load_acquire() in
mcs_spin_lock() and smp_store_release() in mcs_spin_unlock. See
http://marc.info/?l=linux-arch&m=138386254111507 for info on the
new smp_load_acquire() and smp_store_release() functions.
One thing to note is the use of smp_load_acquire in a spin loop
to check for lock acquisition. If there are concerns about
a potential barrier being in the spin loop for some architectures, please let
us know.
This patches were previously part of the rwsem optimization patch series
but now we spearate them out.
Tim Chen
Jason Law (1):
MCS Lock: optimizations and extra comments
Tim Chen (1):
MCS Lock: Restructure the MCS lock defines and locking code into its
own file
Waiman Long (2):
MCS Lock: Move mcs_lock/unlock function into its own file
MCS Lock: Barrier corrections
include/linux/mcs_spinlock.h | 25 +++++++++
include/linux/mutex.h | 5 +-
kernel/locking/Makefile | 6 +-
kernel/locking/mcs_spinlock.c | 108 +++++++++++++++++++++++++++++++++++++++++
kernel/locking/mutex.c | 60 +++--------------------
5 files changed, 146 insertions(+), 58 deletions(-)
create mode 100644 include/linux/mcs_spinlock.h
create mode 100644 kernel/locking/mcs_spinlock.c
--
1.7.4.4
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2013-11-08 19:51 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-08 19:51 [PATCH v5 0/4] MCS Lock: MCS lock code cleanup and optimizations Tim Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox