REGRESSION BISECTED mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes
From: Doug Smythies
Date: Mon Feb 03 2025 - 19:56:24 EST
Hello,
Note: The CC list is a guess, and I am not on the two vger.kernel.org lists.
After observing a 30% reduction in the ebizzy benchmark performance, I bisected the kernel and got:
doug@s19:~/kernel/linux$ git bisect bad
d4148aeab412432bf928f311eca8a2ba52bb05df is the first bad commit
commit d4148aeab412432bf928f311eca8a2ba52bb05df
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Thu Oct 24 17:12:29 2024 +0200
mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes
As a double check I reverted the commit, on top of kernel 6.14-rc1.
I had to manually revert it, due to other changes since then.
The previous performance of the benchmark was restored.
I actually use the sleeping-ebizzy benchmark [1].
I use it for idle governor testing because it has yielded interesting results in the past.
And sweep over a range of sleep times. Example graphs attached.
Legend (regression average is over interval range from 400 to 3600 uSec):
teo611: kernel 6.11, teo idle governor. Reference.
teo614: kernel 6.14-rc1, teo idle governor. Regression 25.7%
teo612: kernel 6.12, teo idle governor. Regression 24.4%
teo613: kernel 6.13, teo idle governor. Regression 25.1%
teo614-revert: kernel 6.14-rc1, with this patch reverted, teo idle governor. No regression, 1.4%
menu: kernel 6.14-rc1, menu idle governor. Regression 26.4%
Example command:
./ebizzy -m -S 20 -t 128 -a 1 -i 400
My processor: Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz
Distro: Ubuntu 24.04, server, no desktop GUI.
[1] https://github.com/pratiksampat/sleeping-ebizzy
Doug Smythies
Attachment:
interval-sweep.png
Description: PNG image
Attachment:
relative-performance.png
Description: PNG image