All of lore.kernel.org
 help / color / mirror / Atom feed
From: Naman Jain <namjain@linux.microsoft.com>
To: Michael Kelley <mhklinux@outlook.com>,
	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" <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: "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-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [PATCH v3 1/3] x86/hyperv: Set irq_retrigger for root partition PCI/MSI irqchip
Date: Tue, 8 Sep 2026 11:13:09 +0530	[thread overview]
Message-ID: <404f5574-1f46-48bd-b5d4-a13fd70ffc0a@linux.microsoft.com> (raw)
In-Reply-To: <SN6PR02MB41570E8F17B6A78AD607F91CD4B22@SN6PR02MB4157.namprd02.prod.outlook.com>



On 9/8/2026 1:23 AM, Michael Kelley wrote:
> From: Naman Jain <namjain@linux.microsoft.com> Sent: Sunday, September 6, 2026 11:51 PM
>>
>> The Hyper-V root partition vPCI MSI irqchip lost its irq_retrigger()
>> callback when it was converted to msi_create_parent_irq_domain(). The
>> callback was present on the original irqchip and was dropped during that
>> conversion.
>>
>> On CPU hot-unplug fixup_irqs() migrates the interrupts which are affine to
>> the outgoing CPU to a new target. If an interrupt still has its pending bit
>> set in the outgoing CPU's IRR at that point, fixup_irqs() resends it on the
>> new target through the irqchip's irq_retrigger() callback. As the root
>> partition PCI/MSI chip no longer provides that callback, the pending
>> interrupt is silently dropped, which can result in lost interrupts, stalls
>> and "No irq handler for vector" messages during CPU hotplug.
>>
>> Restore irq_chip_retrigger_hierarchy() as the irq_retrigger() callback for
>> the root partition PCI/MSI irqchip, so that a pending interrupt is resent
>> on its new target CPU via the parent x86 vector domain.
>>
>> Fixes: 4691db0704ac ("x86/hyperv: Switch to msi_create_parent_irq_domain()")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Naman Jain <namjain@linux.microsoft.com>
>> ---
>>   arch/x86/hyperv/irqdomain.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/x86/hyperv/irqdomain.c b/arch/x86/hyperv/irqdomain.c
>> index b3ad50a874dca..1e273d7d6c5b3 100644
>> --- a/arch/x86/hyperv/irqdomain.c
>> +++ b/arch/x86/hyperv/irqdomain.c
>> @@ -304,6 +304,7 @@ static struct irq_chip hv_pci_msi_controller = {
>>   	.irq_ack		= irq_chip_ack_parent,
>>   	.irq_compose_msi_msg	= hv_irq_compose_msi_msg,
>>   	.irq_set_affinity	= irq_chip_set_affinity_parent,
>> +	.irq_retrigger		= irq_chip_retrigger_hierarchy,
>>   };
> 
> There's a slight discrepancy compared with the guest pci-hyperv.c driver,
> where setting the .irq_retrigger function is done dynamically in
> hv_pcie_init_dev_msi_info() instead of statically.  The parallel here would
> be to set it in hv_init_dev_msi_info(). But given that Patch 3 of series
> removes setting .irq_retrigger in both cases, the discrepancy shouldn't
> really matter.
> 
> If there's a reason to prefer one approach vs. the other, I don't know
> what that reason is.
> 
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>

This change should be done for the outermost chip, i.e. in
hv_init_dev_msi_info(). With change 2, it won't matter, but patch 2 is
not being back ported. So, I'll fix it.

Regards,
Naman

> 
>>
>>   static bool hv_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
>> --
>> 2.43.0
>>
> 


  reply	other threads:[~2026-09-08  5:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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  7:05   ` sashiko-bot
2026-09-07 19:53   ` Michael Kelley
2026-09-08  5:43     ` Naman Jain [this message]
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=404f5574-1f46-48bd-b5d4-a13fd70ffc0a@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.