Re: [PATCH wq/for-7.3] workqueue: Annotate cb_lock nesting when draining a dead BH pool
From: Sebastian Andrzej Siewior
Date: Wed Aug 19 2026 - 10:19:38 EST
On 2026-08-18 08:47:21 [-1000], Tejun Heo wrote:
…
> The nesting can't deadlock. A pool's bh_worker() runs nested only while the
> pool's CPU is dead, entered from a live pool's bh_worker() on the draining
> CPU, so the ordering is always live to dead. CPU hotplug operations are
> serialized and the drain is synchronous, so the nesting depth never exceeds
> two. Annotate the inner acquisition with SINGLE_DEPTH_NESTING.
This assumes that the pool for the draining is different than the pool
handling the current work item so it works.
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx
While trying to reproduce this I noticed that it is possible to schedule
a bh worker on a different CPU than current.
Sebastian