public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6 v7] sched/fair: Add push task mecansim and hadle more EAS cases
@ 2025-12-01  9:13 Vincent Guittot
  2025-12-01  9:13 ` [PATCH 1/6 v7] sched/fair: Filter false overloaded_group case for EAS Vincent Guittot
                   ` (7 more replies)
  0 siblings, 8 replies; 23+ messages in thread
From: Vincent Guittot @ 2025-12-01  9:13 UTC (permalink / raw)
  To: mingo, peterz, juri.lelli, dietmar.eggemann, rostedt, bsegall,
	mgorman, vschneid, linux-kernel, pierre.gondois, kprateek.nayak
  Cc: qyousef, hongyan.xia2, christian.loehle, luis.machado,
	Vincent Guittot

This is a subset of [1] (sched/fair: Rework EAS to handle more cases)

[1] https://lore.kernel.org/all/20250314163614.1356125-1-vincent.guittot@linaro.org/

The current Energy Aware Scheduler has some known limitations which have
became more and more visible with features like uclamp as an example. This
serie tries to fix some of those issues:
- tasks stacked on the same CPU of a PD
- tasks stuck on the wrong CPU.

Patch 1 fixes the case where a CPU is wrongly classified as overloaded
whereas it is capped to a lower compute capacity. This wrong classification
can prevent periodic load balancer to select a group_misfit_task CPU
because group_overloaded has higher priority.

Patch 2 removes the need of testing uclamp_min in cpu_overutilized to
trigger the active migration of a task on another CPU.

Patch 3 prepares select_task_rq_fair() to be called without TTWU, Fork or
Exec flags when we just want to look for a possible better CPU.

Patch 4 adds push call back mecanism to fair scheduler but doesn't enable
it.

Patch 5 enable has_idle_core for !SMP system to track if there may be an
idle CPU in the LLC.

Patch 6 adds some conditions to enable pushing runnable tasks for EAS:
- when a task is stuck on a CPU and the system is not overutilized.
- if there is a possible idle CPU when the system is overutilized.

More tests results will come later as I wanted to send the pachtset before
LPC.

Tbench  on dragonboard rb5
schedutil and EAS enabled

# process     tip                   +patchset
1              29.1(+/-4.1%)        124.7(+/-12.3%) +329%
2              60.0(+/-0.9%)        216.1(+/- 7.9%) +260%
4             255.8(+/-1.9%)        421.4(+/- 2.0%)  +65%       
8            1317.3(+/-4.6%)       1396.1(+/- 3.0%)   +6%
16            958.2(+/-4.6%)        979.6(+/- 2.0%)   +2%

Hackbench didn't show any difference


Vincent Guittot (6):
  sched/fair: Filter false overloaded_group case for EAS
  sched/fair: Update overutilized detection
  sched/fair: Prepare select_task_rq_fair() to be called for new cases
  sched/fair: Add push task mechanism for fair
  sched/fair: Enable idle core tracking for !SMT
  sched/fair: Add EAS and idle cpu push trigger

 kernel/sched/fair.c     | 350 +++++++++++++++++++++++++++++++++++-----
 kernel/sched/sched.h    |  46 ++++--
 kernel/sched/topology.c |   3 +
 3 files changed, 346 insertions(+), 53 deletions(-)

-- 
2.43.0


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

end of thread, other threads:[~2025-12-06 10:32 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-01  9:13 [PATCH 0/6 v7] sched/fair: Add push task mecansim and hadle more EAS cases Vincent Guittot
2025-12-01  9:13 ` [PATCH 1/6 v7] sched/fair: Filter false overloaded_group case for EAS Vincent Guittot
2025-12-01  9:13 ` [PATCH 2/6 v7] sched/fair: Update overutilized detection Vincent Guittot
2025-12-01  9:13 ` [PATCH 3/6 v7] sched/fair: Prepare select_task_rq_fair() to be called for new cases Vincent Guittot
2025-12-01  9:13 ` [PATCH 4/6 v7] sched/fair: Add push task mechanism for fair Vincent Guittot
2025-12-01  9:13 ` [RFC PATCH 5/6 v7] sched/fair: Enable idle core tracking for !SMT Vincent Guittot
2025-12-01  9:13 ` [RFC PATCH 6/6 v7] sched/fair: Add EAS and idle cpu push trigger Vincent Guittot
2025-12-01 13:53   ` Christian Loehle
2025-12-01 17:49     ` Vincent Guittot
2025-12-01 19:33       ` Vincent Guittot
2025-12-02  9:44   ` Hillf Danton
2025-12-02 13:01     ` Vincent Guittot
2025-12-03  9:00       ` Hillf Danton
2025-12-03 13:32         ` Vincent Guittot
2025-12-04  6:59           ` Hillf Danton
2025-12-05 15:02             ` Vincent Guittot
2025-12-06 10:31               ` Hillf Danton
2025-12-01 13:31 ` [PATCH 0/6 v7] sched/fair: Add push task mecansim and hadle more EAS cases Christian Loehle
2025-12-01 13:57   ` Christian Loehle
2025-12-01 17:48     ` Vincent Guittot
2025-12-01 17:48   ` Vincent Guittot
2025-12-01 22:02 ` David Laight
2025-12-02 13:24   ` Vincent Guittot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox