Re: [PATCH printk v3 2/2] printk/nbcon: Change nbcon_irq_work to IRQ_WORK_LAZY

From: John Ogness

Date: Tue Sep 01 2026 - 06:15:26 EST


On 2026-09-01, John Ogness <john.ogness@xxxxxxxxxxxxx> wrote:
> Change the nbcon_irq_work to be IRQ_WORK_LAZY, thus not raising
> an IRQ upon irq_work queuing. The irq_work is then handled on the
> next kernel tick. This additional delay is acceptable because
> nbcon_irq_work is only responsible for non-emergency deferred
> printing, which is delayed anyway. This has the benefit of not
> needing to raise an IRQ for each printk() call.
>
> On a side note, the Tegra20 and Tegra30 platforms can hang if an
> irq_work IRQ is raised while entering cpuidle states. This problem
> was reproducible by calling printk() while entering cpuidle. So
> this change also provides a workaround for these platforms (as long
> as they are not running tickless).
>
> Link: https://lore.kernel.org/lkml/f3757a75-0ba1-4558-bf57-f19ab7e59a4c@xxxxxxxxxx
> Fixes: 76f258bf3f2a ("printk: nbcon: Introduce printer kthreads")
> Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx>

Sorry, I failed to gather the previous tags:

Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Reviewed-by: Petr Mladek <pmladek@xxxxxxxx>
Tested-by: Jon Hunter <jonathanh@xxxxxxxxxx>