Messages in this thread Patch in this message | | | From | qiang.zhang@windrive ... | Subject | [PATCH] workqueue: set the rescuer worker that belong to freezable wq is freezable | Date | Tue, 22 Jun 2021 15:08:59 +0800 |
| |
From: Zqiang <qiang.zhang@windriver.com>
If the rescuer worker belong to freezable wq, when this wq is frozen, the rescuer also need to be frozen.
Signed-off-by: Zqiang <qiang.zhang@windriver.com> --- kernel/workqueue.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 104e3ef04e33..ccd6ee8f3dc6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2476,6 +2476,9 @@ static int rescuer_thread(void *__rescuer) * doesn't participate in concurrency management. */ set_pf_worker(true); + + if (wq->flags & WQ_FREEZABLE) + set_freezable(); repeat: set_current_state(TASK_IDLE); @@ -2504,6 +2507,9 @@ static int rescuer_thread(void *__rescuer) raw_spin_unlock_irq(&wq_mayday_lock); + if (!kthread_should_stop()) + try_to_freeze(); + worker_attach_to_pool(rescuer, pool); raw_spin_lock_irq(&pool->lock); -- 2.17.1
| |