From: Naman Jain <namjain@linux.microsoft.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
Wei Liu <wei.liu@kernel.org>,
"K . Y . Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Dexuan Cui <decui@microsoft.com>
Cc: "Michael Kelley" <mhklinux@outlook.com>,
"Long Li" <longli@microsoft.com>,
"Nam Cao" <namcao@linutronix.de>,
"Joerg Roedel" <joro@8bytes.org>,
"Suravee Suthikulpanit" <suravee.suthikulpanit@amd.com>,
"Vasant Hegde" <vasant.hegde@amd.com>,
"Will Deacon" <will@kernel.org>,
"Robin Murphy" <robin.murphy@arm.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Kees Cook" <kees@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Radu Rendec" <radu@rendec.net>,
"Sean Christopherson" <seanjc@google.com>,
"Kai Huang" <kai.huang@intel.com>,
"Dmitry Ilvokhin" <d@ilvokhin.com>,
"Shradha Gupta" <shradhagupta@linux.microsoft.com>,
"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
"Thierry Reding" <treding@nvidia.com>,
"Jiri Wiesner" <jwiesner@suse.de>,
"Daniel J Blueman" <daniel@quora.org>,
linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
iommu@lists.linux.dev, linux-pci@vger.kernel.org
Subject: [PATCH v3 0/3] x86/irq: Fix lost interrupts on CPU hot-unplug
Date: Mon, 7 Sep 2026 06:51:26 +0000 [thread overview]
Message-ID: <20260907065129.269262-1-namjain@linux.microsoft.com> (raw)
On CPU hot-unplug, fixup_irqs() re-injects interrupts that are still
pending in the outgoing CPU's IRR via the irqchip's irq_retrigger()
callback. The Hyper-V root partition PCI/MSI irqchip lost that callback
when it was converted to msi_create_parent_irq_domain(), so such a
pending interrupt is silently dropped, leading to lost interrupts, stalls
and "No irq handler for vector" messages.
Patch 1 is the minimal, backportable fix (Fixes:/Cc: stable) that restores
irq_chip_retrigger_hierarchy() on the Hyper-V root partition PCI/MSI chip.
The equivalent guest pci-hyperv.c fix from the previous version is already
merged, so it is dropped here.
Patch 2 then switches fixup_irqs() to have a fallback call to
irq_chip_retrigger_hierarchy() directly, if a chip does not define
irq_retrigger callback.
Patch 3 drops the now-redundant irq_retrigger() initializations.
This way, patch 2 and 3 do not need to be backported.
Changes since v2:
https://lore.kernel.org/all/20260810090716.2325295-1-namjain@linux.microsoft.com/
* Add a backportable fix for Hyper-V root partition irqchip (Wei)
* Add a check for custom irq_retrigger implementations and add direct
irq_chip_retrigger_hierarchy() calls as a fallback if it is not
defined by a chip. (Sashiko, Michael)
* Removed local loop variable change, and continue using the irq_desc
accessor function (Michael)
* Did not pick "Acked-by: Manivannan Sadhasivam" as it was on v1, and v3
is a functionally different to some extent, specially patch 2.
Requesting you to please review again.
Changes since v1:
https://lore.kernel.org/all/20260728135117.2888175-1-namjain@linux.microsoft.com/#t
* Added Review tags
* Adding minor clarification in commit msg of patch 2 (Shradha)
Original RFC: https://lore.kernel.org/all/87y0f3jhd6.ffs@fw13/
Naman Jain (3):
x86/hyperv: Set irq_retrigger for root partition PCI/MSI irqchip
x86/irq: Fall back to irq_chip_retrigger_hierarchy() in fixup_irqs()
x86/irq, iommu/amd, x86/hyperv, PCI: Drop redundant irq_retrigger
inits
arch/x86/kernel/apic/io_apic.c | 2 --
arch/x86/kernel/apic/msi.c | 4 +---
arch/x86/kernel/hpet.c | 1 -
arch/x86/kernel/irq.c | 19 +++++++++++--------
drivers/iommu/amd/init.c | 1 -
drivers/pci/controller/pci-hyperv.c | 1 -
6 files changed, 12 insertions(+), 16 deletions(-)
base-commit: af5f12805e5cefa4fe68d6127c7e1fb78cd5535c
--
2.43.0
next reply other threads:[~2026-09-07 6:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 6:51 Naman Jain [this message]
2026-09-07 6:51 ` [PATCH v3 1/3] x86/hyperv: Set irq_retrigger for root partition PCI/MSI irqchip Naman Jain
2026-09-07 7:05 ` sashiko-bot
2026-09-07 19:53 ` Michael Kelley
2026-09-08 5:43 ` Naman Jain
2026-09-08 6:25 ` Nam Cao
2026-09-08 6:27 ` Naman Jain
2026-09-07 6:51 ` [PATCH v3 2/3] x86/irq: Fall back to irq_chip_retrigger_hierarchy() in fixup_irqs() Naman Jain
2026-09-07 7:00 ` sashiko-bot
2026-09-07 13:12 ` Thomas Gleixner
2026-09-07 19:54 ` Michael Kelley
2026-09-07 6:51 ` [PATCH v3 3/3] x86/irq, iommu/amd, x86/hyperv, PCI: Drop redundant irq_retrigger inits Naman Jain
2026-09-07 7:00 ` sashiko-bot
2026-09-07 13:13 ` Thomas Gleixner
2026-09-07 19:54 ` Michael Kelley
2026-09-08 5:43 ` Naman Jain
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=20260907065129.269262-1-namjain@linux.microsoft.com \
--to=namjain@linux.microsoft.com \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=christophe.jaillet@wanadoo.fr \
--cc=d@ilvokhin.com \
--cc=daniel@quora.org \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=jwiesner@suse.de \
--cc=kai.huang@intel.com \
--cc=kees@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=longli@microsoft.com \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=namcao@linutronix.de \
--cc=radu@rendec.net \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=seanjc@google.com \
--cc=shradhagupta@linux.microsoft.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=tglx@kernel.org \
--cc=treding@nvidia.com \
--cc=vasant.hegde@amd.com \
--cc=wei.liu@kernel.org \
--cc=will@kernel.org \
--cc=x86@kernel.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.