| From: |
| Peter Zijlstra <peterz-AT-infradead.org> |
| To: |
| mingo-AT-kernel.org |
| Subject: |
| [PATCH v3 0/7] sched: Flatten the pick |
| Date: |
| Fri, 05 Jun 2026 14:40:13 +0200 |
| Message-ID: |
| <20260605105513.354837583@infradead.org> |
| Cc: |
| longman-AT-redhat.com, chenridong-AT-huaweicloud.com, peterz-AT-infradead.org, juri.lelli-AT-redhat.com, vincent.guittot-AT-linaro.org, dietmar.eggemann-AT-arm.com, rostedt-AT-goodmis.org, bsegall-AT-google.com, mgorman-AT-suse.de, vschneid-AT-redhat.com, tj-AT-kernel.org, hannes-AT-cmpxchg.org, mkoutny-AT-suse.com, cgroups-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, jstultz-AT-google.com, kprateek.nayak-AT-amd.com, qyousef-AT-layalina.io |
| Archive-link: |
| Article |
Hi!
New version, same story [1]. TL;DR:
- Adds new cgroup_mode knob and implements new policies to address the
hierarchy level weight mismatch.
- Builds upon that base to create a flat / single runqueue scheduler where the
cgroup hierarchy is expressed through dynamic weight management.
I'm hoping to be able to merge these patches early in the next cycle (after
7.2-rc1).
Random benchmark:
Game vs 'for ((i=0; i<8; i++)) do nice ./spin.sh; done':
Lutris / GE-Proton10-34 / Steam Runtime 3 (sniper)
Intel Core i7-2600K
AMD Radeon RX 580
Shadows Awakening (GOG)
default slice(*)
FPS min 4.0 29.0
avg 47.5 59.2
max 83.7 83.7
FT min 9.3 10.2
avg 34.0 17.0
max 121.2 30.0
FPS (Frames Per Second)
FT (FrameTime)
[*] Command prefix: 'chrt -o --sched-runtime 100000 0'
Changes since v2:
- merged debug and prep patches
- fixed update_entity_lag() on dequeue (Vincent)
- fixed throttle vs tick (Prateek)
- fixed wakeup_preempt_fair()
- rebased on tip/sched/core
- rewritten cgroup_mode changelogs
- reworked cgroup_mode concur
- added cgroup_mode tasks
- changed default cgroup_mode
[1] - https://lore.kernel.org/r/20260511113104.563854162@infrad...
Can also be had:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/flat
include/linux/cpuset.h | 6
include/linux/sched.h | 1
kernel/cgroup/cpuset.c | 15
kernel/sched/core.c | 5
kernel/sched/debug.c | 89 ++++
kernel/sched/fair.c | 943 ++++++++++++++++++++++++-------------------------
kernel/sched/pelt.c | 6
kernel/sched/sched.h | 30 -
8 files changed, 607 insertions(+), 488 deletions(-)