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