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