[SRU][N][PATCH 0/2] Performance degrades rapidly when spawning more processes to run benchmark
Gerald Yang
gerald.yang at canonical.com
Thu Sep 4 08:06:47 UTC 2025
BugLink: https://bugs.launchpad.net/bugs/2122006
[Impact]
When running erlang benchmark:
https://github.com/jessestimpson/ets_load_benchmark_public.git
Spwan more processes, the performance drops rapidly compare to 1 process,
this issue was introduced on 5.18 kernel, 5.17 doesn't have this issue.
Description of benchmark:
n = number of processes
f = % of performance relative to n = 1
r = raw rate,
t = time
5.17 benchmark result:
n,f,r,t
1,1.0,9120867,5.003
2,0.5061354891733854,4616394,5.001
4,0.08950992302914515,816408,5.006
8,0.01184452801350521,108032,5.098
16,0.010647457942399005,97114,5.182
32,0.010625520850290194,96913,5.672
64,0.010831249272826072,98790,12.418
128,0.010497878077414494,95749,27.061
256,0.010104340575500272,92160,57.469
5.18 benchmark result:
n,f,r,t
1,1.0,9382016,5.004
2,0.4953986691824555,4647838,5.001
4,0.10023648870773996,940420,5.005
8,0.008932429179095262,83804,6.195
16,0.0018372315021540654,17236,9.243
32,9.585592402608068e-4,8993,22.119
64,8.145250697989274e-4,7641,91.865
128,7.778153535259693e-4,7297,278.728
256,7.679856301480621e-4,7205,633.869
This can be reproduced on noble 6.8 kernel:
n,f,r,t
1,1.0,9319448,5.005
2,0.48816914209026224,4549467,5.001
4,0.08824585392034001,822402,5.004
8,0.0023127649346702354,21553,6.444
16,0.0010507673678827175,9792,10.905
32,8.959956782593959e-4,8350,22.648
64,0.0013944409643284223,12995,6.551
128,7.658929844955412e-4,7137,294.023
256,7.462181950964878e-4,6954,619.978
this commit has just merged into this plucky 6.14 SRU cycle
[Fix]
Upstream fixes this issue in cpuidle governor:
commit 85975daeaa4d6ec560bfcd354fc9c08ad7f38888
Author: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
Date: Thu Feb 6 15:29:05 2025 +0100
cpuidle: menu: Avoid discarding useful information
and also a follwoing commit to fix the above commit:
commit fa3fa55de0d6177fdcaf6fc254f13cc8f33c3eed
Author: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
Date: Mon Aug 11 17:03:11 2025 +0200
cpuidle: governors: menu: Avoid using invalid recent intervals data
Marc has reported that commit 85975daeaa4d ("cpuidle: menu: Avoid
discarding useful information") caused the number of wakeup interrupts
to increase on an idle system [1], which was not expected to happen
after merely allowing shallower idle states to be selected by the
governor in some cases.
[Test Plan]
Use the following steps can easily reproduce the issue:
sudo apt install erlang-base -y
git clone https://github.com/jessestimpson/ets_load_benchmark_public.git
cd ets_load_benchmark_public
erlc ets_load_benchmark.erl
erl -noshell -s ets_load_benchmark -eval 'init:stop().'
[Where problems could occur]
These patches fix the cpuidle governor issue and are verified by upstream,
if something really goes wrong, it could only affect cpu idle policy and cause more power consumption.k
Rafael J. Wysocki (2):
cpuidle: menu: Avoid discarding useful information
cpuidle: governors: menu: Avoid using invalid recent intervals data
drivers/cpuidle/governors/menu.c | 34 +++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
--
2.43.0
More information about the kernel-team
mailing list