ACK: [SRU][N][PATCH 0/2] Performance degrades rapidly when spawning more processes to run benchmark

Tim Whisonant tim.whisonant at canonical.com
Fri Sep 5 21:46:45 UTC 2025


On Thu, Sep 04, 2025 at 04:06:47PM +0800, Gerald Yang wrote:
> 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
> 
> 

Acked-by: Tim Whisonant <tim.whisonant at canonical.com>



More information about the kernel-team mailing list