On 12/24/25 8:45 AM, Frederic Weisbecker wrote: > Until now, cpuset would propagate isolated partition changes to > timer migration so that unbound timers don't get migrated to isolated > CPUs. > > Since housekeeping now centralizes, synchronize and propagates isolation > cpumask changes, perform the work from that subsystem for consolidation > and consistency purposes. > > Signed-off-by: Frederic Weisbecker > --- > kernel/cgroup/cpuset.c | 3 --- > kernel/sched/isolation.c | 5 +++++ > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c > index a492d23dd622..25ac6c98113c 100644 > --- a/kernel/cgroup/cpuset.c > +++ b/kernel/cgroup/cpuset.c > @@ -1487,9 +1487,6 @@ static void update_isolation_cpumasks(void) > ret = housekeeping_update(isolated_cpus, HK_TYPE_DOMAIN); > WARN_ON_ONCE(ret < 0); > > - ret = tmigr_isolated_exclude_cpumask(isolated_cpus); > - WARN_ON_ONCE(ret < 0); > - > isolated_cpus_updating = false; > } > > diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c > index d224bca299ed..84a257d05918 100644 > --- a/kernel/sched/isolation.c > +++ b/kernel/sched/isolation.c > @@ -150,7 +150,12 @@ int housekeeping_update(struct cpumask *isol_mask, enum hk_type type) > pci_probe_flush_workqueue(); > mem_cgroup_flush_workqueue(); > vmstat_flush_workqueue(); > + > err = workqueue_unbound_housekeeping_update(housekeeping_cpumask(type)); > + WARN_ON_ONCE(err < 0); > + > + err = tmigr_isolated_exclude_cpumask(isol_mask); > + WARN_ON_ONCE(err < 0); > > kfree(old); > If you are doing "WARN_ON_ONCE() in housekeeping_update(), you don't need to do it in update_isolation_cpumask() to avoid double warnings. Actually, you don't need to return an error code from housekeeping_update() at all. Cheers, Longman