On 7/14/21 9:54 AM, Frederic Weisbecker wrote:
The fact that "isolcpus=" behaviour can't be modified at runtime is an
eternal source of discussion and debate opposing a useful feature against
a terrible interface.
I've long since tried to figure out a proper way to control this at
runtime using cpusets, which isn't easy as a boot time single cpumask
is difficult to map to a hierarchy of cpusets that can even overlap.
I have a cpuset patch that allow disabling of load balancing in a
cgroup-v2 setting:
https://lore.kernel.org/lkml/20210621184924.27493-1-longman@xxxxxxxxxx/
The idea of cpuset partition is that there will be no overlap of cpus in
different partitions. So there will be no confusion whether a cpu is
load-balanced or not.
The idea here is to map the boot-set isolation behaviour to any cpuset
directory whose cpumask is a subset of "isolcpus=". I let you browse
for details on the last patch.
Note this is still WIP and half-baked, but I figured it's important to
validate the interface early.
Using different cpumasks for different isolated properties is the easy
part. The hard part is to make different subsystems to change their
behavior as the isolation masks change dynamically at run time.
Currently, they check the housekeeping cpumask only at boot time or when
certain events happen.
Cheers,
Longman