[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1488863010-13028-1-git-send-email-dave@stgolabs.net>
Date: Mon, 6 Mar 2017 21:03:25 -0800
From: Davidlohr Bueso <dave@...olabs.net>
To: mingo@...nel.org, peterz@...radead.org, akpm@...ux-foundation.org
Cc: jack@...e.cz, kirill.shutemov@...ux.intel.com, mhocko@...e.com,
mgorman@...hsingularity.net, dave@...olabs.net,
linux-kernel@...r.kernel.org
Subject: [PATCH 0/5] locking Introduce range reader/writer lock
Hi,
Here's a very tardy proposal for enhancements to Jan's original[1] range lock
using interval trees. Because at some point it would be awesome to switch mmap_sem
from rwsem to range rwlock, I've focused on making it sharable and performance
enhancements reducing the performance delta between this and conventional locks as
much as possible -- details in patch 1.
The rest of the patches adds support for testing the new lock and actually
makes use of it for lustre. It has passed quite a bit of artificial pounding and
I believe/hope it is in shape to consider.
Applies on top of v4.11-rc1.
[1] https://lkml.org/lkml/2013/1/31/483
Thanks!
Davidlohr Bueso (5):
locking: Introduce range reader/writer lock
locking/locktorture: Fix rwsem reader_delay
locking/locktorture: Fix num reader/writer corner cases
locking/locktorture: Support range rwlocks
staging/lustre: Use generic range rwlock
drivers/gpu/drm/Kconfig | 2 -
drivers/gpu/drm/i915/Kconfig | 1 -
drivers/staging/lustre/lustre/llite/Makefile | 2 +-
drivers/staging/lustre/lustre/llite/file.c | 21 +-
.../staging/lustre/lustre/llite/llite_internal.h | 4 +-
drivers/staging/lustre/lustre/llite/llite_lib.c | 3 +-
drivers/staging/lustre/lustre/llite/range_lock.c | 239 -----------
drivers/staging/lustre/lustre/llite/range_lock.h | 82 ----
include/linux/range_rwlock.h | 96 +++++
kernel/locking/Makefile | 2 +-
kernel/locking/locktorture.c | 299 +++++++++----
kernel/locking/range_rwlock.c | 462 +++++++++++++++++++++
lib/Kconfig | 14 -
lib/Kconfig.debug | 1 -
lib/Makefile | 2 +-
15 files changed, 792 insertions(+), 438 deletions(-)
delete mode 100644 drivers/staging/lustre/lustre/llite/range_lock.c
delete mode 100644 drivers/staging/lustre/lustre/llite/range_lock.h
create mode 100644 include/linux/range_rwlock.h
create mode 100644 kernel/locking/range_rwlock.c
--
2.6.6
Powered by blists - more mailing lists