Re: [PATCH v4] docs/sched_ext: document that cgroup CPU knobs are scheduler-dependent
From: Andrea Righi
Date: Mon Aug 24 2026 - 09:53:42 EST
On Mon, Aug 24, 2026 at 09:21:16PM +0800, Tao Cui wrote:
> From: Tao Cui <cuitao@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
Looks good to me now.
Reviewed-by: Andrea Righi <arighi@xxxxxxxxxx>
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@xxxxxxxxx
>
> 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
>