From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
Juergen Gross <jgross@suse.com>,
Thomas Gleixner <tglx@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Stefano Stabellini <sstabellini@kernel.org>,
Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Jiayuan Chen <jiayuan.chen@linux.dev>,
"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
"Vineeth Pillai (Google)" <vineeth@bitbyteword.org>,
Adrian Hunter <adrian.hunter@intel.com>
Subject: Re: [PATCH 0/2] Re-raise irq_work lost during Xen suspend
Date: Fri, 6 Nov 2026 16:36:47 +0100 [thread overview]
Message-ID: <20261106153647.F7ld02De@linutronix.de> (raw)
In-Reply-To: <1793977074.8631fc262581453bbf619ec5b2062170.1a1b15dc430000403d@vates.tech>
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
next prev parent reply other threads:[~2026-11-06 15:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 14:57 [PATCH 0/2] Re-raise irq_work lost during Xen suspend Julian Vetter
2026-11-06 15:01 ` [PATCH 1/2] irq_work: Add irq_work_raise_pending() Julian Vetter
2026-11-06 15:01 ` [PATCH 2/2] xen/manage: Re-raise pending irq_work after suspend Julian Vetter
2026-11-06 15:36 ` Sebastian Andrzej Siewior [this message]
2026-11-09 10:16 ` [PATCH 0/2] Re-raise irq_work lost during Xen suspend Julian Vetter
2026-11-09 10:56 ` Adrian Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261106153647.F7ld02De@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=adrian.hunter@intel.com \
--cc=jgross@suse.com \
--cc=jiayuan.chen@linux.dev \
--cc=julian.vetter@vates.tech \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=oleksandr_tyshchenko@epam.com \
--cc=peterz@infradead.org \
--cc=sstabellini@kernel.org \
--cc=tglx@kernel.org \
--cc=vineeth@bitbyteword.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.