Re: [PATCH v2] workqueue: warn if delayed_work is queued to an offlined cpu.

From: Tejun Heo
Date: Fri Jan 10 2025 - 13:34:06 EST


On Fri, Jan 10, 2025 at 10:27:11AM +1100, Imran Khan wrote:
> delayed_work submitted to an offlined cpu, will not get executed,
> after the specified delay if the cpu remains offline. If the cpu
> never comes online the work will never get executed.
> checking for online cpu in __queue_delayed_work, does not sound
> like a good idea because to do this reliably we need hotplug lock
> and since work may be submitted from atomic contexts, we would
> have to use cpus_read_trylock. But if trylock fails we would queue
> the work on any cpu and this may not be optimal because our intended
> cpu might still be online.
>
> Putting a WARN_ON_ONCE for an already offlined cpu, will indicate users
> of queue_delayed_work_on, if they are (wrongly) trying to queue
> delayed_work on offlined cpu. Also indicate the problem of using
> offlined cpu with queue_delayed_work_on, in its description.
>
> Signed-off-by: Imran Khan <imran.f.khan@xxxxxxxxxx>

Applied to wq/for-6.13-fixes.

Thanks.

--
tejun