diff options
| author | Lai Jiangshan <jiangshan.ljs@antgroup.com> | 2025-11-21 22:57:16 +0800 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2025-11-21 09:45:36 -1000 |
| commit | 6d90215dc015f7630589b29fc2c771bce16a4c96 (patch) | |
| tree | 0099bb6fa953c422f2e1e5ca20ef55434783229b /tools/lib/python/kdoc/kdoc_files.py | |
| parent | 7b05c90b3302cf3d830dfa6f8961376bcaf43b94 (diff) | |
workqueue: Don't rely on wq->rescuer to stop rescuer
The commit1 def98c84b6cd ("workqueue: Fix spurious sanity check failures
in destroy_workqueue()") tries to fix spurious sanity check failures by
stopping send_mayday() via setting wq->rescuer to NULL.
But it fails to stop the pwq->mayday_node requeuing in the rescuer, and
the commit2 e66b39af00f4 ("workqueue: Fix pwq ref leak in
rescuer_thread()") fixes it by checking wq->rescuer which is the result
of commit1.
Both commits together really fix spurious sanity check failures caused
by the rescuer, but they both use a convoluted method by relying on
wq->rescuer state rather than the real count of work items.
Actually __WQ_DESTROYING and drain_workqueue() together already stop
send_mayday() by draining all the work items and ensuring no new work
item requeuing.
And the more proper fix to stop the pwq->mayday_node requeuing in the
rescuer is from commit3 4f3f4cf388f8 ("workqueue: avoid unneeded
requeuing the pwq in rescuer thread") and renders the checking of
wq->rescuer in commit2 unnecessary.
So __WQ_DESTROYING, drain_workqueue() and commit3 together fix spurious
sanity check failures introduced by the rescuer.
Just remove the convoluted code of using wq->rescuer.
Signed-off-by: Lai Jiangshan <jiangshan.ljs@antgroup.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/kdoc_files.py')
0 files changed, 0 insertions, 0 deletions
