lkml.org 
[lkml]   [2018]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/9 v3] locks: avoid thundering-herd wake-ups
On Wed, Oct 24, 2018 at 09:43:54AM +1100, NeilBrown wrote:
> This took longer that I had wanted, due to various reasons - sorry.
> And I'm now posting it in a merge window, which is not ideal. I don't
> expect it to be included in this merge window and I won't be at all
> impatient for review, but I didn't want to delay it further.

Yes, apologies, I've been looking forward to finding out how this turned
out, but I'd like to track down a bug or two and also review Olga's copy
patches.... Bug me if I haven't gotten to this in a week or two.

I'd also be really interested in any details of the performance
experiments that you could share.

--b.

>
> Testing found some problems, particularly the need to use
> locks_copy_lock in NFS. And there was a small thinko in there that
> effectively removed all the speed gains :-(
>
> But this version:
> - shows excellent scalability with lots of threads on lots of CPUs
> contending on a single file
> - avoids the problems that Bruce found
> - seems to work.
>
> Thanks,
> NeilBrown
>
>
> ---
>
> NeilBrown (9):
> fs/locks: rename some lists and pointers.
> fs/locks: split out __locks_wake_up_blocks().
> NFS: use locks_copy_lock() to copy locks.
> fs/locks: allow a lock request to block other requests.
> fs/locks: always delete_block after waiting.
> fs/locks: change all *_conflict() functions to return bool.
> fs/locks: create a tree of dependent requests.
> locks: merge posix_unblock_lock() and locks_delete_block()
> VFS: locks: remove unnecessary white space.
>
>
> fs/cifs/file.c | 4 -
> fs/lockd/svclock.c | 2
> fs/locks.c | 231 ++++++++++++++++++++++-----------------
> fs/nfs/nfs4proc.c | 6 +
> fs/nfsd/nfs4state.c | 6 +
> include/linux/fs.h | 11 +-
> include/trace/events/filelock.h | 16 +--
> 7 files changed, 153 insertions(+), 123 deletions(-)
>
> --
> Signature

\
 
 \ /
  Last update: 2018-10-25 18:05    [W:0.221 / U:9.760 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site