aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/scripts/python/gecko.py
diff options
context:
space:
mode:
authorBaokun Li <[email protected]>2025-07-14 13:03:19 +0000
committerTheodore Ts'o <[email protected]>2025-07-25 13:14:17 +0000
commite7f101a8088770e8f3bb089f13652b9b0fd22b06 (patch)
tree087509e8e147a916985800b74fe3b0dacfc5a2d2 /tools/perf/scripts/python/gecko.py
parentext4: convert sbi->s_mb_free_pending to atomic_t (diff)
downloadkernel-e7f101a8088770e8f3bb089f13652b9b0fd22b06.tar.gz
kernel-e7f101a8088770e8f3bb089f13652b9b0fd22b06.zip
ext4: merge freed extent with existing extents before insertion
Attempt to merge ext4_free_data with already inserted free extents prior to adding new ones. This strategy drastically cuts down the number of times locks are held. For example, if prev, new, and next extents are all mergeable, the existing code (before this patch) requires acquiring the s_md_lock three times: prev merge into new and free prev // hold lock next merge into new and free next // hold lock insert new // hold lock After the patch, it only needs to be acquired once: new merge into next and free new // no lock next merge into prev and free next // hold lock Performance test data follows: Test: Running will-it-scale/fallocate2 on CPU-bound containers. Observation: Average fallocate operations per container per second. |CPU: Kunpeng 920 | P80 | P1 | |Memory: 512GB |------------------------|-------------------------| |960GB SSD (0.5GB/s)| base | patched | base | patched | |-------------------|-------|----------------|--------|----------------| |mb_optimize_scan=0 | 20043 | 20097 (+0.2%) | 314331 | 316141 (+0.5%) | |mb_optimize_scan=1 | 7290 | 13318 (+87.4%) | 324226 | 325273 (+0.3%) | |CPU: AMD 9654 * 2 | P96 | P1 | |Memory: 1536GB |------------------------|-------------------------| |960GB SSD (1GB/s) | base | patched | base | patched | |-------------------|-------|----------------|--------|----------------| |mb_optimize_scan=0 | 54999 | 53603 (-2.5%) | 214380 | 214243 (-0.06%)| |mb_optimize_scan=1 | 13497 | 20887 (+54.6%) | 216276 | 213632 (-1.2%) | Signed-off-by: Baokun Li <[email protected]> Reviewed-by: Jan Kara <[email protected]> Reviewed-by: Zhang Yi <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Theodore Ts'o <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/gecko.py')
0 files changed, 0 insertions, 0 deletions