All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHSET sched/urgent, sched_ext/for-6.12-fixes] sched/core, sched_ext: Add ENQUEUE_RQ_SELECTED to fix ->select_task_rq() skip detection in sched_ext schedulers
@ 2024-09-27 23:46 Tejun Heo
  2024-09-27 23:46 ` [PATCH 1/3] sched/core: Make select_task_rq() take the pointer to wake_flags instead of value Tejun Heo
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Tejun Heo @ 2024-09-27 23:46 UTC (permalink / raw)
  To: void, peterz, mingo; +Cc: kernel-team, linux-kernel, sched-ext

During ttwu, ->select_task_rq() can be skipped if only one CPU is allowed or
migration is disabled. sched_ext schedulers may perform operations such as
direct dispatch from ->select_task_rq() path and it is useful for them to
know whether ->select_task_rq() was skipped in the ->enqueue_task() path.

Currently, sched_ext schedulers are using ENQUEUE_WAKEUP for this purpose
and end up assuming incorrectly that ->select_task_rq() was called for tasks
that are bound to a single CPU or migration disabled.

This patchset adds ENQUEUE_RQ_SELECTED to indicate whether
->select_task_rq() was called to ->enqueue_task() and propagate that to
sched_ext schedulers so that they can reliably detect whether
->select_task_rq() was skipped.

Peter, please let me know how 0001-0002 should be routed. If they get
applied to sched/urgent (when it opens), I'll pull it into
sched_ext/for-6.12-fixes and apply 0003 on top. If you'd prefer, I can take
all three through sched_ext/for-6.12-fixes too.

This patchset contains the following patches:

 0001-sched-core-Make-select_task_rq-take-the-pointer-to-w.patch
 0002-sched-core-Add-ENQUEUE_RQ_SELECTED-to-indicate-wheth.patch
 0003-sched_ext-scx_qmap-Add-and-use-SCX_ENQ_CPU_SELECTED.patch

 0001-0002 are sched/core patches to add ENQUEUE_RQ_SELECTED.

 0003 makes sched_ext propagate the flag as SCX_ENQ_CPU_SELECTED and fix
 scx_qmap using the new flag.

and can also be found in the following git branch:

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git scx-ENQUEUE_RQ_SELECTED

diffstat follows. Thanks.

 kernel/sched/core.c            |   21 ++++++++++++++-------
 kernel/sched/ext.c             |    1 +
 kernel/sched/sched.h           |    3 +++
 tools/sched_ext/scx_qmap.bpf.c |    4 ++--
 4 files changed, 20 insertions(+), 9 deletions(-)

--
tejun

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

end of thread, other threads:[~2024-10-07 20:20 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-27 23:46 [PATCHSET sched/urgent, sched_ext/for-6.12-fixes] sched/core, sched_ext: Add ENQUEUE_RQ_SELECTED to fix ->select_task_rq() skip detection in sched_ext schedulers Tejun Heo
2024-09-27 23:46 ` [PATCH 1/3] sched/core: Make select_task_rq() take the pointer to wake_flags instead of value Tejun Heo
2024-09-28  0:38   ` David Vernet
2024-09-27 23:46 ` [PATCH 2/3] sched/core: Add ENQUEUE_RQ_SELECTED to indicate whether ->select_task_rq() was called Tejun Heo
2024-09-28  0:38   ` David Vernet
2024-10-01 20:12   ` Tejun Heo
2024-10-04 20:14     ` Tejun Heo
2024-10-05  9:38       ` Peter Zijlstra
2024-10-07 16:44         ` Tejun Heo
2024-09-27 23:46 ` [PATCH 3/3] sched_ext, scx_qmap: Add and use SCX_ENQ_CPU_SELECTED Tejun Heo
2024-09-28  0:39   ` David Vernet
2024-09-28 13:21   ` Andrea Righi
2024-09-28 16:52     ` Tejun Heo
2024-10-07 20:20 ` [PATCHSET sched/urgent, sched_ext/for-6.12-fixes] sched/core, sched_ext: Add ENQUEUE_RQ_SELECTED to fix ->select_task_rq() skip detection in sched_ext schedulers Tejun Heo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.