Workqueues don't use signals, it (ab)uses TASK_INTERRUPTIBLE to avoid
increasing the loadavg numbers. We've 'recently' introduced TASK_IDLE
for this case:

  80ed87c8a9ca ("sched/wait: Introduce TASK_NOLOAD and TASK_IDLE")

use it.

Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
---
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2249,7 +2249,7 @@ static int worker_thread(void *__worker)
         * event.
         */
        worker_enter_idle(worker);
-       __set_current_state(TASK_INTERRUPTIBLE);
+       __set_current_state(TASK_IDLE);
        spin_unlock_irq(&pool->lock);
        schedule();
        goto woke_up;
@@ -2291,7 +2291,7 @@ static int rescuer_thread(void *__rescue
         */
        rescuer->task->flags |= PF_WQ_WORKER;
 repeat:
-       set_current_state(TASK_INTERRUPTIBLE);
+       set_current_state(TASK_IDLE);
 
        /*
         * By the time the rescuer is requested to stop, the workqueue


Reply via email to