mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3 0/3] x86/irq: Fix lost interrupts on CPU hot-unplug
@ 2026-09-07  6:51 Naman Jain
  2026-09-07  6:51 ` [PATCH v3 1/3] x86/hyperv: Set irq_retrigger for root partition PCI/MSI irqchip Naman Jain
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Naman Jain @ 2026-09-07  6:51 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, x86,
	H . Peter Anvin, Wei Liu, K . Y . Srinivasan, Haiyang Zhang,
	Dexuan Cui
  Cc: Michael Kelley, Long Li, Nam Cao, Joerg Roedel,
	Suravee Suthikulpanit, Vasant Hegde, Will Deacon, Robin Murphy,
	Lorenzo Pieralisi, Krzysztof Wilczyński,
	Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Kees Cook,
	Rafael J . Wysocki, Radu Rendec, Sean Christopherson, Kai Huang,
	Dmitry Ilvokhin, Shradha Gupta, Christophe JAILLET,
	Thierry Reding, Jiri Wiesner, Daniel J Blueman, linux-hyperv,
	linux-kernel, iommu, linux-pci

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


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-09-08  6:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-07  6:51 [PATCH v3 0/3] x86/irq: Fix lost interrupts on CPU hot-unplug Naman Jain
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 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 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 13:13   ` Thomas Gleixner
2026-09-07 19:54   ` Michael Kelley
2026-09-08  5:43     ` Naman Jain

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®