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

Reply via email to