]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
workqueue: Show in-flight work item duration in stall diagnostics
authorBreno Leitao <leitao@debian.org>
Thu, 5 Mar 2026 16:15:39 +0000 (08:15 -0800)
committerTejun Heo <tj@kernel.org>
Thu, 5 Mar 2026 17:27:48 +0000 (07:27 -1000)
commite8e14ac7cfe437b896838e7f7d07c573965b4e4e
tree3960fd8278b437a8c6fdc83c0416e4d439eb6546
parent6037160e52d72028da68546fd270a7dcac130d85
workqueue: Show in-flight work item duration in stall diagnostics

When diagnosing workqueue stalls, knowing how long each in-flight work
item has been executing is valuable. Add a current_start timestamp
(jiffies) to struct worker, set it when a work item begins execution in
process_one_work(), and print the elapsed wall-clock time in show_pwq().

Unlike current_at (which tracks CPU runtime and resets on wakeup for
CPU-intensive detection), current_start is never reset because the
diagnostic cares about total wall-clock time including sleeps.

Before: in-flight: 165:stall_work_fn [wq_stall]
After:  in-flight: 165:stall_work_fn [wq_stall] for 100s

Signed-off-by: Breno Leitao <leitao@debian.org>
Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c
kernel/workqueue_internal.h