Re: [PATCH] tick/block: Add BLOCK_SOFTIRQ to the hotplug safe mask

From: Sebastian Andrzej Siewior

Date: Thu Sep 17 2026 - 06:09:43 EST


On 2026-09-04 14:45:06 [+0800], Wang Shuaiwei wrote:
> During CPU-hotplug stress testing combined with an I/O
> workload, the following message is observed:
>
> "NOHZ tick-stop error: local softirq work is pending, handler #10!!!"
>
> On CPU offline, ksoftirqd is parked at CPUHP_AP_SMPBOOT_THREADS while
> the CPU still takes interrupts. A block completion raised after that
> point stays pending, and if the dying CPU goes idle before teardown,
> report_idle_softirq() sees it, keeps the tick alive and prints the
> error above.
>
> Such pending block completions on the outgoing CPU are drained later by
> blk_softirq_cpu_dead() (CPUHP_BLOCK_SOFTIRQ_DEAD), so a pending
> BLOCK_SOFTIRQ is harmless here. Add it to SOFTIRQ_HOTPLUG_SAFE_MASK
> like the other teardown-covered vectors.
>
> Signed-off-by: Wang Shuaiwei <wangshuaiwei1@xxxxxxxxxx>

Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>

Should this go via nohz, softirq or block?

Sebastian