linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
[parent not found: <C0E39DE3-EEEB-4A08-850F-A4B7EC809E3A@amazon.com>]
* [PATCH 0/2] [tip: sched/core] sched: Disable PLACE_LAG and RUN_TO_PARITY and move them to sysctl
@ 2024-10-17  5:19 Cristian Prundeanu
  2024-10-17  9:10 ` Peter Zijlstra
                   ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: Cristian Prundeanu @ 2024-10-17  5:19 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, x86, linux-arm-kernel,
	Bjoern Doebel, Hazem Mohamed Abuelfotoh, Geoff Blake, Ali Saidi,
	Csaba Csoma, Cristian Prundeanu

This patchset disables the scheduler features PLACE_LAG and RUN_TO_PARITY 
and moves them to sysctl.

Replacing CFS with the EEVDF scheduler in kernel 6.6 introduced 
significant performance degradation in multiple database-oriented 
workloads. This degradation manifests in all kernel versions using EEVDF, 
across multiple Linux distributions, hardware architectures (x86_64, 
aarm64, amd64), and CPU generations.

For example, running mysql+hammerdb results in a 12-17% throughput 
reduction and 12-18% latency increase compared to kernel 6.5 (using 
default scheduler settings everywhere). The magnitude of this performance 
impact is comparable to the average performance difference of a CPU 
generation over its predecessor.

Testing combinations of available scheduler features showed that the 
largest improvement (short of disabling all EEVDF features) came from 
disabling both PLACE_LAG and RUN_TO_PARITY:

Kernel   | default  | NO_PLACE_LAG and
aarm64   | config   | NO_RUN_TO_PARITY
---------+----------+-----------------
6.5      | baseline |  N/A
6.6      | -13.2%   | -6.8%
6.7      | -13.1%   | -6.0%
6.8      | -12.3%   | -6.5%
6.9      | -12.7%   | -6.9%
6.10     | -13.5%   | -5.8%
6.11     | -12.6%   | -5.8%
6.12-rc2 | -12.2%   | -8.9%
---------+----------+-----------------

Kernel   | default  | NO_PLACE_LAG and
x86_64   | config   | NO_RUN_TO_PARITY
---------+----------+-----------------
6.5      | baseline |  N/A
6.6      | -16.8%   | -10.8%
6.7      | -16.4%   |  -9.9%
6.8      | -17.2%   |  -9.5%
6.9      | -17.4%   |  -9.7%
6.10     | -16.5%   |  -9.0%
6.11     | -15.0%   |  -8.5%
6.12-rc2 | -12.7%   | -10.9%
---------+----------+-----------------

While the long term approach is debugging and fixing the scheduler 
behavior, algorithm changes to address performance issues of this nature 
are specialized (and likely prolonged or open-ended) research. Until a 
change is identified which fixes the performance degradation, in the 
interest of a better out-of-the-box performance: (1) disable these 
features by default, and (2) expose these values in sysctl instead of 
debugfs, so they can be more easily persisted across reboots.

Cristian Prundeanu (2):
  sched: Disable PLACE_LAG and RUN_TO_PARITY
  sched: Move PLACE_LAG and RUN_TO_PARITY to sysctl

 include/linux/sched/sysctl.h |  8 ++++++++
 kernel/sched/core.c          | 13 +++++++++++++
 kernel/sched/fair.c          |  5 +++--
 kernel/sched/features.h      | 10 ----------
 kernel/sysctl.c              | 20 ++++++++++++++++++++
 5 files changed, 44 insertions(+), 12 deletions(-)

-- 
2.40.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2025-02-12 23:01 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20250119110410.GAZ4zcKkx5sCjD5XvH@fat_crate.local>
2025-01-28 23:09 ` [PATCH 0/2] [tip: sched/core] sched: Disable PLACE_LAG and RUN_TO_PARITY and move them to sysctl Cristian Prundeanu
2025-02-11  3:27   ` K Prateek Nayak
2025-02-12  5:41     ` Cristian Prundeanu
2025-02-12  9:43       ` Peter Zijlstra
2025-02-12  5:36   ` [PATCH v2] [tip: sched/core] sched: Move PLACE_LAG and RUN_TO_PARITY " Cristian Prundeanu
2025-02-12  9:17     ` Peter Zijlstra
2025-02-12  9:37       ` Peter Zijlstra
2025-02-12 23:00         ` Cristian Prundeanu
     [not found] <C0E39DE3-EEEB-4A08-850F-A4B7EC809E3A@amazon.com>
2024-10-24  8:12 ` [PATCH 0/2] [tip: sched/core] sched: Disable PLACE_LAG and RUN_TO_PARITY and move them " Benjamin Herrenschmidt
2024-10-25 14:43   ` Gautham R. Shenoy
2024-10-29  4:57     ` Cristian Prundeanu
2024-10-30 10:21       ` Dietmar Eggemann
2024-11-01 13:05       ` Peter Zijlstra
2024-11-04 10:19       ` Gautham R. Shenoy
2024-11-04 10:34         ` K Prateek Nayak
2024-10-17  5:19 Cristian Prundeanu
2024-10-17  9:10 ` Peter Zijlstra
2024-10-17 18:19   ` Prundeanu, Cristian
2024-10-18  7:07     ` K Prateek Nayak
2024-10-18  9:54     ` Mohamed Abuelfotoh, Hazem
2024-11-14 20:10 ` Joseph Salisbury
2024-11-19 10:29   ` Dietmar Eggemann
2024-11-25 11:35 ` Cristian Prundeanu
2024-11-26  3:58   ` K Prateek Nayak
2024-11-26 15:12   ` Dietmar Eggemann
2024-11-28 10:32   ` Cristian Prundeanu
2024-11-29 10:12     ` Dietmar Eggemann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).