Re: [PATCH v3 0/2] Use blocked_lock_lock only to protect blocked_hash

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

 



On Fri,  6 Mar 2015 08:53:30 +0100
Daniel Wagner <daniel.wagner@xxxxxxxxxxxx> wrote:

> Hi,
> 
> Finally, I got a bigger machine and did a quick test round. I expected
> to see some improvements but the resutls do not show any real gain. So
> they are merely refactoring patches.
> 

Ok, in that case is there any point in merging these? I'm all for
breaking up global locks when it makes sense, but if you can't
demonstrate a clear benefit then I'm less inclined to take the churn.

Perhaps we should wait to see if a benefit emerges when/if you convert
the lglock code to use normal spinlocks (like Andi suggested)? That
seems like a rather simple conversion, and I don't think it's
"cheating" in any sense of the word.

I do however wonder why Nick used arch_spinlock_t there when he wrote
the lglock code instead of normal spinlocks. Was it simply memory usage
considerations or something else?

> 4x Intel(R) Xeon(R) CPU E5-4610 v2 @ 2.30GHz
> 
> 4.0.0-rc2/flock01.data
> # NumSamples = 3; Min = 47160.80; Max = 47555.42
> # Mean = 47294.254786; Variance = 34110.284932; SD = 184.689699; Median 47166.534982
> # each ∎ represents a count of 1
> 47160.8049 - 47200.2668 [     2]: ∎∎
> 47200.2668 - 47239.7288 [     0]: 
> 47239.7288 - 47279.1908 [     0]: 
> 47279.1908 - 47318.6527 [     0]: 
> 47318.6527 - 47358.1147 [     0]: 
> 47358.1147 - 47397.5767 [     0]: 
> 47397.5767 - 47437.0386 [     0]: 
> 47437.0386 - 47476.5006 [     0]: 
> 47476.5006 - 47515.9625 [     0]: 
> 47515.9625 - 47555.4245 [     1]: ∎
> 
> patched/flock01.data
> # NumSamples = 21; Min = 45877.22; Max = 50206.70
> # Mean = 47042.844720; Variance = 752166.966346; SD = 867.275600; Median 46939.811380
> # each ∎ represents a count of 1
> 45877.2235 - 46310.1709 [     2]: ∎∎
> 46310.1709 - 46743.1182 [     7]: ∎∎∎∎∎∎∎
> 46743.1182 - 47176.0655 [     3]: ∎∎∎
> 47176.0655 - 47609.0128 [     6]: ∎∎∎∎∎∎
> 47609.0128 - 48041.9602 [     2]: ∎∎
> 48041.9602 - 48474.9075 [     0]: 
> 48474.9075 - 48907.8548 [     0]: 
> 48907.8548 - 49340.8021 [     0]: 
> 49340.8021 - 49773.7495 [     0]: 
> 49773.7495 - 50206.6968 [     1]: ∎
> 
> 
> 4.0.0-rc2/flock02.data
> # NumSamples = 1786; Min = 1.86; Max = 3.13
> # Mean = 2.204980; Variance = 0.015900; SD = 0.126096; Median 2.177549
> # each ∎ represents a count of 13
>     1.8606 -     1.9880 [     5]: 
>     1.9880 -     2.1154 [   315]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     2.1154 -     2.2427 [  1040]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     2.2427 -     2.3701 [   272]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     2.3701 -     2.4975 [    75]: ∎∎∎∎∎
>     2.4975 -     2.6249 [    42]: ∎∎∎
>     2.6249 -     2.7523 [    28]: ∎∎
>     2.7523 -     2.8796 [     7]: 
>     2.8796 -     3.0070 [     1]: 
>     3.0070 -     3.1344 [     1]: 
> 
> patched/flock02.data
> # NumSamples = 4586; Min = 2.14; Max = 4.31
> # Mean = 2.619467; Variance = 0.043192; SD = 0.207828; Median 2.575378
> # each ∎ represents a count of 27
>     2.1385 -     2.3561 [   186]: ∎∎∎∎∎∎
>     2.3561 -     2.5737 [  2079]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     2.5737 -     2.7914 [  1642]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     2.7914 -     3.0090 [   355]: ∎∎∎∎∎∎∎∎∎∎∎∎∎
>     3.0090 -     3.2266 [   246]: ∎∎∎∎∎∎∎∎∎
>     3.2266 -     3.4442 [    66]: ∎∎
>     3.4442 -     3.6618 [     9]: 
>     3.6618 -     3.8795 [     1]: 
>     3.8795 -     4.0971 [     0]: 
>     4.0971 -     4.3147 [     2]: 
> 
> 
> 4.0.0-rc2/lease01.data
> # NumSamples = 12; Min = 1097.16; Max = 1255.06
> # Mean = 1184.550432; Variance = 1590.438052; SD = 39.880297; Median 1190.704582
> # each ∎ represents a count of 1
>  1097.1556 -  1112.9460 [     1]: ∎
>  1112.9460 -  1128.7363 [     0]: 
>  1128.7363 -  1144.5267 [     1]: ∎
>  1144.5267 -  1160.3170 [     0]: 
>  1160.3170 -  1176.1074 [     2]: ∎∎
>  1176.1074 -  1191.8977 [     2]: ∎∎
>  1191.8977 -  1207.6881 [     2]: ∎∎
>  1207.6881 -  1223.4784 [     3]: ∎∎∎
>  1223.4784 -  1239.2688 [     0]: 
>  1239.2688 -  1255.0591 [     1]: ∎
> 
> patched/lease01.data
> # NumSamples = 14; Min = 1055.00; Max = 1213.97
> # Mean = 1128.800723; Variance = 2225.466357; SD = 47.174849; Median 1114.384900
> # each ∎ represents a count of 1
>  1054.9959 -  1070.8932 [     2]: ∎∎
>  1070.8932 -  1086.7906 [     1]: ∎
>  1086.7906 -  1102.6879 [     1]: ∎
>  1102.6879 -  1118.5853 [     4]: ∎∎∎∎
>  1118.5853 -  1134.4826 [     0]: 
>  1134.4826 -  1150.3800 [     1]: ∎
>  1150.3800 -  1166.2773 [     2]: ∎∎
>  1166.2773 -  1182.1747 [     0]: 
>  1182.1747 -  1198.0720 [     2]: ∎∎
>  1198.0720 -  1213.9694 [     1]: ∎
> 
> 
> 4.0.0-rc2/lease02.data
> # NumSamples = 12; Min = 841.43; Max = 911.82
> # Mean = 888.716745; Variance = 317.221486; SD = 17.810713; Median 894.897002
> # each ∎ represents a count of 1
>   841.4339 -   848.4727 [     1]: ∎
>   848.4727 -   855.5115 [     0]: 
>   855.5115 -   862.5503 [     0]: 
>   862.5503 -   869.5891 [     0]: 
>   869.5891 -   876.6278 [     2]: ∎∎
>   876.6278 -   883.6666 [     1]: ∎
>   883.6666 -   890.7054 [     1]: ∎
>   890.7054 -   897.7442 [     3]: ∎∎∎
>   897.7442 -   904.7830 [     2]: ∎∎
>   904.7830 -   911.8218 [     2]: ∎∎
> 
> patched/lease02.data
> # NumSamples = 26; Min = 845.36; Max = 917.22
> # Mean = 886.178134; Variance = 320.861100; SD = 17.912596; Median 889.109363
> # each ∎ represents a count of 1
>   845.3620 -   852.5481 [     2]: ∎∎
>   852.5481 -   859.7343 [     1]: ∎
>   859.7343 -   866.9204 [     1]: ∎
>   866.9204 -   874.1065 [     2]: ∎∎
>   874.1065 -   881.2926 [     3]: ∎∎∎
>   881.2926 -   888.4788 [     2]: ∎∎
>   888.4788 -   895.6649 [     6]: ∎∎∎∎∎∎
>   895.6649 -   902.8510 [     4]: ∎∎∎∎
>   902.8510 -   910.0372 [     2]: ∎∎
>   910.0372 -   917.2233 [     3]: ∎∎∎
> 
> 
> 4.0.0-rc2/posix01.data
> # NumSamples = 5; Min = 46659.56; Max = 48332.45
> # Mean = 47237.374603; Variance = 337801.649607; SD = 581.207063; Median 47011.051338
> # each ∎ represents a count of 1
> 46659.5620 - 46826.8508 [     1]: ∎
> 46826.8508 - 46994.1396 [     1]: ∎
> 46994.1396 - 47161.4284 [     1]: ∎
> 47161.4284 - 47328.7172 [     1]: ∎
> 47328.7172 - 47496.0060 [     0]: 
> 47496.0060 - 47663.2948 [     0]: 
> 47663.2948 - 47830.5836 [     0]: 
> 47830.5836 - 47997.8724 [     0]: 
> 47997.8724 - 48165.1612 [     0]: 
> 48165.1612 - 48332.4500 [     1]: ∎
> 
> patched/posix01.data
> # NumSamples = 5; Min = 47274.54; Max = 47925.60
> # Mean = 47693.475091; Variance = 48592.645586; SD = 220.437396; Median 47762.516318
> # each ∎ represents a count of 1
> 47274.5400 - 47339.6458 [     1]: ∎
> 47339.6458 - 47404.7516 [     0]: 
> 47404.7516 - 47469.8574 [     0]: 
> 47469.8574 - 47534.9632 [     0]: 
> 47534.9632 - 47600.0690 [     0]: 
> 47600.0690 - 47665.1748 [     0]: 
> 47665.1748 - 47730.2806 [     1]: ∎
> 47730.2806 - 47795.3863 [     2]: ∎∎
> 47795.3863 - 47860.4921 [     0]: 
> 47860.4921 - 47925.5979 [     1]: ∎
> 
> 
> 4.0.0-rc2/posix02.data
> # NumSamples = 633; Min = 3.28; Max = 6.66
> # Mean = 3.742386; Variance = 0.087680; SD = 0.296108; Median 3.683302
> # each ∎ represents a count of 4
>     3.2834 -     3.6214 [   218]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     3.6214 -     3.9595 [   338]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     3.9595 -     4.2975 [    39]: ∎∎∎∎∎∎∎∎∎
>     4.2975 -     4.6356 [    23]: ∎∎∎∎∎
>     4.6356 -     4.9736 [    13]: ∎∎∎
>     4.9736 -     5.3117 [     1]: 
>     5.3117 -     5.6497 [     0]: 
>     5.6497 -     5.9878 [     0]: 
>     5.9878 -     6.3258 [     0]: 
>     6.3258 -     6.6638 [     1]: 
> 
> patched/posix02.data
> # NumSamples = 1266; Min = 3.52; Max = 8.13
> # Mean = 4.177377; Variance = 0.139937; SD = 0.374081; Median 4.091573
> # each ∎ represents a count of 10
>     3.5154 -     3.9770 [   343]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     3.9770 -     4.4386 [   760]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
>     4.4386 -     4.9002 [    87]: ∎∎∎∎∎∎∎∎
>     4.9002 -     5.3617 [    55]: ∎∎∎∎∎
>     5.3617 -     5.8233 [    17]: ∎
>     5.8233 -     6.2849 [     2]: 
>     6.2849 -     6.7464 [     0]: 
>     6.7464 -     7.2080 [     1]: 
>     7.2080 -     7.6696 [     0]: 
>     7.6696 -     8.1311 [     1]: 
> 
> 4.0.0-rc2/posix03.data
> # NumSamples = 6; Min = 37.77; Max = 41.77
> # Mean = 39.590607; Variance = 1.780789; SD = 1.334462; Median 39.619681
> # each ∎ represents a count of 1
>    37.7725 -    38.1719 [     1]: ∎
>    38.1719 -    38.5713 [     1]: ∎
>    38.5713 -    38.9706 [     0]: 
>    38.9706 -    39.3700 [     1]: ∎
>    39.3700 -    39.7694 [     0]: 
>    39.7694 -    40.1688 [     1]: ∎
>    40.1688 -    40.5682 [     1]: ∎
>    40.5682 -    40.9675 [     0]: 
>    40.9675 -    41.3669 [     0]: 
>    41.3669 -    41.7663 [     1]: ∎
> 
> patched/posix03.data
> # NumSamples = 15; Min = 37.45; Max = 44.72
> # Mean = 41.543496; Variance = 4.628029; SD = 2.151286; Median 41.293384
> # each ∎ represents a count of 1
>    37.4498 -    38.1767 [     1]: ∎
>    38.1767 -    38.9036 [     0]: 
>    38.9036 -    39.6304 [     1]: ∎
>    39.6304 -    40.3573 [     4]: ∎∎∎∎
>    40.3573 -    41.0842 [     1]: ∎
>    41.0842 -    41.8110 [     1]: ∎
>    41.8110 -    42.5379 [     1]: ∎
>    42.5379 -    43.2648 [     3]: ∎∎∎
>    43.2648 -    43.9916 [     0]: 
>    43.9916 -    44.7185 [     3]: ∎∎∎
> 
> v3:
>  - added missing !IS_OFDLCK
>  - removed unnecessary locking protecting fl_list by flock_lock_lglock
> 
> v2:
>  - added a few lockdep assertion
>  - dropped spinlock conversion
> 
> 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
> 
> https://lkml.org/lkml/2015/3/2/351
> 
> 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 (2):
>   locks: Split insert/delete block functions into flock/posix parts
>   locks: Use blocked_lock_lock only to protect blocked_hash
> 
>  fs/locks.c | 111 ++++++++++++++++++++++++++++++++++++++++---------------------
>  1 file changed, 74 insertions(+), 37 deletions(-)
> 


-- 
Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
--
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