[PATCH -tip v2 0/4] rtmutex: Another crack at spin on owner

From: Davidlohr Bueso
Date: Mon Apr 04 2016 - 02:33:48 EST


Changes from v1:
- Dropped patch 4 that removed the barrier in the deadlock path.
- Added patch 2 (trivial) to use poison.h defines.
- sprinkled READ/WRITE_ONCE around lock->owner, even if updated
inside the cr. (peterz)
- More testing time.

This is a followup to proposal sometime ago to add spin on owner to rtmutexes.
My first attempt was rather permissive in that I tried avoiding the pi
dance and let the lock be stolen. However, due to -rt constraints this
series only deals with top-waiter, based on what we do in the preempt
rt patchset.

First two patches are trivial and the whole patchset as survived a week
of locktorture+pi_stress pounding at the same time without anything
breaking. That said, I'm sure it needs more testing and eyeballs, these
paths make my head hurt.

Thanks!

Davidlohr Bueso (4):
rtmutex: Delete save_state member of struct rt_mutex
rtmutex: Use waiter debug init,free magic numbers
rtmutex: Add rt_mutex_init_waiter helper
rtmutex: Reduce top-waiter blocking on a lock

include/linux/poison.h | 4 +-
include/linux/rtmutex.h | 3 +-
kernel/Kconfig.locks | 4 ++
kernel/futex.c | 5 +--
kernel/locking/mutex-debug.c | 4 +-
kernel/locking/rtmutex-debug.c | 4 +-
kernel/locking/rtmutex.c | 88 ++++++++++++++++++++++++++++++++++-------
kernel/locking/rtmutex_common.h | 17 +++++++-
8 files changed, 102 insertions(+), 27 deletions(-)

--
2.7.4