Re: [PATCH] workqueue: respect isolated cpus when queueing an unbound work

From: Tejun Heo
Date: Sat Oct 21 2017 - 11:49:59 EST


On Fri, Oct 20, 2017 at 12:44:06AM +0300, Tal Shorer wrote:
> Initialize wq_unbound_cpumask to exclude cpus that were isolated by
> the cmdline's isolcpus parameter.
>
> Signed-off-by: Tal Shorer <tal.shorer@xxxxxxxxx>
> ---
> kernel/workqueue.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index ca937b0..25b351d 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -5546,7 +5546,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_andnot(wq_unbound_cpumask, cpu_possible_mask, cpu_isolated_map);

Don't we also wanna apply the same masking when wq_unbound_cpumask is
being updated after boot?

Thanks.

--
tejun