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 Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2122006

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

Status in linux package in Ubuntu:
  New

Bug description:
  [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.

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


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to