[PATCH v4] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent

Tao Cui posted 1 patch 1 month ago
Documentation/scheduler/sched-ext.rst | 15 +++++++++++++++
1 file changed, 15 insertions(+)
[PATCH v4] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent
Posted by Tao Cui 1 month ago
From: Tao Cui <cuitao@kylinos.cn>

The scheduler core communicates the initial cpu controller settings
to the BPF scheduler through ops.cgroup_init() and reports subsequent
changes through the corresponding ops.cgroup_set_*() callbacks.
Whether and how a knob takes effect is up to the loaded scheduler:
it may implement the corresponding callback partially or not at all,
so cpu.max, cpu.weight and friends can silently have no effect.

Document this in the basics section of sched-ext.rst.

Signed-off-by: Tao Cui <cuitao@kylinos.cn>
---
v3 -> v4: Rephrase per Andrea's suggestion: mention ops.cgroup_init()
for the initial values, ops.cgroup_set_*() only for subsequent
changes, and disambiguate per-task nice (ops.set_weight()) from
cpu.weight.nice.

v3: https://lore.kernel.org/r/20260824091501.547649-1-cui.tao@linux.dev

 Documentation/scheduler/sched-ext.rst | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
index 35b550671ca7..794ae80b3ba3 100644
--- a/Documentation/scheduler/sched-ext.rst
+++ b/Documentation/scheduler/sched-ext.rst
@@ -242,6 +242,21 @@ optional. The following modified excerpt is from
             .name                   = "simple",
     };
 
+Scheduler-Dependent Knobs
+-------------------------
+
+The fair-class scheduler enforces CPU controller settings such as
+``cpu.max``, ``cpu.weight`` and ``cpu.idle``. For sched_ext tasks, the
+scheduler core communicates these settings to the BPF scheduler
+through ``ops.cgroup_init()`` and reports subsequent changes through
+the corresponding ``ops.cgroup_set_*()`` callbacks. Similarly, per-task
+nice changes are converted to weights and reported through
+``ops.set_weight()``.
+
+Each BPF scheduler is responsible for implementing the scheduling
+semantics of these settings and may choose to ignore them. Consult the
+loaded scheduler's documentation before relying on these controls.
+
 Dispatch Queues
 ---------------
 
-- 
2.43.0
Re: [PATCH v4] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent
Posted by Tejun Heo 1 month ago
Applied to sched_ext/for-7.3-fixes.

Thanks.

--
tejun
Re: [PATCH v4] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent
Posted by Andrea Righi 1 month ago
On Mon, Aug 24, 2026 at 09:21:16PM +0800, Tao Cui wrote:
> From: Tao Cui <cuitao@kylinos.cn>
> 
> The scheduler core communicates the initial cpu controller settings
> to the BPF scheduler through ops.cgroup_init() and reports subsequent
> changes through the corresponding ops.cgroup_set_*() callbacks.
> Whether and how a knob takes effect is up to the loaded scheduler:
> it may implement the corresponding callback partially or not at all,
> so cpu.max, cpu.weight and friends can silently have no effect.
> 
> Document this in the basics section of sched-ext.rst.
> 
> Signed-off-by: Tao Cui <cuitao@kylinos.cn>

Looks good to me now.

Reviewed-by: Andrea Righi <arighi@nvidia.com>

Thanks,
-Andrea

> ---
> v3 -> v4: Rephrase per Andrea's suggestion: mention ops.cgroup_init()
> for the initial values, ops.cgroup_set_*() only for subsequent
> changes, and disambiguate per-task nice (ops.set_weight()) from
> cpu.weight.nice.
> 
> v3: https://lore.kernel.org/r/20260824091501.547649-1-cui.tao@linux.dev
> 
>  Documentation/scheduler/sched-ext.rst | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
> index 35b550671ca7..794ae80b3ba3 100644
> --- a/Documentation/scheduler/sched-ext.rst
> +++ b/Documentation/scheduler/sched-ext.rst
> @@ -242,6 +242,21 @@ optional. The following modified excerpt is from
>              .name                   = "simple",
>      };
>  
> +Scheduler-Dependent Knobs
> +-------------------------
> +
> +The fair-class scheduler enforces CPU controller settings such as
> +``cpu.max``, ``cpu.weight`` and ``cpu.idle``. For sched_ext tasks, the
> +scheduler core communicates these settings to the BPF scheduler
> +through ``ops.cgroup_init()`` and reports subsequent changes through
> +the corresponding ``ops.cgroup_set_*()`` callbacks. Similarly, per-task
> +nice changes are converted to weights and reported through
> +``ops.set_weight()``.
> +
> +Each BPF scheduler is responsible for implementing the scheduling
> +semantics of these settings and may choose to ignore them. Consult the
> +loaded scheduler's documentation before relying on these controls.
> +
>  Dispatch Queues
>  ---------------
>  
> -- 
> 2.43.0
>