[PATCH 00/33 v6] cpuset/isolation: Honour kthreads preferred affinity

Frederic Weisbecker frederic at kernel.org
Mon Jan 12 14:09:41 PST 2026


Le Mon, Jan 12, 2026 at 01:23:40PM -0500, Waiman Long a écrit :
> On 1/1/26 5:13 PM, Frederic Weisbecker wrote:
> > Hi,
> > 
> > The kthread code was enhanced lately to provide an infrastructure which
> > manages the preferred affinity of unbound kthreads (node or custom
> > cpumask) against housekeeping constraints and CPU hotplug events.
> > 
> > One crucial missing piece is cpuset: when an isolated partition is
> > created, deleted, or its CPUs updated, all the unbound kthreads in the
> > top cpuset are affine to _all_ the non-isolated CPUs, possibly breaking
> > their preferred affinity along the way
> > 
> > Solve this with performing the kthreads affinity update from cpuset to
> > the kthreads consolidated relevant code instead so that preferred
> > affinities are honoured.
> > 
> > The dispatch of the new cpumasks to workqueues and kthreads is performed
> > by housekeeping, as per the nice Tejun's suggestion.
> > 
> > As a welcome side effect, HK_TYPE_DOMAIN then integrates both the set
> > from isolcpus= and cpuset isolated partitions. Housekeeping cpumasks are
> > now modifyable with specific synchronization. A big step toward making
> > nohz_full= also mutable through cpuset in the future.
> > 
> > Changes since v5:
> > 
> > * Add more tags
> > 
> > * Fix leaked destroy_work_on_stack() (Zhang Qiao, Waiman Long)
> > 
> > * Comment schedule_drain_work() synchronization requirement (Tejun)
> > 
> > * s/Revert of/Inverse of (Waiman Long)
> > 
> > * Remove housekeeping_update() needless (for now) parameter (Chen Ridong)
> > 
> > * Don't propagate housekeeping_update() failures beyond allocations (Waiman Long)
> > 
> > * Whitespace cleanup (Waiman Long)
> > 
> > 
> > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> > 	kthread/core-v6
> > 
> > HEAD: 811e87ca8a0a1e54eb5f23e71896cb97436cccdc
> > 
> > Happy new year,
> > 	Frederic
> 
> I don't see any major issue with this v6 version. There may be some minor
> issues that can be cleaned up later. Now the issue is which tree should this
> series go to as it touches a number of different subsystems with different
> maintainers.

It indeed crosses many subsystems. I would be fine if anybody takes it but
nobody volunteered so far.

The main purpose is to fix kthreads affinity (HK_TYPE_DOMAIN handling cpuset is
a bonus). And since I made the pull request myself to Linus when I introduced
kthreads managed affinity, I guess I could reiterate with this patchset. I
already pushed it to linux-next.

But if anybody wants to pull that to another tree, that's fine, just tell me
so that we synchronize to avoid duplication on linux-next.

Thanks.

-- 
Frederic Weisbecker
SUSE Labs



More information about the linux-arm-kernel mailing list