From: Marc Zyngier <maz@kernel.org>
To: Avi Weiss <thnkslprpt@gmail.com>
Cc: tglx@kernel.org, radu@rendec.net, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] genirq: Resend pending interrupts after handle_simple_irq()
Date: Sun, 01 Nov 2026 09:50:39 +0000 [thread overview]
Message-ID: <86jymw3mog.wl-maz@kernel.org> (raw)
In-Reply-To: <20261101045632.218099-1-thnkslprpt@gmail.com>
On Sun, 01 Nov 2026 04:56:28 +0000,
Avi Weiss <thnkslprpt@gmail.com> wrote:
>
> Commit 2c9e7f857400 ("genirq: Teach handle_simple_irq() to resend an
> in-progress interrupt") records a concurrent interrupt as IRQS_PENDING
> when another CPU is still handling the IRQ. However, handle_simple_irq()
> does not consume the pending state after the first handler completes,
> so an interrupt arriving during an affinity change can be lost.
>
This commit message isn't quite accurate.
"Consuming" has a particular meaning for edge-triggered interrupts,
and indicates that the interrupt is not pending anymore. Here, the bug
is that we don't check for the race after the initial handling, and
while the interrupt is still pending (hence not really lost), the
signalling is the missing part.
> Check IRQS_PENDING after handle_irq_event() and request a resend, as
> handle_fasteoi_irq() already does.
And then this sentence makes perfect sense.
>
> Fixes: 2c9e7f857400 ("genirq: Teach handle_simple_irq() to resend an in-progress interrupt")
> Signed-off-by: Avi Weiss <thnkslprpt@gmail.com>
> ---
>
> Related 2025 patch/review: https://lore.kernel.org/r/20250708173404.1278635-2-maz@kernel.org
> kernel/irq/chip.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> index de754db414d1..4a131dd72196 100644
> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -626,6 +626,8 @@ void handle_simple_irq(struct irq_desc *desc)
>
> kstat_incr_irqs_this_cpu(desc);
> handle_irq_event(desc);
> + if (unlikely(desc->istate & IRQS_PENDING))
> + check_irq_resend(desc, false);
> }
> EXPORT_SYMBOL_GPL(handle_simple_irq);
Other than the nits above:
Reviewed-by: Marc Zyngier <maz@kernel.org>
M.
--
Without deviation from the norm, progress is not possible.
prev parent reply other threads:[~2026-11-01 9:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-01 4:56 Avi Weiss
2026-11-01 9:50 ` Marc Zyngier [this message]
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=86jymw3mog.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=radu@rendec.net \
--cc=tglx@kernel.org \
--cc=thnkslprpt@gmail.com \
/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 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®