Although the unbound workqueue cpumask can be overriden through sysfs, we also want to affine the workqueues when isolcpus= will be reimplemented on top of housekeeping.
Signed-off-by: Frederic Weisbecker <fweis...@gmail.com> Cc: Chris Metcalf <cmetc...@mellanox.com> Cc: Rik van Riel <r...@redhat.com> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Mike Galbraith <efa...@gmx.de> Cc: Ingo Molnar <mi...@kernel.org> Cc: Christoph Lameter <c...@linux.com> Cc: Paul E. McKenney <paul...@linux.vnet.ibm.com> Cc: Wanpeng Li <kernel...@gmail.com> Cc: Luiz Capitulino <lcapitul...@redhat.com> --- include/linux/housekeeping.h | 1 + kernel/workqueue.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/housekeeping.h b/include/linux/housekeeping.h index b1a62544..0959601 100644 --- a/include/linux/housekeeping.h +++ b/include/linux/housekeeping.h @@ -10,6 +10,7 @@ enum hk_flags { HK_FLAG_RCU = (1 << 1), HK_FLAG_MISC = (1 << 2), HK_FLAG_SCHED = (1 << 3), + HK_FLAG_WORKQUEUE = (1 << 4), }; #ifdef CONFIG_CPU_ISOLATION diff --git a/kernel/workqueue.c b/kernel/workqueue.c index ca937b0..256e3cb 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -48,6 +48,7 @@ #include <linux/nodemask.h> #include <linux/moduleparam.h> #include <linux/uaccess.h> +#include <linux/housekeeping.h> #include "workqueue_internal.h" @@ -5546,7 +5547,7 @@ int __init workqueue_init_early(void) WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long)); BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL)); - cpumask_copy(wq_unbound_cpumask, cpu_possible_mask); + cpumask_copy(wq_unbound_cpumask, housekeeping_cpumask(HK_FLAG_WORKQUEUE)); pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC); -- 2.7.4