Public bug reported:

[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

and plucky 6.14 kernel:
n,f,r,t
1,1.0,9321196,5.005
2,0.5362295256010277,4998300,5.001
4,0.09392833281067568,875524,5.005
8,0.07644864029595455,712592,5.015
16,0.0013813520394405897,12875,9.658
32,7.711512948349701e-4,7188,19.553
64,0.0013429338424364038,12517,7.042
128,7.457826804441801e-4,6951,110.797
256,7.542013889959581e-4,7030,677.621


[Fix]

Upstream fixes this issue in cpuidle governor:
commit 85975daeaa4d6ec560bfcd354fc9c08ad7f38888
Author: Rafael J. Wysocki <[email protected]>
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 <[email protected]>
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.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2122006

Title:
  Performance degrades rapidly when spawning more processes to run
  benchmark

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2122006/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to