Re: [PATCH sched_ext/for-6.11] sched_ext: Disallow loading BPF scheduler if isolcpus= domain isolation is in effect

From: Tejun Heo
Date: Mon Jul 08 2024 - 15:30:52 EST


On Wed, Jun 26, 2024 at 03:27:02PM -1000, Tejun Heo wrote:
> sched_domains regulate the load balancing for sched_classes. A machine can
> be partitioned into multiple sections that are not load-balanced across
> using either isolcpus= boot param or cpuset partitions. In such cases, tasks
> that are in one partition are expected to stay within that partition.
>
> cpuset configured partitions are always reflected in each member task's
> cpumask. As SCX always honors the task cpumasks, the BPF scheduler is
> automatically in compliance with the configured partitions.
>
> However, for isolcpus= domain isolation, the isolated CPUs are simply
> omitted from the top-level sched_domain[s] without further restrictions on
> tasks' cpumasks, so, for example, a task currently running in an isolated
> CPU may have more CPUs in its allowed cpumask while expected to remain on
> the same CPU.
>
> There is no straightforward way to enforce this partitioning preemptively on
> BPF schedulers and erroring out after a violation can be surprising.
> isolcpus= domain isolation is being replaced with cpuset partitions anyway,
> so keep it simple and simply disallow loading a BPF scheduler if isolcpus=
> domain isolation is in effect.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Link: http://lkml.kernel.org/r/20240626082342.GY31592@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Cc: David Vernet <void@xxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Frederic Weisbecker <frederic@xxxxxxxxxx>

Applied to cgroup/for-6.11.

Thanks.

--
tejun