locking/mcs: Better differentiate between MCS variants
authorDavidlohr Bueso <dave@stgolabs.net>
Tue, 6 Jan 2015 19:45:07 +0000 (11:45 -0800)
committerIngo Molnar <mingo@kernel.org>
Wed, 14 Jan 2015 14:07:32 +0000 (15:07 +0100)
commitd84b6728c54dcf73bcef3e3f7cf6767e2d224e39
treec3d8f60aee0a71f79666e3d47df73deff975a5ab
parent4bd19084faa61a8c68586e74f03f5776179f65c2
locking/mcs: Better differentiate between MCS variants

We have two flavors of the MCS spinlock: standard and cancelable (OSQ).
While each one is independent of the other, we currently mix and match
them. This patch:

  - Moves the OSQ code out of mcs_spinlock.h (which only deals with the traditional
    version) into include/linux/osq_lock.h. No unnecessary code is added to the
    more global header file, anything locks that make use of OSQ must include
    it anyway.

  - Renames mcs_spinlock.c to osq_lock.c. This file only contains osq code.

  - Introduces a CONFIG_LOCK_SPIN_ON_OWNER in order to only build osq_lock
    if there is support for it.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Jason Low <jason.low2@hp.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Waiman Long <Waiman.Long@hp.com>
Link: http://lkml.kernel.org/r/1420573509-24774-5-git-send-email-dave@stgolabs.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/osq_lock.h
kernel/Kconfig.locks
kernel/locking/Makefile
kernel/locking/mcs_spinlock.h
kernel/locking/osq_lock.c [moved from kernel/locking/mcs_spinlock.c with 98% similarity]