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