[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <407f7b2b-cb60-4cd6-be4f-8ad335ad2e38@redhat.com>
Date: Tue, 17 Jun 2025 01:00:19 -0400
From: Waiman Long <llong@...hat.com>
To: Chuyi Zhou <zhouchuyi@...edance.com>, tj@...nel.org,
jiangshanlai@...il.com
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH] workqueue: Initialize wq_isolated_cpumask in
workqueue_init_early()
On 6/17/25 12:42 AM, Chuyi Zhou wrote:
> Now when isolcpus is enabled via the cmdline, wq_isolated_cpumask does
> not include these isolated CPUs, even wq_unbound_cpumask has already
> excluded them. It is only when we successfully configure an isolate cpuset
> partition that wq_isolated_cpumask gets overwritten by
> workqueue_unbound_exclude_cpumask(), including both the cmdline-specified
> isolated CPUs and the isolated CPUs within the cpuset partitions.
>
> Fix this issue by initializing wq_isolated_cpumask properly in
> workqueue_init_early().
>
> Fixes: fe28f631fa94 ("workqueue: Add workqueue_unbound_exclude_cpumask() to exclude CPUs from wq_unbound_cpumask")
> Signed-off-by: Chuyi Zhou <zhouchuyi@...edance.com>
> ---
> kernel/workqueue.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index 97f37b5bae669..9f91480758288 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -7767,7 +7767,8 @@ void __init workqueue_init_early(void)
> restrict_unbound_cpumask("workqueue.unbound_cpus", &wq_cmdline_cpumask);
>
> cpumask_copy(wq_requested_unbound_cpumask, wq_unbound_cpumask);
> -
> + cpumask_andnot(wq_isolated_cpumask, cpu_possible_mask,
> + housekeeping_cpumask(HK_TYPE_DOMAIN));
> pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);
>
> unbound_wq_update_pwq_attrs_buf = alloc_workqueue_attrs();
Right, the wq_isolated_cpumask isn't initialized properly. Thank for
fixing that.
Reviewed-by: Waiman Long <longman@...hat.com>
Powered by blists - more mailing lists