[GIT PULL] workqueue changes for v6.20

From: Tejun Heo

Date: Mon Feb 09 2026 - 14:14:55 EST


Hi Linus,

The following changes since commit c2f2b01b74be8b40a2173372bcd770723f87e7b2:

Merge tag 'i3c/for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux (2025-12-08 11:25:14 +0900)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git tags/wq-for-6.20

for you to fetch changes up to 9cb8b0f289560728dbb8b88158e7a957e2e90a14:

workqueue: replace BUG_ON with panic in panic_on_wq_watchdog (2026-02-07 06:54:42 -1000)

----------------------------------------------------------------
workqueue: Changes for v6.20

- Rework the rescuer to process work items one-by-one instead of
slurping all pending work items in a single pass. As there is only
one rescuer per workqueue, a single long-blocking work item could
cause high latency for all tasks queued behind it, even after memory
pressure is relieved and regular kworkers become available to service
them.

- Add CONFIG_BOOTPARAM_WQ_STALL_PANIC build-time option and
workqueue.panic_on_stall_time parameter for time-based stall panic,
giving systems more control over workqueue stall handling.

- Replace BUG_ON() with panic() in the stall panic path for clearer
intent and more informative output.

----------------------------------------------------------------
Breno Leitao (3):
workqueue: add CONFIG_BOOTPARAM_WQ_STALL_PANIC option
workqueue: add time-based panic for stalls
workqueue: replace BUG_ON with panic in panic_on_wq_watchdog

Lai Jiangshan (3):
workqueue: Make send_mayday() take a PWQ argument directly
workqueue: Process rescuer work items one-by-one using a cursor
workqueue: Process extra works in rescuer on memory pressure

Documentation/admin-guide/kernel-parameters.txt | 11 +-
kernel/workqueue.c | 149 ++++++++++++++++++------
lib/Kconfig.debug | 23 ++++
3 files changed, 148 insertions(+), 35 deletions(-)

Thanks.

--
tejun