On 3/30/26 7:46 AM, Qiliang Yuan wrote:
On Wed, Mar 25, 2026 at 03:04:32PM +0100, Peter Zijlstra wrote:
Why? What was wrong with cpusets?
This is the central point of the architecture. The distinction I was
trying to address is:
1. Task Isolation (Current CPUSets):
The `cpuset` subsystem (especially `cpuset.cpus.partition = isolated`)
is excellent at managing task placement and load balancing. It
ensures no user tasks are pushed to isolated CPUs.
2. Kernel Overhead Isolation (Housekeeping):
Currently, `cpusets` do not manage kernel-internal overhead like RCU
callbacks, timers, or unbound workqueues. These are managed by the
global `housekeeping_cpumask`, which is settled at boot via
`isolcpus`/`nohz_full` and is static.
My plan is to extend the cpuset isolated partition mechanism to isolate
other kernel noise currently covered by the nohz_full and manged_irq
boot command line. That will makes the HK_TYPE_KERNEL_NOISE cpumask
modifiable at run time. It is not a direct modification of the HK
cpumasks as advocated by this patch series but an indirect one via the
creation of the appropriate isolated cpuset partitions.
Cheers,
Longman