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

Tejun Heo
2024-07-08T19:30:41Z

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@kernel.org>
> Link: http://lkml.kernel.org/r/20240626082342.GY31592@noisy.programming.kicks-ass.net
> Cc: David Vernet <void@manifault.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Frederic Weisbecker <frederic@kernel.org>

Applied to cgroup/for-6.11.

Thanks.

--
tejun