Re: [PATCH v4 0/4] x86/irq: Fix lost interrupts on CPU hot-unplug

From: Naman Jain

Date: Mon Sep 14 2026 - 06:33:47 EST




On 9/14/2026 4:18 AM, Wei Liu wrote:
On Wed, Sep 09, 2026 at 06:44:44AM +0000, Naman Jain wrote:
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 makes a similar change in msi_set_affinity()

Patch 4 then drops the now-redundant irq_retrigger() initializations.
This way, patch 2-4 do not need to be backported.

Changes since v3:
https://lore.kernel.org/all/20260907065129.269262-1-namjain@xxxxxxxxxxxxxxxxxxx/
* Move irq_retrigger setting to hv_init_dev_msi_info() in patch 1
(Michael, Nam)
* Add if-else fallback check in msi_set_affinity() in patch 3 (Michael)
* Break patch 3 into two separate patches, while *keeping review tags*.

Changes since v2:
https://lore.kernel.org/all/20260810090716.2325295-1-namjain@xxxxxxxxxxxxxxxxxxx/
* 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@xxxxxxxxxxxxxxxxxxx/#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 (4):
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: Fall back to irq_chip_retrigger_hierarchy() in
msi_set_affinity()
x86/irq, iommu/amd, x86/hyperv, PCI: Drop redundant irq_retrigger
inits


I checked linux-next next-20260911. This series has not been applied.

This patch series needs to be applied in one go, since patch 4 depends
on patch 1.

I'm fine with carrying this through the hyperv-fixes tree, or let it go
through the x86 tree. Just let me know.

Thanks,
Wei

Hi Wei,
There was some active discussion happening on v2 of this series which has been concluded now. It will bring minor changes. I'll send v5 now, and you or Thomas can pick those changes as per your convenience.

Regards,
Naman

Ref: https://lore.kernel.org/all/87y0d6xpan.ffs@fw13/