]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - kernel/sched/isolation.c
Merge branch 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / kernel / sched / isolation.c
index ccb28085b11418f539766b96d32901bf05e0a7f6..9fcb2a695a41289fe490c64a0656300a74fefb99 100644 (file)
@@ -22,9 +22,17 @@ EXPORT_SYMBOL_GPL(housekeeping_enabled);
 
 int housekeeping_any_cpu(enum hk_flags flags)
 {
-       if (static_branch_unlikely(&housekeeping_overridden))
-               if (housekeeping_flags & flags)
+       int cpu;
+
+       if (static_branch_unlikely(&housekeeping_overridden)) {
+               if (housekeeping_flags & flags) {
+                       cpu = sched_numa_find_closest(housekeeping_mask, smp_processor_id());
+                       if (cpu < nr_cpu_ids)
+                               return cpu;
+
                        return cpumask_any_and(housekeeping_mask, cpu_online_mask);
+               }
+       }
        return smp_processor_id();
 }
 EXPORT_SYMBOL_GPL(housekeeping_any_cpu);