7721 Poor nfs4_frlock() performance for blocking locks

Review Request #316 — Created Jan. 4, 2017 and updated

marcel
illumos-gate
master
7721
064d7e7...
general

webrev: http://cr.illumos.org/~webrev/marcel/il-nfs4_frlock/
git pull git://github.com/mtelka/illumos-gate.git il-nfs4_frlock

The nfs4_frlock() implementation of the blocking lock requests does not scale in a case there are many concurrent processes trying to lock one single file.

I ran a performance test described in detail at
<https://www.illumos.org/issues/7601#note-3>.  The test results are at
<https://www.illumos.org/issues/7721#note-4>.

For functional and regression tests, I ran many different locking scenarios to
make sure the new nfs4_frlock() implementation works as designed and expected
and there is no regression introduced.  During the testing I reproduced bug
#3629.  The bug was updated with the steps how to reproduce it at
<https://www.illumos.org/issues/3629#note-9>.
  • 0
  • 0
  • 2
  • 0
  • 2
Description From Last Updated
marcel
marcel
marcel
sensille
  1. 
      
  2. usr/src/uts/common/fs/nfs/nfs4_vnops.c (Diff revision 2)
     
     
    whitespace
    1. Do you suggest to replace a space between int and nfs4frlock_get_sysid by a tab?
  3. usr/src/uts/common/fs/nfs/nfs4_vnops.c (Diff revision 2)
     
     

    Can't the vnode change between our call to reclock and the OTW call?

  4. usr/src/uts/common/fs/nfs/nfs4_vnops.c (Diff revision 2)
     
     

    Shouldn't we not unregister the local lock in case the remote unlock fails?

  5. 
      
marcel
marcel
Review request changed

Change Summary:

Fixed compilation.

Commit:

-17afe43ec282db696cba10e9a831232b48aa748d
+064d7e7875a5313b93826d1307976da4cf322b5c

Diff:

Revision 4 (+310 -282)

Show changes

sensille
  1. Ship It!
  2. 
      
kmays
  1. Ship It!
  2. 
      
Loading...