summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFrederic Weisbecker <frederic@kernel.org>2025-09-30 15:21:33 +0200
committerFrederic Weisbecker <frederic@kernel.org>2026-02-03 15:23:34 +0100
commit29b306c44eb5eefdfa02d6ba1205f479f82fb088 (patch)
treeb8122840ace41270d158f23cadc6e22a466f8b87 /kernel
parentce84ad5e994aea5d41ff47135a71439ad4f54005 (diff)
PCI: Flush PCI probe workqueue on cpuset isolated partition change
The HK_TYPE_DOMAIN housekeeping cpumask is now modifiable at runtime. In order to synchronize against PCI probe works and make sure that no asynchronous probing is still pending or executing on a newly isolated CPU, the housekeeping subsystem must flush the PCI probe works. However the PCI probe works can't be flushed easily since they are queued to the main per-CPU workqueue pool. Solve this with creating a PCI probe-specific pool and provide and use the appropriate flushing API. Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Cc: Marco Crivellari <marco.crivellari@suse.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Waiman Long <longman@redhat.com> Cc: linux-pci@vger.kernel.org
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/isolation.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
index 160b3fcab209..1e4c3154b0a4 100644
--- a/kernel/sched/isolation.c
+++ b/kernel/sched/isolation.c
@@ -8,6 +8,7 @@
*
*/
#include <linux/sched/isolation.h>
+#include <linux/pci.h>
#include "sched.h"
enum hk_flags {
@@ -144,6 +145,7 @@ int housekeeping_update(struct cpumask *isol_mask)
synchronize_rcu();
+ pci_probe_flush_workqueue();
mem_cgroup_flush_workqueue();
vmstat_flush_workqueue();