summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Weisbecker <frederic@kernel.org>2025-12-22 00:55:49 +0100
committerFrederic Weisbecker <frederic@kernel.org>2026-02-03 15:23:34 +0100
commitf5c145ae4f26c25b853f059f1aa14a46f4e9f1ab (patch)
tree0746e2282ac11777c8a43959a4279e0eea960f3f
parent23f09dcc0a0fa3b4e48516bdea1c90223dfb3d6c (diff)
downloadlinux-f5c145ae4f26c25b853f059f1aa14a46f4e9f1ab.tar.gz
linux-f5c145ae4f26c25b853f059f1aa14a46f4e9f1ab.zip
cpuset: Propagate cpuset isolation update to timers through housekeeping
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 <frederic@kernel.org>
-rw-r--r--kernel/cgroup/cpuset.c3
-rw-r--r--kernel/sched/isolation.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 6309ec5d7b2a..080fa2fb10c7 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1485,9 +1485,6 @@ static void update_isolation_cpumasks(void)
ret = housekeeping_update(isolated_cpus);
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 5bcb6d760f20..a30d19b641f7 100644
--- a/kernel/sched/isolation.c
+++ b/kernel/sched/isolation.c
@@ -149,9 +149,13 @@ int housekeeping_update(struct cpumask *isol_mask)
pci_probe_flush_workqueue();
mem_cgroup_flush_workqueue();
vmstat_flush_workqueue();
+
err = workqueue_unbound_housekeeping_update(housekeeping_cpumask(HK_TYPE_DOMAIN));
WARN_ON_ONCE(err < 0);
+ err = tmigr_isolated_exclude_cpumask(isol_mask);
+ WARN_ON_ONCE(err < 0);
+
kfree(old);
return 0;