Re: [mm/page_alloc] 7fef431be9: vm-scalability.throughput 87.8% improvement

From: Axel Rasmussen
Date: Fri Oct 23 2020 - 15:45:11 EST


On Fri, Oct 23, 2020 at 12:29 PM David Rientjes <rientjes@xxxxxxxxxx> wrote:
>
> On Wed, 21 Oct 2020, kernel test robot wrote:
>
> > Greeting,
> >
> > FYI, we noticed a 87.8% improvement of vm-scalability.throughput due to commit:
> >
> >
> > commit: 7fef431be9c9ac255838a9578331567b9dba4477 ("mm/page_alloc: place pages to tail in __free_pages_core()")
> > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master
> >
> >
> > in testcase: vm-scalability
> > on test machine: 192 threads Intel(R) Xeon(R) Platinum 9242 CPU @ 2.30GHz with 192G memory
> > with following parameters:
> >
> > runtime: 300s
> > size: 512G
> > test: anon-wx-rand-mt
> > cpufreq_governor: performance
> > ucode: 0x5002f01
> >
> > test-description: The motivation behind this suite is to exercise functions and regions of the mm/ of the Linux kernel which are of interest to us.
> > test-url: https://git.kernel.org/cgit/linux/kernel/git/wfg/vm-scalability.git/
> >
>
> I'm curious why we are not able to reproduce this improvement on Skylake
> and actually see a slight performance degradation, at least for
> 300s_128G_truncate_throughput.
>
> Axel Rasmussen <axelrasmussen@xxxxxxxxxx> can provide more details on our
> results.

Right, our results show a slight regression on a Skylake machine [1],
and a slight performance increase on a Rome machine [2]. For these
tests, I used Linus' v5.9 tag as a baseline, and then applied this
patchset onto that tag as a test kernel (the patches applied cleanly
besides one comment, I didn't have to do any code fixups). This is
running the same anon-wx-rand-mt test defined in the upstream
lkp-tests job file:
https://github.com/intel/lkp-tests/blob/master/jobs/vm-scalability.yaml

I'm happy to provide any other information that might be useful, like
the kconfig I used, or some logs from the test itself.

[1]:

[*] KERNELS
----- BASE KERNEL (A) -----
Arch: x86_64
CommitId: bbf5c979011a099af5dc76498918ed7df445635b
Describe: v5.9

----- TEST KERNEL (B) -----
Arch: x86_64
CommitId: 0eed18403b89d685c736fd41d83312bc18d1fc74
Describe: v5.9-5-g0eed18403b89


[*] TAGS
LABEL | VALUE
--------------------------------+-------------------
kernel_version | 5.9.0-smp-DEV
kernel_version_major | 5
kernel_version_minor | 9
machine_architecture | x86_64
machine_config_memory | 393216
machine_config_num_cores | 112
machine_config_num_cpus | 2
machine_config_num_phys_cores | 56
machine_platform_genus | skylake
test_name | vm-scalability



[*] METRICS
LABEL | COUNT | MIN |
MAX | MEAN | MEDIAN | STDDEV
| DIRECTION
---------------------------------------+-------+------------------+-----------------+-------------------+------------------+-----------------------+------------
300s_128G_truncate_throughput | | |
| | |
|
(A) bbf5c979011a | 5 | 3.7552221368e+10 |
3.881560468e+10 | 3.83416430016e+10 | 3.8676061688e+10 |
5.123384177998683e+08 |
(B) 0eed18403b89 | 5 | 3.20600355e+10 |
3.862106519e+10 | 3.6402760077e+10 | 3.7563289678e+10 |
2.334955983229862e+09 |
| | -14.63% |
-0.50% | -5.06% | -2.88% | +355.74%
| + is good
300s_512G_anon_wx_rand_mt_throughput | | |
| | |
|
(A) bbf5c979011a | 5 | 8.127738e+06 |
8.850316e+06 | 8.4767952e+06 | 8.49689e+06 |
238015.6101665603 |
(B) 0eed18403b89 | 5 | 7.997802e+06 |
8.650092e+06 | 8.3851078e+06 | 8.501602e+06 |
232913.70310602157 |
| | -1.60% |
-2.26% | -1.08% | +0.06% | -2.14%
| + is good

[2]:

[*] KERNELS
----- BASE KERNEL (A) -----
Arch: x86_64
CommitId: bbf5c979011a099af5dc76498918ed7df445635b
Describe: v5.9

----- TEST KERNEL (B) -----
Arch: x86_64
CommitId: 0eed18403b89d685c736fd41d83312bc18d1fc74
Describe: v5.9-5-g0eed18403b89


[*] TAGS
LABEL | VALUE
--------------------------------+-------------------
kernel_version | 5.9.0-smp-DEV
kernel_version_major | 5
kernel_version_minor | 9
machine_architecture | x86_64
machine_config_memory | 1048576
machine_config_num_cores | 256
machine_config_num_cpus | 2
machine_config_num_phys_cores | 128
machine_platform_genus | rome
test_name | vm-scalability



[*] METRICS
LABEL | COUNT | MIN |
MAX | MEAN | MEDIAN | STDDEV
| DIRECTION
---------------------------------------+-------+------------------+------------------+-------------------+------------------+------------------------+------------
300s_128G_truncate_throughput | | |
| | |
|
(A) bbf5c979011a | 5 | 3.4145093376e+10 |
3.7176031393e+10 | 3.55926734966e+10 | 3.5521843244e+10 |
1.0127887857614994e+09 |
(B) 0eed18403b89 | 5 | 3.4908582472e+10 |
3.6828513899e+10 | 3.56578033004e+10 | 3.5495102793e+10 |
6.518510126266636e+08 |
| | +2.24% |
-0.93% | +0.18% | -0.08% | -35.64%
| + is good
300s_512G_anon_wx_rand_mt_throughput | | |
| | |
|
(A) bbf5c979011a | 5 | 5.041427e+06 |
5.27816e+06 | 5.1413284e+06 | 5.128602e+06 |
93566.28579269352 |
(B) 0eed18403b89 | 5 | 5.323419e+06 |
5.513787e+06 | 5.451148e+06 | 5.457595e+06 |
68242.81926767099 |
| | +5.59% |
+4.46% | +6.03% | +6.41% | -27.06%
| + is good