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