Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1641416
| From | Davidlohr Bueso <dave@stgolabs.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v3 -tip 0/6] locking: Introduce range reader/writer lock |
| Date | 2017-05-15 11:10 +0200 |
| Message-ID | <tHkaS-67d-3@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
Changes from v2 (https://lwn.net/Articles/719182/):
- Renamed to range_lock
- Added lockdep support with rwsem semantics
- Fix range_lock_set_reader() being overwritten
- Improved documentation wrt ordering and fairness as
well as overall description (less implementation details).
Changes from v1 (https://lwn.net/Articles/716383/), all in patch 2:
- s/EXPORT_SYMBOL/EXPORT_SYMBOL_GPL
- Made the tree walks a foreach loop, instead of while.
- Fixed signal_pending() lockup issue for unaccounted waiters.
- Fixed initialization macros.
- Check condition before signal_pending in loop.
- Make building the interval-tree unconditionally a separate patch.
- More/better documentation.
- Added jack's reviewed-by.
- Renamed inf to full.
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 2.
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 tip v4.12-rc1
[1] https://lkml.org/lkml/2013/1/31/483
Thanks!
Davidlohr Bueso (6):
interval-tree: Build unconditionally
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 | 16 +-
.../staging/lustre/lustre/llite/llite_internal.h | 2 +-
drivers/staging/lustre/lustre/llite/range_lock.c | 239 -------
drivers/staging/lustre/lustre/llite/range_lock.h | 82 ---
include/linux/lockdep.h | 33 +
include/linux/range_lock.h | 181 ++++++
kernel/locking/Makefile | 2 +-
kernel/locking/locktorture.c | 299 ++++++---
kernel/locking/range_lock.c | 690 +++++++++++++++++++++
lib/Kconfig | 14 -
lib/Kconfig.debug | 1 -
lib/Makefile | 3 +-
15 files changed, 1133 insertions(+), 434 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_lock.h
create mode 100644 kernel/locking/range_lock.c
--
2.12.0
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v3 -tip 0/6] locking: Introduce range reader/writer lock Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
[PATCH 5/6] locking/locktorture: Support range rwlocks Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
[PATCH 1/6] interval-tree: Build unconditionally Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
[PATCH 2/6] locking: Introduce range reader/writer lock Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Peter Zijlstra <peterz@infradead.org> - 2017-05-15 15:10 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Davidlohr Bueso <dave@stgolabs.net> - 2017-05-17 00:20 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Peter Zijlstra <peterz@infradead.org> - 2017-05-15 15:50 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Davidlohr Bueso <dave@stgolabs.net> - 2017-05-16 23:20 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Peter Zijlstra <peterz@infradead.org> - 2017-05-15 16:00 +0200
Re: [PATCH 2/6] locking: Introduce range reader/writer lock Laurent Dufour <ldufour@linux.vnet.ibm.com> - 2017-05-23 17:20 +0200
[PATCH 3/6] locking/locktorture: Fix rwsem reader_delay Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
[PATCH 6/6] staging/lustre: Use generic range rwlock Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
Re: [PATCH 6/6] staging/lustre: Use generic range rwlock "Dilger, Andreas" <andreas.dilger@intel.com> - 2017-05-18 10:40 +0200
[PATCH 4/6] locking/locktorture: Fix num reader/writer corner cases Davidlohr Bueso <dave@stgolabs.net> - 2017-05-15 11:10 +0200
Re: [PATCH v3 -tip 0/6] locking: Introduce range reader/writer lock Christoph Hellwig <hch@infradead.org> - 2017-05-15 18:20 +0200
csiph-web