* Re: [PATCH 0/2] Re-raise irq_work lost during Xen suspend
[not found] <1793977074.8631fc262581453bbf619ec5b2062170.1a1b15dc430000403d@vates.tech>
@ 2026-11-06 15:36 ` Sebastian Andrzej Siewior
0 siblings, 0 replies; only message in thread
From: Sebastian Andrzej Siewior @ 2026-11-06 15:36 UTC (permalink / raw)
To: Julian Vetter
Cc: xen-devel, linux-kernel, Juergen Gross, Thomas Gleixner,
Peter Zijlstra, Stefano Stabellini, Oleksandr Tyshchenko,
Mathieu Desnoyers, Jiayuan Chen, Masami Hiramatsu (Google),
Vineeth Pillai (Google),
Adrian Hunter
On 2026-11-06 15:57:40 [+0100], Julian Vetter wrote:
> We hit this issue with an Ubuntu 26.04 cloudimage guests (7.0 based
> kernel with the 8250 as an nbcon console) on XCP-ng 8.3 / Xen 4.17. With
> a kernel commandline adding two consoles, i.e., 'console=ttyS1
> console=ttyS0'. During a live migration on that setup the printk()s from
> gnttab_resume() and xen_irq_resume() queue nbcon_irq_work while the APIC
> is disabled. Thus the list transitions from empty to non-empty, but
> doesn't receive the IPI to empty the list again. Afterwards the list
> stays non-empty, so the IPI never fires and all irq_work piles up.
>
> The Commit 560f4deda327 ("printk/nbcon: Change nbcon_irq_work to
> IRQ_WORK_LAZY") removed this particular issue because declaring the IRQ
> work to be lazy, causes the timer interrupt to trigger the irq work
> instead. But any other non-lazy irq_work queued in that window is still
> lost the same way and will cause the list to fill up without being
> handled.
Adrian has this:
https://lore.kernel.org/all/20261102074039.26983-2-adrian.hunter@intel.com/
I sort of asked for flush on suspend but Adrian pointed out the NMI
problem.
Looking at #1, you could probably limit it to a nop on
!arch_irq_work_has_interrupt(). The tick should not be disabled if
irq_work_needs_cpu() returns true (you don't add anything).
And lazy items get handled via irq_work_tick() anyway. This make me
think if it gets any easier if we handle both in irq_work_tick(). On x86
raised_list is evaluated anyway so by dropping
arch_irq_work_has_interrupt() we would avoid the APIC check and handle
list in this rare case. If the IRQ-work is working then the list remains
empty.
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
Sebastian
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-06 15:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1793977074.8631fc262581453bbf619ec5b2062170.1a1b15dc430000403d@vates.tech>
2026-11-06 15:36 ` [PATCH 0/2] Re-raise irq_work lost during Xen suspend Sebastian Andrzej Siewior
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®