Tejun Heo
ddceadce63
sched_ext: Add support for cgroup bandwidth control interface
...
From 077814f57f8acce13f91dc34bbd2b7e4911fbf25 Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@kernel.org >
Date: Fri, 13 Jun 2025 15:06:47 -1000
- Add CONFIG_GROUP_SCHED_BANDWIDTH which is selected by both
CONFIG_CFS_BANDWIDTH and EXT_GROUP_SCHED.
- Put bandwidth control interface files for both cgroup v1 and v2 under
CONFIG_GROUP_SCHED_BANDWIDTH.
- Update tg_bandwidth() to fetch configuration parameters from fair if
CONFIG_CFS_BANDWIDTH, SCX otherwise.
- Update tg_set_bandwidth() to update the parameters for both fair and SCX.
- Add bandwidth control parameters to struct scx_cgroup_init_args.
- Add sched_ext_ops.cgroup_set_bandwidth() which is invoked on bandwidth
control parameter updates.
- Update scx_qmap and maximal selftest to test the new feature.
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-20 17:03:51 -10:00
Tejun Heo
6e6558a6bc
sched_ext, sched/core: Factor out struct scx_task_group
...
More sched_ext fields will be added to struct task_group. In preparation,
factor out sched_ext fields into struct scx_task_group to reduce clutter in
the common header. No functional changes.
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-20 17:03:27 -10:00
Tejun Heo
e4e149dd2f
sched_ext: Merge branch 'for-6.16-fixes' into for-6.17
...
Pull sched_ext/for-6.16-fixes to receive:
c50784e99f ("sched_ext: Make scx_group_set_weight() always update tg->scx.weight")
33796b9187 ("sched_ext, sched/core: Don't call scx_group_set_weight() prematurely from sched_create_group()")
which are needed to implement CPU bandwidth control interface support.
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-20 17:01:21 -10:00
Tejun Heo
e4ee150fea
sched_ext: Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into for-6.17
...
Pull tip/sched/core to receive the following commits:
d403a3689a ("sched/fair: Move max_cfs_quota_period decl and default_cfs_period() def from fair.c to sched.h")
de4c80c696 ("sched/core: Relocate tg_get_cfs_*() and cpu_cfs_*_read_*()")
43e33f53e2 ("sched/core: Reorganize cgroup bandwidth control interface file reads")
5bc34be478 ("sched/core: Reorganize cgroup bandwidth control interface file writes")
These will be used to implement CPU bandwidth interface support in
sched_ext.
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-20 17:01:09 -10:00
Tejun Heo
5bc34be478
sched/core: Reorganize cgroup bandwidth control interface file writes
...
- Move input parameter validation from tg_set_cfs_bandwidth() to the new
outer function tg_set_bandwidth(). The outer function handles parameters
in usecs, validates them and calls tg_set_cfs_bandwidth() which converts
them into nsecs. This matches tg_bandwidth() on the read side.
- max/min_cfs_* consts are now used by tg_set_bandwidth(). Relocate, convert
into usecs and drop "cfs" from the names.
- Reimplement cpu_cfs_{period|quote|burst}_write_*() using tg_bandwidth()
and tg_set_bandwidth() and replace "cfs" in the names with "bw".
- Update cpu_max_write() to use tg_set_bandiwdth(). cpu_period_quota_parse()
is updated to drop nsec conversion accordingly. This aligns the behavior
with cfs_period_quota_print().
- Drop now unused tg_set_cfs_{period|quota|burst}().
- While at it, for consistency, rename default_cfs_period() to
default_bw_period_us() and make it return usecs.
This is to prepare for adding bandwidth control support to sched_ext.
tg_set_bandwidth() will be used as the muxing point. No functional changes
intended.
Signed-off-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lore.kernel.org/r/20250614012346.2358261-5-tj@kernel.org
2025-06-18 13:59:57 +02:00
Tejun Heo
43e33f53e2
sched/core: Reorganize cgroup bandwidth control interface file reads
...
- Update tg_get_cfs_*() to return u64 values. These are now used as the low
level accessors to the fair's bandwidth configuration parameters.
Translation to usecs takes place in these functions.
- Add tg_bandwidth() which reads all three bandwidth parameters using
tg_get_cfs_*().
- Reimplement cgroup interface read functions using tg_bandwidth(). Drop cfs
from the function names.
This is to prepare for adding bandwidth control support to sched_ext.
tg_bandwidth() will be used as the muxing point similar to tg_weight(). No
functional changes.
Signed-off-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lore.kernel.org/r/20250614012346.2358261-4-tj@kernel.org
2025-06-18 13:59:57 +02:00
Tejun Heo
de4c80c696
sched/core: Relocate tg_get_cfs_*() and cpu_cfs_*_read_*()
...
Collect the getters, relocate the trivial interface file wrappers, and put
all of them in period, quota, burst order to prepare for future changes.
Pure reordering. No functional changes.
Signed-off-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lore.kernel.org/r/20250614012346.2358261-3-tj@kernel.org
2025-06-18 13:59:57 +02:00
Tejun Heo
d403a3689a
sched/fair: Move max_cfs_quota_period decl and default_cfs_period() def from fair.c to sched.h
...
max_cfs_quota_period is defined in core.c but has a declaration in fair.c.
Move the declaration to kernel/sched/sched.h. Also, move
default_cfs_period() from fair.c to sched.h. No functional changes.
Signed-off-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lore.kernel.org/r/20250614012346.2358261-2-tj@kernel.org
2025-06-18 13:59:56 +02:00
Tejun Heo
33796b9187
sched_ext, sched/core: Don't call scx_group_set_weight() prematurely from sched_create_group()
...
During task_group creation, sched_create_group() calls
scx_group_set_weight() with CGROUP_WEIGHT_DFL to initialize the sched_ext
portion. This is premature and ends up calling ops.cgroup_set_weight() with
an incorrect @cgrp before ops.cgroup_init() is called.
sched_create_group() should just initialize SCX related fields in the new
task_group. Fix it by factoring out scx_tg_init() from sched_init() and
making sched_create_group() call that function instead of
scx_group_set_weight().
v2: Retain CONFIG_EXT_GROUP_SCHED ifdef in sched_init() as removing it leads
to build failures on !CONFIG_GROUP_SCHED configs.
Signed-off-by: Tejun Heo <tj@kernel.org >
Fixes: 8195136669 ("sched_ext: Add cgroup support")
Cc: stable@vger.kernel.org # v6.12+
2025-06-17 08:19:55 -10:00
Tejun Heo
c50784e99f
sched_ext: Make scx_group_set_weight() always update tg->scx.weight
...
Otherwise, tg->scx.weight can go out of sync while scx_cgroup is not enabled
and ops.cgroup_init() may be called with a stale weight value.
Signed-off-by: Tejun Heo <tj@kernel.org >
Fixes: 8195136669 ("sched_ext: Add cgroup support")
Cc: stable@vger.kernel.org # v6.12+
2025-06-17 08:19:43 -10:00
Cheng-Yang Chou
f479fee382
sched_ext: Return NULL in llc_span
...
Use NULL instead of 0 to signal no LLC domain, matching numa_span() and
the function comment.
No functional change.
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-16 07:32:37 -10:00
Cheng-Yang Chou
545b343015
sched_ext: Always use SMP versions in kernel/sched/ext_idle.h
...
Simplify the scheduler by making formerly SMP-only primitives and data
structures unconditional.
tj: Updated subject for clarity.
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-13 14:47:59 -10:00
Cheng-Yang Chou
8834ace4a8
sched_ext: Always use SMP versions in kernel/sched/ext_idle.c
...
Simplify the scheduler by making formerly SMP-only primitives and data
structures unconditional.
tj: Updated subject for clarity. Fixed stray #else block which wasn't
removed causing build failure.
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-13 14:47:52 -10:00
Cheng-Yang Chou
6a1cda143c
sched_ext: Always use SMP versions in kernel/sched/ext.h
...
Simplify the scheduler by making formerly SMP-only primitives and data
structures unconditional.
tj: Updated subject for clarity. Replace #if defined() with #ifdef.
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-13 14:30:58 -10:00
Cheng-Yang Chou
165af41516
sched_ext: Always use SMP versions in kernel/sched/ext.c
...
Simplify the scheduler by making formerly SMP-only primitives and data
structures unconditional.
tj: Updated subject for clarity.
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2025-06-13 14:29:39 -10:00
Tejun Heo
9ec5e0be0e
Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into for-6.17
2025-06-13 14:21:47 -10:00
Ingo Molnar
dabe1be4e8
sched/smp: Use the SMP version of double_rq_clock_clear_update()
...
Simplify the scheduler by making CONFIG_SMP=y code in
double_rq_clock_clear_update() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-44-mingo@kernel.org
2025-06-13 08:47:23 +02:00
Ingo Molnar
fc75ac3c91
sched/smp: Use the SMP version of add_nr_running()
...
Simplify the scheduler by making CONFIG_SMP=y code in
add_nr_running() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-43-mingo@kernel.org
2025-06-13 08:47:23 +02:00
Ingo Molnar
241c307b05
sched/smp: Use the SMP version of ENQUEUE_MIGRATED
...
Simplify the scheduler by making the CONFIG_SMP-only ENQUEUE_MIGRATED
flag unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-42-mingo@kernel.org
2025-06-13 08:47:23 +02:00
Ingo Molnar
0203244600
sched/smp: Use the SMP version of WF_ and SD_ flag sanity checks
...
Simplify the scheduler by making CONFIG_SMP=y asserts related
to WF_ and SD_ flags unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-41-mingo@kernel.org
2025-06-13 08:47:23 +02:00
Ingo Molnar
ea100b31ee
sched/smp: Use the SMP version of task_on_cpu()
...
Simplify the scheduler by making CONFIG_SMP=y code in task_on_cpu()
unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-40-mingo@kernel.org
2025-06-13 08:47:22 +02:00
Ingo Molnar
703b8e8545
sched/smp: Use the SMP version of rq_pin_lock()
...
Simplify the scheduler by making a CONFIG_SMP-only warning
in rq_pin_lock() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-39-mingo@kernel.org
2025-06-13 08:47:22 +02:00
Ingo Molnar
9fd5da7989
sched/smp: Use the SMP version of is_migration_disabled()
...
Simplify the scheduler by making the CONFIG_SMP-only code in
is_migration_disabled() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-38-mingo@kernel.org
2025-06-13 08:47:22 +02:00
Ingo Molnar
1724088119
sched/smp: Use the SMP version of cpu_of()
...
Simplify the scheduler by making CONFIG_SMP=y code in cpu_of()
unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-37-mingo@kernel.org
2025-06-13 08:47:22 +02:00
Ingo Molnar
caf5bde9c5
sched/smp: Use the SMP version of the stop-CPU scheduling class
...
Simplify the scheduler by making CONFIG_SMP=y code in the stop-CPU
scheduling class unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-36-mingo@kernel.org
2025-06-13 08:47:21 +02:00
Ingo Molnar
482c4dae75
sched/smp: Use the SMP version of the idle scheduling class
...
Simplify the scheduler by making CONFIG_SMP=y code in the
idle scheduling classunconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-35-mingo@kernel.org
2025-06-13 08:47:21 +02:00
Ingo Molnar
6c8d251621
sched/smp: Use the SMP version of sched_update_asym_prefer_cpu()
...
Simplify the scheduler by making CONFIG_SMP=y code in
sched_update_asym_prefer_cpu() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-34-mingo@kernel.org
2025-06-13 08:47:21 +02:00
Ingo Molnar
8a9246ddc1
sched/smp: Use the SMP version of the scheduler syscalls
...
Simplify the scheduler by making CONFIG_SMP=y code in
idle_cpu(), __sched_setscheduler() and sched_setaffinity()
unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-33-mingo@kernel.org
2025-06-13 08:47:21 +02:00
Ingo Molnar
9d9af2372f
sched/smp: Use the SMP version of schedstats
...
Simplify the scheduler by making CONFIG_SMP=y schedstats
debugging output unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-32-mingo@kernel.org
2025-06-13 08:47:21 +02:00
Ingo Molnar
02fb885ebd
sched/smp: Use the SMP version of scheduler debugging data
...
Simplify the scheduler by making CONFIG_SMP=y debug output
unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-31-mingo@kernel.org
2025-06-13 08:47:20 +02:00
Ingo Molnar
6324dce8f6
sched/smp: Use the SMP version of the deadline scheduling class
...
Simplify the scheduler by making CONFIG_SMP=y code
in prio_changed_dl() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-30-mingo@kernel.org
2025-06-13 08:47:20 +02:00
Ingo Molnar
15125a229a
sched/smp: Use the SMP version of the RT scheduling class
...
Simplify the scheduler by making CONFIG_SMP=y primitives and data
structures unconditional in the RT policies scheduler.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-29-mingo@kernel.org
2025-06-13 08:47:20 +02:00
Ingo Molnar
74063c1755
sched/smp: Use the SMP version of idle_thread_set_boot_cpu()
...
Simplify the scheduler by making the CONFIG_SMP=y version of
idle_thread_set_boot_cpu() unconditional.
Note that idle_thread_set_boot_cpu() is already conditional
on CONFIG_GENERIC_SMP_IDLE_THREAD, which most architectures
select unconditionally on both UP and SMP kernels.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-28-mingo@kernel.org
2025-06-13 08:47:20 +02:00
Ingo Molnar
1f25730e5a
sched/smp: Use the SMP version of sched_exec()
...
Simplify the scheduler making CONFIG_SMP=y sched_exec()
code unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-27-mingo@kernel.org
2025-06-13 08:47:20 +02:00
Ingo Molnar
588467616c
sched/smp: Use the SMP version of wake_up_new_task()
...
Simplify the scheduler by making CONFIG_SMP=y code in wake_up_new_task()
unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-26-mingo@kernel.org
2025-06-13 08:47:19 +02:00
Ingo Molnar
8039addbe5
sched/smp: Use the SMP version of __task_needs_rq_lock()
...
Simplify the scheduler by making CONFIG_SMP=y code in
__task_needs_rq_lock() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-25-mingo@kernel.org
2025-06-13 08:47:19 +02:00
Ingo Molnar
d0a0a055a5
sched/smp: Use the SMP version of try_to_wake_up()
...
Simplify the scheduler by making CONFIG_SMP=y logic within
try_to_wake_up() unconditional.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-24-mingo@kernel.org
2025-06-13 08:47:19 +02:00
Ingo Molnar
a1416303d1
sched/smp: Always define rq->hrtick_csd
...
Simplify the scheduler by making CONFIG_SMP=y data structure
of rq->hrtick_csd unconditional.
Adjust hrtick_start() accordingly, which was split due to the
::hrtick_csd asymmetry and use the SMP version there too.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-23-mingo@kernel.org
2025-06-13 08:47:19 +02:00
Ingo Molnar
cac5cefbad
sched/smp: Make SMP unconditional
...
Simplify the scheduler by making CONFIG_SMP=y primitives and data
structures unconditional.
Introduce transitory wrappers for functionality not yet converted to SMP.
Note that this patch is pretty large, because there's no clear separation
between various aspects of the SMP scheduler, it's basically a huge block
of #ifdef CONFIG_SMP. A fair amount of it has to be switched on for it to
boot and work on UP systems.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-21-mingo@kernel.org
2025-06-13 08:47:18 +02:00
Ingo Molnar
5202c25dd1
sched/smp: Always define sched_domains_mutex_lock()/unlock(), def_root_domain and sched_domains_mutex
...
Simplify the scheduler by making CONFIG_SMP=y primitives and data
structures unconditional.
Unconditionally build kernel/sched/topology.c and the main sched-domains
locking primitives.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-20-mingo@kernel.org
2025-06-13 08:47:18 +02:00
Ingo Molnar
f1c6b957f7
sched: Clean up and standardize #if/#else/#endif markers in sched/topology.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-19-mingo@kernel.org
2025-06-13 08:47:18 +02:00
Ingo Molnar
23d27e2cfb
sched: Clean up and standardize #if/#else/#endif markers in sched/syscalls.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-18-mingo@kernel.org
2025-06-13 08:47:18 +02:00
Ingo Molnar
91433cd6e4
sched: Clean up and standardize #if/#else/#endif markers in sched/stats.[ch]
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-17-mingo@kernel.org
2025-06-13 08:47:17 +02:00
Ingo Molnar
fdccd0c792
sched: Clean up and standardize #if/#else/#endif markers in sched/sched.h
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-16-mingo@kernel.org
2025-06-13 08:47:17 +02:00
Ingo Molnar
3eca109a78
sched: Clean up and standardize #if/#else/#endif markers in sched/rt.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-15-mingo@kernel.org
2025-06-13 08:47:17 +02:00
Ingo Molnar
fd3db705f7
sched: Clean up and standardize #if/#else/#endif markers in sched/psi.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-14-mingo@kernel.org
2025-06-13 08:47:17 +02:00
Ingo Molnar
311bb3f7b7
sched: Clean up and standardize #if/#else/#endif markers in sched/pelt.[ch]
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-13-mingo@kernel.org
2025-06-13 08:47:17 +02:00
Ingo Molnar
c215dff7f8
sched: Clean up and standardize #if/#else/#endif markers in sched/loadavg.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-12-mingo@kernel.org
2025-06-13 08:47:16 +02:00
Ingo Molnar
833840a94f
sched: Clean up and standardize #if/#else/#endif markers in sched/idle.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-11-mingo@kernel.org
2025-06-13 08:47:16 +02:00
Ingo Molnar
416d5f78e4
sched: Clean up and standardize #if/#else/#endif markers in sched/fair.c
...
- Use the standard #ifdef marker format for larger blocks,
where appropriate:
#if CONFIG_FOO
...
#else /* !CONFIG_FOO: */
...
#endif /* !CONFIG_FOO */
- Fix whitespace noise and other inconsistencies.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Shrikanth Hegde <sshegde@linux.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Valentin Schneider <vschneid@redhat.com >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Link: https://lore.kernel.org/r/20250528080924.2273858-10-mingo@kernel.org
2025-06-13 08:47:16 +02:00