diff options
author | 2024-01-16 17:19:27 +0100 | |
---|---|---|
committer | 2024-01-16 08:47:30 -1000 | |
commit | 85f0ab43f9de62a4b9c1b503b07f1c33e5a6d2ab (patch) | |
tree | 3d2f4adf50efcf8735f1a14aefeb7ee00778169d /kernel/workqueue.c | |
parent | tools/workqueue: Add rescuers printing to wq_dump.py (diff) | |
download | wireguard-linux-85f0ab43f9de62a4b9c1b503b07f1c33e5a6d2ab.tar.xz wireguard-linux-85f0ab43f9de62a4b9c1b503b07f1c33e5a6d2ab.zip |
kernel/workqueue: Bind rescuer to unbound cpumask for WQ_UNBOUND
At the time they are created unbound workqueues rescuers currently use
cpu_possible_mask as their affinity, but this can be too wide in case a
workqueue unbound mask has been set as a subset of cpu_possible_mask.
Make new rescuers use their associated workqueue unbound cpumask from
the start.
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to '')
-rw-r--r-- | kernel/workqueue.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 8d9dec14b9bb..ed442cefea7c 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4652,7 +4652,10 @@ static int init_rescuer(struct workqueue_struct *wq) } wq->rescuer = rescuer; - kthread_bind_mask(rescuer->task, cpu_possible_mask); + if (wq->flags & WQ_UNBOUND) + kthread_bind_mask(rescuer->task, wq->unbound_attrs->cpumask); + else + kthread_bind_mask(rescuer->task, cpu_possible_mask); wake_up_process(rescuer->task); return 0; |