[RFC v1 0/5] fs/locks: Use plain percpu spinlocks instead of lglock to protect file_lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jeff,

Thanks for the great feedback on version 0. I haven't address all your
points yet but will do. Just wanted to post a more readeable version.

Still missing things and TODOs (FIXME!!):
 - adding lockdep assertions
 - more tests and benchmarks on big machines

v1:
 - rebased on v3.19-8975-g3d88348
 - splittet into smaller pieces
 - fixed a wrong usage of __locks_insert/delete_block() and it's posix version
 - added seqfile helpers to avoid ugly open coded version


Original cover letter:

I am looking at how to get rid of lglock. Reason being -rt is not too
happy with that lock, especially that it uses arch_spinlock_t and
therefore it is not changed into a mutex on -rt. I know no change is
accepted only fixing something for -rt alone. So here my attempt to
make things faster for mainline and fixing -rt.

There are two users of lglock at this point. fs/locks.c and
kernel/stop_machine.c

I presume the fs/locks is the more interesting one in respect of
performance. Let's have a look at that one first.

The lglock version of file_lock_lock is used in combination of
blocked_lock_lock to protect file_lock's fl_link, fl_block, fl_next,
blocked_hash and the percpu file_lock_list.

The plan is to reorganize the usage of the locks and what they protect
so that the usage of the global blocked_lock_lock is reduced.

Whenever we insert a new lock we are going to grab besides the i_lock
also the corresponding percpu file_lock_lock. The global
blocked_lock_lock is only used when blocked_hash is involved.

file_lock_list exists to be being able to produce the content of
/proc/locks. For listing the all locks it seems a bit excessive to
grab all locks at once. We should be okay just grabbing the
corresponding lock when iterating over the percpu file_lock_list.

file_lock_lock protects now file_lock_list and fl_link, fl_block and
fl_next allone. That means we need to define which file_lock_lock is
used for all waiters. Luckely, fl_link_cpu can be reused for fl_block
and fl_next.

I haven't found a good way around for the open coded seq_ops
(locks_start, locks_next, locks_stop). Maybe someone has good idea how
to handle with the locks.

For performance testing I used
git://git.samba.org/jlayton/lockperf.git and for correctness
https://github.com/linux-test-project/ltp/tree/master/testcases/network/nfsv4/locks
In case you are missing the posix03 results, my machine doesn't like
it too much. The load brings it to its knees due to the very high
load. Propably I need different parameters.

I didn't run excessive tests so far, because I am waiting for getting
access on a bigger box compared to my small i7-4850HQ system. I hope
to see larger improvements when there are more cores involved.

Anyway here are some results based on 3.19.

Explanation:
  3.19: means unpatched kernel
  3.19.0+: patched version
  -with-reader.data: 'while true; do cat /proc/locks; done > /dev/null'


3.19/flock01.data
# NumSamples = 117; Min = 853.77; Max = 1425.62
# Mean = 1387.965754; Variance = 5512.265923; SD = 74.244636; Median 1408.578537
# each ∎ represents a count of 1
  853.7746 -   910.9590 [     1]: ∎
  910.9590 -   968.1435 [     0]: 
  968.1435 -  1025.3280 [     1]: ∎
 1025.3280 -  1082.5124 [     0]: 
 1082.5124 -  1139.6969 [     0]: 
 1139.6969 -  1196.8813 [     2]: ∎∎
 1196.8813 -  1254.0658 [     1]: ∎
 1254.0658 -  1311.2502 [     1]: ∎
 1311.2502 -  1368.4347 [    11]: ∎∎∎∎∎∎∎∎∎∎∎
 1368.4347 -  1425.6192 [   100]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19.0+/flock01.data
# NumSamples = 124; Min = 1415.92; Max = 1459.39
# Mean = 1430.258322; Variance = 36.425769; SD = 6.035376; Median 1429.462718
# each ∎ represents a count of 1
 1415.9192 -  1420.2667 [     2]: ∎∎
 1420.2667 -  1424.6142 [    19]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1424.6142 -  1428.9617 [    36]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1428.9617 -  1433.3092 [    32]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1433.3092 -  1437.6567 [    22]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1437.6567 -  1442.0042 [    10]: ∎∎∎∎∎∎∎∎∎∎
 1442.0042 -  1446.3517 [     2]: ∎∎
 1446.3517 -  1450.6992 [     0]: 
 1450.6992 -  1455.0467 [     0]: 
 1455.0467 -  1459.3942 [     1]: ∎

3.19/flock01-with-reader.data
# NumSamples = 97; Min = 1342.97; Max = 1423.54
# Mean = 1410.695019; Variance = 149.115584; SD = 12.211289; Median 1413.260338
# each ∎ represents a count of 1
 1342.9675 -  1351.0245 [     1]: ∎
 1351.0245 -  1359.0815 [     0]: 
 1359.0815 -  1367.1384 [     1]: ∎
 1367.1384 -  1375.1954 [     1]: ∎
 1375.1954 -  1383.2524 [     1]: ∎
 1383.2524 -  1391.3093 [     4]: ∎∎∎∎
 1391.3093 -  1399.3663 [     0]: 
 1399.3663 -  1407.4233 [    10]: ∎∎∎∎∎∎∎∎∎∎
 1407.4233 -  1415.4803 [    45]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1415.4803 -  1423.5372 [    34]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19.0+/flock01-with-reader.data
# NumSamples = 104; Min = 1331.30; Max = 1349.97
# Mean = 1340.767603; Variance = 16.434314; SD = 4.053926; Median 1340.243416
# each ∎ represents a count of 1
 1331.3015 -  1333.1680 [     2]: ∎∎
 1333.1680 -  1335.0345 [     6]: ∎∎∎∎∎∎
 1335.0345 -  1336.9011 [     9]: ∎∎∎∎∎∎∎∎∎
 1336.9011 -  1338.7676 [    17]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1338.7676 -  1340.6341 [    21]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1340.6341 -  1342.5006 [    11]: ∎∎∎∎∎∎∎∎∎∎∎
 1342.5006 -  1344.3671 [    17]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1344.3671 -  1346.2336 [    10]: ∎∎∎∎∎∎∎∎∎∎
 1346.2336 -  1348.1001 [     4]: ∎∎∎∎
 1348.1001 -  1349.9666 [     7]: ∎∎∎∎∎∎∎

3.19/flock02.data
# NumSamples = 2726; Min = 5.33; Max = 65.40
# Mean = 13.524542; Variance = 15.739906; SD = 3.967355; Median 12.857334
# each ∎ represents a count of 32
    5.3260 -    11.3331 [   167]: ∎∎∎∎∎
   11.3331 -    17.3402 [  2435]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   17.3402 -    23.3472 [    90]: ∎∎
   23.3472 -    29.3543 [     4]: 
   29.3543 -    35.3614 [     6]: 
   35.3614 -    41.3684 [     6]: 
   41.3684 -    47.3755 [     1]: 
   47.3755 -    53.3826 [    11]: 
   53.3826 -    59.3897 [     3]: 
   59.3897 -    65.3967 [     3]: 

3.19.0+/flock02.data
# NumSamples = 2226; Min = 9.69; Max = 45.76
# Mean = 13.140839; Variance = 2.468176; SD = 1.571043; Median 12.936904
# each ∎ represents a count of 18
    9.6911 -    13.2975 [  1366]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   13.2975 -    16.9040 [   806]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   16.9040 -    20.5104 [    51]: ∎∎
   20.5104 -    24.1168 [     0]: 
   24.1168 -    27.7232 [     0]: 
   27.7232 -    31.3297 [     1]: 
   31.3297 -    34.9361 [     1]: 
   34.9361 -    38.5425 [     0]: 
   38.5425 -    42.1489 [     0]: 
   42.1489 -    45.7554 [     1]: 

3.19/flock02-with-reader.data
# NumSamples = 2719; Min = 2.59; Max = 67.27
# Mean = 14.488231; Variance = 8.927716; SD = 2.987928; Median 14.103543
# each ∎ represents a count of 30
    2.5949 -     9.0619 [     2]: 
    9.0619 -    15.5289 [  2251]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   15.5289 -    21.9960 [   441]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   21.9960 -    28.4630 [    15]: 
   28.4630 -    34.9300 [     0]: 
   34.9300 -    41.3970 [     1]: 
   41.3970 -    47.8640 [     4]: 
   47.8640 -    54.3310 [     1]: 
   54.3310 -    60.7980 [     3]: 
   60.7980 -    67.2650 [     1]: 

3.19.0+/flock02-with-reader.data
# NumSamples = 2539; Min = 9.95; Max = 23.41
# Mean = 13.993072; Variance = 2.729366; SD = 1.652079; Median 13.800728
# each ∎ represents a count of 13
    9.9482 -    11.2940 [    47]: ∎∎∎
   11.2940 -    12.6398 [   399]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   12.6398 -    13.9855 [  1016]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   13.9855 -    15.3313 [   732]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   15.3313 -    16.6771 [   190]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   16.6771 -    18.0229 [    70]: ∎∎∎∎∎
   18.0229 -    19.3687 [    41]: ∎∎∎
   19.3687 -    20.7145 [    28]: ∎∎
   20.7145 -    22.0602 [    13]: ∎
   22.0602 -    23.4060 [     3]: 

3.19/lease01.data
# NumSamples = 65; Min = 152.59; Max = 175.66
# Mean = 167.052274; Variance = 23.396889; SD = 4.837033; Median 166.765499
# each ∎ represents a count of 1
  152.5900 -   154.8972 [     1]: ∎
  154.8972 -   157.2045 [     1]: ∎
  157.2045 -   159.5117 [     4]: ∎∎∎∎
  159.5117 -   161.8190 [     4]: ∎∎∎∎
  161.8190 -   164.1262 [     5]: ∎∎∎∎∎
  164.1262 -   166.4335 [    15]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  166.4335 -   168.7407 [    10]: ∎∎∎∎∎∎∎∎∎∎
  168.7407 -   171.0480 [    12]: ∎∎∎∎∎∎∎∎∎∎∎∎
  171.0480 -   173.3552 [     6]: ∎∎∎∎∎∎
  173.3552 -   175.6625 [     7]: ∎∎∎∎∎∎∎

3.19.0+/lease01.data
# NumSamples = 602; Min = 145.21; Max = 181.15
# Mean = 167.448570; Variance = 32.250924; SD = 5.678990; Median 167.925163
# each ∎ represents a count of 2
  145.2090 -   148.8032 [     4]: ∎∎
  148.8032 -   152.3974 [     8]: ∎∎∎∎
  152.3974 -   155.9916 [    14]: ∎∎∎∎∎∎∎
  155.9916 -   159.5858 [    31]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  159.5858 -   163.1800 [    44]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  163.1800 -   166.7742 [   145]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  166.7742 -   170.3684 [   173]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  170.3684 -   173.9626 [   126]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  173.9626 -   177.5568 [    41]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  177.5568 -   181.1510 [    16]: ∎∎∎∎∎∎∎∎

3.19/lease01-with-reader.data
# NumSamples = 76; Min = 137.96; Max = 179.57
# Mean = 163.911898; Variance = 69.281798; SD = 8.323569; Median 164.218926
# each ∎ represents a count of 1
  137.9570 -   142.1184 [     1]: ∎
  142.1184 -   146.2799 [     0]: 
  146.2799 -   150.4414 [     6]: ∎∎∎∎∎∎
  150.4414 -   154.6028 [     2]: ∎∎
  154.6028 -   158.7643 [    11]: ∎∎∎∎∎∎∎∎∎∎∎
  158.7643 -   162.9257 [    15]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  162.9257 -   167.0872 [    10]: ∎∎∎∎∎∎∎∎∎∎
  167.0872 -   171.2487 [    19]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  171.2487 -   175.4101 [     7]: ∎∎∎∎∎∎∎
  175.4101 -   179.5716 [     5]: ∎∎∎∎∎

3.19.0+/lease01-with-reader.data
# NumSamples = 216; Min = 144.76; Max = 176.76
# Mean = 160.680593; Variance = 44.032938; SD = 6.635732; Median 160.827124
# each ∎ represents a count of 1
  144.7606 -   147.9610 [     8]: ∎∎∎∎∎∎∎∎
  147.9610 -   151.1614 [    16]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  151.1614 -   154.3618 [    11]: ∎∎∎∎∎∎∎∎∎∎∎
  154.3618 -   157.5622 [    30]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  157.5622 -   160.7626 [    42]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  160.7626 -   163.9630 [    41]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  163.9630 -   167.1634 [    32]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  167.1634 -   170.3638 [    24]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  170.3638 -   173.5642 [     6]: ∎∎∎∎∎∎
  173.5642 -   176.7646 [     6]: ∎∎∎∎∎∎

3.19/lease02.data
# NumSamples = 306; Min = 43.22; Max = 64.80
# Mean = 59.318955; Variance = 9.779672; SD = 3.127247; Median 59.907252
# each ∎ represents a count of 1
   43.2247 -    45.3825 [     1]: ∎
   45.3825 -    47.5403 [     1]: ∎
   47.5403 -    49.6981 [     1]: ∎
   49.6981 -    51.8560 [     8]: ∎∎∎∎∎∎∎∎
   51.8560 -    54.0138 [    10]: ∎∎∎∎∎∎∎∎∎∎
   54.0138 -    56.1716 [    20]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   56.1716 -    58.3294 [    43]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   58.3294 -    60.4872 [    93]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   60.4872 -    62.6450 [   104]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   62.6450 -    64.8028 [    25]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19.0+/lease02.data
# NumSamples = 527; Min = 50.49; Max = 64.11
# Mean = 59.436887; Variance = 4.335719; SD = 2.082239; Median 59.632461
# each ∎ represents a count of 1
   50.4855 -    51.8483 [     2]: ∎∎
   51.8483 -    53.2112 [     1]: ∎
   53.2112 -    54.5741 [     5]: ∎∎∎∎∎
   54.5741 -    55.9369 [    26]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   55.9369 -    57.2998 [    47]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   57.2998 -    58.6627 [    92]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   58.6627 -    60.0255 [   124]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   60.0255 -    61.3884 [   127]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   61.3884 -    62.7513 [    89]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   62.7513 -    64.1141 [    14]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19/lease02-with-reader.data
# NumSamples = 287; Min = 43.36; Max = 61.39
# Mean = 56.435938; Variance = 9.470188; SD = 3.077367; Median 57.268150
# each ∎ represents a count of 1
   43.3599 -    45.1627 [     1]: ∎
   45.1627 -    46.9655 [     4]: ∎∎∎∎
   46.9655 -    48.7684 [     5]: ∎∎∎∎∎
   48.7684 -    50.5712 [     8]: ∎∎∎∎∎∎∎∎
   50.5712 -    52.3741 [    10]: ∎∎∎∎∎∎∎∎∎∎
   52.3741 -    54.1769 [    25]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   54.1769 -    55.9797 [    37]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   55.9797 -    57.7826 [    93]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   57.7826 -    59.5854 [    74]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   59.5854 -    61.3883 [    30]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19.0+/lease02-with-reader.data
# NumSamples = 919; Min = 46.59; Max = 62.16
# Mean = 56.053034; Variance = 5.565033; SD = 2.359032; Median 56.239479
# each ∎ represents a count of 3
   46.5883 -    48.1459 [     4]: ∎
   48.1459 -    49.7034 [     7]: ∎∎
   49.7034 -    51.2609 [    14]: ∎∎∎∎
   51.2609 -    52.8184 [    56]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   52.8184 -    54.3760 [   120]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   54.3760 -    55.9335 [   220]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   55.9335 -    57.4910 [   260]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   57.4910 -    59.0486 [   152]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   59.0486 -    60.6061 [    70]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   60.6061 -    62.1636 [    16]: ∎∎∎∎∎

3.19/posix01.data
# NumSamples = 62; Min = 1132.49; Max = 1458.17
# Mean = 1336.939168; Variance = 6234.581717; SD = 78.959368; Median 1338.021800
# each ∎ represents a count of 1
 1132.4925 -  1165.0600 [     2]: ∎∎
 1165.0600 -  1197.6274 [     2]: ∎∎
 1197.6274 -  1230.1949 [     4]: ∎∎∎∎
 1230.1949 -  1262.7623 [     4]: ∎∎∎∎
 1262.7623 -  1295.3297 [     4]: ∎∎∎∎
 1295.3297 -  1327.8972 [     7]: ∎∎∎∎∎∎∎
 1327.8972 -  1360.4646 [    13]: ∎∎∎∎∎∎∎∎∎∎∎∎∎
 1360.4646 -  1393.0321 [    13]: ∎∎∎∎∎∎∎∎∎∎∎∎∎
 1393.0321 -  1425.5995 [     3]: ∎∎∎
 1425.5995 -  1458.1670 [    10]: ∎∎∎∎∎∎∎∎∎∎

3.19.0+/posix01.data
# NumSamples = 506; Min = 1309.62; Max = 1500.85
# Mean = 1453.666440; Variance = 619.986362; SD = 24.899525; Median 1457.756685
# each ∎ represents a count of 2
 1309.6159 -  1328.7394 [     1]: 
 1328.7394 -  1347.8630 [     0]: 
 1347.8630 -  1366.9866 [     2]: ∎
 1366.9866 -  1386.1102 [     3]: ∎
 1386.1102 -  1405.2338 [    15]: ∎∎∎∎∎∎∎
 1405.2338 -  1424.3574 [    42]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1424.3574 -  1443.4810 [    77]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1443.4810 -  1462.6046 [   157]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1462.6046 -  1481.7282 [   163]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1481.7282 -  1500.8518 [    46]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19/posix01-with-reader.data
# NumSamples = 45; Min = 1234.92; Max = 1450.74
# Mean = 1409.432073; Variance = 1146.435306; SD = 33.859051; Median 1416.858889
# each ∎ represents a count of 1
 1234.9186 -  1256.5012 [     1]: ∎
 1256.5012 -  1278.0838 [     0]: 
 1278.0838 -  1299.6664 [     0]: 
 1299.6664 -  1321.2490 [     0]: 
 1321.2490 -  1342.8316 [     0]: 
 1342.8316 -  1364.4142 [     1]: ∎
 1364.4142 -  1385.9968 [     4]: ∎∎∎∎
 1385.9968 -  1407.5794 [    12]: ∎∎∎∎∎∎∎∎∎∎∎∎
 1407.5794 -  1429.1620 [    18]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1429.1620 -  1450.7446 [     9]: ∎∎∎∎∎∎∎∎∎

3.19.0+/posix01-with-reader.data
# NumSamples = 117; Min = 1301.80; Max = 1411.39
# Mean = 1379.963065; Variance = 519.145334; SD = 22.784761; Median 1383.988035
# each ∎ represents a count of 1
 1301.7995 -  1312.7584 [     3]: ∎∎∎
 1312.7584 -  1323.7172 [     2]: ∎∎
 1323.7172 -  1334.6761 [     3]: ∎∎∎
 1334.6761 -  1345.6350 [     4]: ∎∎∎∎
 1345.6350 -  1356.5938 [     0]: 
 1356.5938 -  1367.5527 [    10]: ∎∎∎∎∎∎∎∎∎∎
 1367.5527 -  1378.5115 [    19]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1378.5115 -  1389.4704 [    28]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1389.4704 -  1400.4292 [    35]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1400.4292 -  1411.3881 [    13]: ∎∎∎∎∎∎∎∎∎∎∎∎∎

3.19/posix02.data
# NumSamples = 458; Min = 18.61; Max = 75.56
# Mean = 23.772732; Variance = 18.547870; SD = 4.306724; Median 23.473403
# each ∎ represents a count of 3
   18.6111 -    24.3065 [   297]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   24.3065 -    30.0018 [   158]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   30.0018 -    35.6972 [     0]: 
   35.6972 -    41.3926 [     0]: 
   41.3926 -    47.0879 [     0]: 
   47.0879 -    52.7833 [     0]: 
   52.7833 -    58.4787 [     0]: 
   58.4787 -    64.1740 [     0]: 
   64.1740 -    69.8694 [     1]: 
   69.8694 -    75.5648 [     2]: 

3.19.0+/posix02.data
# NumSamples = 2340; Min = 15.62; Max = 79.66
# Mean = 22.538333; Variance = 12.248801; SD = 3.499829; Median 22.106778
# each ∎ represents a count of 15
   15.6169 -    22.0211 [  1167]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   22.0211 -    28.4252 [  1101]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   28.4252 -    34.8294 [    60]: ∎∎∎∎
   34.8294 -    41.2335 [     3]: 
   41.2335 -    47.6377 [     1]: 
   47.6377 -    54.0418 [     0]: 
   54.0418 -    60.4459 [     1]: 
   60.4459 -    66.8501 [     2]: 
   66.8501 -    73.2542 [     3]: 
   73.2542 -    79.6584 [     2]: 

3.19/posix02-with-reader.data
# NumSamples = 387; Min = 19.21; Max = 29.79
# Mean = 25.041294; Variance = 3.455306; SD = 1.858845; Median 25.111446
# each ∎ represents a count of 1
   19.2050 -    20.2634 [     2]: ∎∎
   20.2634 -    21.3218 [    10]: ∎∎∎∎∎∎∎∎∎∎
   21.3218 -    22.3802 [    16]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   22.3802 -    23.4386 [    44]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   23.4386 -    24.4970 [    84]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   24.4970 -    25.5554 [    74]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   25.5554 -    26.6138 [    80]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   26.6138 -    27.6722 [    55]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   27.6722 -    28.7306 [    13]: ∎∎∎∎∎∎∎∎∎∎∎∎∎
   28.7306 -    29.7890 [     9]: ∎∎∎∎∎∎∎∎∎

3.19.0+/posix02-with-reader.data
# NumSamples = 1689; Min = 16.97; Max = 85.43
# Mean = 23.973230; Variance = 21.079021; SD = 4.591189; Median 23.419958
# each ∎ represents a count of 13
   16.9744 -    23.8198 [   993]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   23.8198 -    30.6652 [   670]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
   30.6652 -    37.5106 [     9]: 
   37.5106 -    44.3560 [     3]: 
   44.3560 -    51.2015 [     2]: 
   51.2015 -    58.0469 [     2]: 
   58.0469 -    64.8923 [     3]: 
   64.8923 -    71.7377 [     3]: 
   71.7377 -    78.5831 [     1]: 
   78.5831 -    85.4285 [     3]:


Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Cc: "J. Bruce Fields" <bfields@xxxxxxxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx


Daniel Wagner (5):
  locks: Remove unnecessary IS_POSIX test
  locks: Split insert/delete block functions into flock/posix parts
  seq_file: Add percpu seq_hlist helpers with locking iterators
  locks: Use percpu spinlocks to protect file_lock_list
  locks: Use blocked_lock_lock only to protect blocked_hash

 fs/locks.c               | 148 ++++++++++++++++++++++++++++++-----------------
 fs/seq_file.c            |  83 ++++++++++++++++++++++++++
 include/linux/seq_file.h |  13 +++++
 3 files changed, 190 insertions(+), 54 deletions(-)

-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux