Re: [PATCH tty 1/1] serial: 8250: Change console_msr_work to IRQ_WORK_LAZY
From: Petr Mladek
Date: Mon Aug 31 2026 - 16:09:17 EST
On Fri 2026-08-28 18:06:52, Sebastian Andrzej Siewior wrote:
> On 2026-08-28 18:04:08 [+0206], John Ogness wrote:
> > For some platforms it is a problem to queue irq_work when entering
> > cpuidle states. Since irq_work is used for deferred MSR handling,
> > any atomic console printing when entering cpuidle states can lead
> > to the affected hardware hanging. Tegra20 and Tegra30 are examples
> > of such platforms. Avoiding raising the irq_work IRQ has shown to
> > circumvent the problem.
>
> > Change the console_msr_work to be IRQ_WORK_LAZY, thus not raising
> > an IRQ upon irq_work queuing. The irq_work is then handled on the
> > next interrupt (worst case, kernel tick).
>
> Not on the next interrupt, on the next jiffies tick. Should you run
> tickless and should the CPU have the tick switch off then it will raise
> the irq-work interrupt anyway.
This seems to be more precise. There is one more scenario. It would
run in a dedicated kthread with PREEMPT_RT.
I hope that nobody would run tickless system on the old
Tegra hardware. So, this change should be good enough in reality.
Anyway, I would prefer to get this "workaround" in for 7.3.
In each case, I would not want to revert the uart 8250 conversion
to nbcon because it did break the Tegra hardware.
Best Regards,
Petr