From: Philippe Gerum <rpm@xenomai.org>
To: Florian Bezdeka <florian.bezdeka@siemens.com>
Cc: xenomai@xenomai.org, jan.kiszka@siemens.com, henning.schild@siemens.com
Subject: Re: [dovetail][PATCH] x86: pipeline: Fix vector stall after vector error handling
Date: Mon, 08 Nov 2021 08:56:24 +0100 [thread overview]
Message-ID: <87h7cnt6yz.fsf@xenomai.org> (raw)
In-Reply-To: <20211108060011.612786-1-florian.bezdeka@siemens.com>
Florian Bezdeka <florian.bezdeka@siemens.com> writes:
> Whenever an IRQ was handled for a vector being NULL or in one of the
> error states the interrupt was not acknowledged at the APIC. That can
> happen if a vector is cleaned up by one of the device drivers while
> there is still one IRQ in flight.
>
> This has two effects:
> - If the affected vector is re-assigned later, it does not work, the
> IRQ never makes its way to the CPU
> - Interrupts with lower priority are no longer delivered to the CPU
>
> The problem was observed on a quite big Intel XEON machine where some
> vectors / irqs were temporary used and cleaned up and re-assigned
> later.
>
> Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> ---
> arch/x86/kernel/irq_pipeline.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kernel/irq_pipeline.c b/arch/x86/kernel/irq_pipeline.c
> index 48d9959bc11a..63de68141b21 100644
> --- a/arch/x86/kernel/irq_pipeline.c
> +++ b/arch/x86/kernel/irq_pipeline.c
> @@ -239,6 +239,8 @@ void arch_handle_irq(struct pt_regs *regs, u8 vector, bool irq_movable)
> } else {
> desc = __this_cpu_read(vector_irq[vector]);
> if (unlikely(IS_ERR_OR_NULL(desc))) {
> + __ack_APIC_irq();
> +
> if (desc == VECTOR_UNUSED) {
> pr_emerg_ratelimited("%s: %d.%u No irq handler for vector\n",
> __func__, smp_processor_id(),
Ouch. Thanks for digging this. Merged upstream.
--
Philippe.
prev parent reply other threads:[~2021-11-08 7:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-08 6:00 [dovetail][PATCH] x86: pipeline: Fix vector stall after vector error handling Florian Bezdeka
2021-11-08 6:54 ` Jan Kiszka
2021-11-08 7:56 ` Philippe Gerum [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=87h7cnt6yz.fsf@xenomai.org \
--to=rpm@xenomai.org \
--cc=florian.bezdeka@siemens.com \
--cc=henning.schild@siemens.com \
--cc=jan.kiszka@siemens.com \
--cc=xenomai@xenomai.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.