On Thu, Oct 12, 2017 at 10:30:58AM +0100, Mel Gorman wrote: > During truncate each entry in a pagevec is checked to see if it is an > exceptional entry and if so, the shadow entry is cleaned up. This is > potentially expensive as multiple entries for a mapping locks/unlocks the > tree lock. This batches the operation such that any exceptional entries > removed from a pagevec only acquire the mapping tree lock once. The corner > case where this is more expensive is where there is only one exceptional > entry but this is unlikely due to temporal locality and how it affects > LRU ordering. Note that for truncations of small files created recently, > this patch should show no gain because it only batches the handling of > exceptional entries. > > sparsetruncate (large) > 4.14.0-rc4 4.14.0-rc4 > pickhelper-v1r1 batchshadow-v1r1 > Min Time 38.00 ( 0.00%) 27.00 ( 28.95%) > 1st-qrtle Time 40.00 ( 0.00%) 28.00 ( 30.00%) > 2nd-qrtle Time 44.00 ( 0.00%) 41.00 ( 6.82%) > 3rd-qrtle Time 146.00 ( 0.00%) 147.00 ( -0.68%) > Max-90% Time 153.00 ( 0.00%) 153.00 ( 0.00%) > Max-95% Time 155.00 ( 0.00%) 156.00 ( -0.65%) > Max-99% Time 181.00 ( 0.00%) 171.00 ( 5.52%) > Amean Time 93.04 ( 0.00%) 88.43 ( 4.96%) > Best99%Amean Time 92.08 ( 0.00%) 86.13 ( 6.46%) > Best95%Amean Time 89.19 ( 0.00%) 83.13 ( 6.80%) > Best90%Amean Time 85.60 ( 0.00%) 79.15 ( 7.53%) > Best75%Amean Time 72.95 ( 0.00%) 65.09 ( 10.78%) > Best50%Amean Time 39.86 ( 0.00%) 28.20 ( 29.25%) > Best25%Amean Time 39.44 ( 0.00%) 27.70 ( 29.77%) > > bonnie > 4.14.0-rc4 4.14.0-rc4 > pickhelper-v1r1 batchshadow-v1r1 > Hmean SeqCreate ops 71.92 ( 0.00%) 76.78 ( 6.76%) > Hmean SeqCreate read 42.42 ( 0.00%) 45.01 ( 6.10%) > Hmean SeqCreate del 26519.88 ( 0.00%) 27191.87 ( 2.53%) > Hmean RandCreate ops 71.92 ( 0.00%) 76.95 ( 7.00%) > Hmean RandCreate read 44.44 ( 0.00%) 49.23 ( 10.78%) > Hmean RandCreate del 24948.62 ( 0.00%) 24764.97 ( -0.74%) > > Truncation of a large number of files shows a substantial gain with 99% of files > being trruncated 6.46% faster. bonnie shows a modest gain of 2.53% > > Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>