workqueue: Convert the idle_timer to a timer + work_struct
authorValentin Schneider <vschneid@redhat.com>
Thu, 12 Jan 2023 16:14:29 +0000 (16:14 +0000)
committerTejun Heo <tj@kernel.org>
Thu, 12 Jan 2023 16:21:49 +0000 (06:21 -1000)
commit3f959aa3b33829acfcd460c6c656d54dfebe8d1e
tree451ccd584ddc4d53aa43b2f8063298d8057fb74e
parent793777bc193b658f01924fd09b388eead26d741f
workqueue: Convert the idle_timer to a timer + work_struct

A later patch will require a sleepable context in the idle worker timeout
function. Converting worker_pool.idle_timer to a delayed_work gives us just
that, however this would imply turning all idle_timer expiries into
scheduler events (waking up a worker to handle the dwork).

Instead, implement a "custom dwork" where the timer callback does some
extra checks before queuing the associated work.

No change in functionality intended.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Reviewed-by: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c