From: Thomas Gleixner <tglx@kernel.org>
To: "Naman Jain" <namjain@linux.microsoft.com>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
x86@kernel.org, "Joerg Roedel (AMD)" <joro@8bytes.org>,
"Will Deacon" <will@kernel.org>,
"K. Y. Srinivasan" <kys@microsoft.com>,
"Haiyang Zhang" <haiyangz@microsoft.com>,
"Wei Liu" <wei.liu@kernel.org>,
"Dexuan Cui" <decui@microsoft.com>,
"Long Li" <longli@microsoft.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Vasant Hegde <vasant.hegde@amd.com>,
Robin Murphy <robin.murphy@arm.com>,
Rob Herring <robh@kernel.org>,
Shradha Gupta <shradhagupta@linux.microsoft.com>,
Aditya Garg <gargaditya@linux.microsoft.com>,
iommu@lists.linux.dev, linux-hyperv@vger.kernel.org,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 3/3] x86/irq, iommu/amd, PCI: Drop redundant irq_retrigger inits
Date: Wed, 09 Sep 2026 12:24:28 +0200 [thread overview]
Message-ID: <875x0e204j.ffs@fw13> (raw)
In-Reply-To: <20260810090716.2325295-4-namjain@linux.microsoft.com>
On Mon, Aug 10 2026 at 09:07, Naman Jain wrote:
> --- a/arch/x86/kernel/apic/msi.c
> +++ b/arch/x86/kernel/apic/msi.c
> @@ -137,7 +137,7 @@ msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
> * IRR.
> */
> if (lapic_vector_set_in_irr(cfg->vector))
> - irq_data_get_irq_chip(irqd)->irq_retrigger(irqd);
> + irq_chip_retrigger_hierarchy(irqd);
That's broken because irqd points at the vector domain already, so there
is no parent and nothing gets retriggered.
Let's look at the hierarchy when interrupt remapping is enabled:
| --- [DMAR]
[VECTOR] --- | | -- [IOAPIC]
| --- [REMAP] ---| -- [HPET]
| -- [DEVICE MSI]
All outer domains have .irq_set_affinity = msi_domain_set_affinity,
which does:
msi_domain_set_affinity(irqdata, ....)
irqdata->parent->irq_set_affinity(irqdata->parent, ....);
In that case msi_set_affinity() is only reachable for the DMAR domain
and all others (IOAPIC, HPET, DEVICE MSI) end up in the REMAP domain
which handles irq_set_affinity and never ends up in the above code.
In the non-remapping case:
| -- [IOAPIC]
[VECTOR] --- | -- [HPET]
| -- [DEVICE MSI]
In this case the vector domain is the MSI parent domain for all of them
and all outer domains will end up in msi_set_affinity() via
msi_domain_set_affinity().
In any case 'irqd' in msi_set_affinity() will always point to the vector
domain and therefore the exiting code is correct and can't be changed to
retrigger hierarchy as that would see irqd->parent == NULL and do
nothing. Neither will adding a conditional there do anything useful
because the vector domain always has the retrigger callback set.
Thanks,
tglx
next prev parent reply other threads:[~2026-09-09 10:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 9:07 [PATCH v2 0/3] x86/irq: Fix lost interrupts on CPU hot-unplug for Hyper-V PCI/MSI Naman Jain
2026-08-10 9:07 ` [PATCH v2 1/3] PCI: hv: Set irq_retrigger callback for the Hyper-V PCI MSI irqchip Naman Jain
2026-08-10 9:13 ` sashiko-bot
2026-08-17 3:38 ` Michael Kelley
2026-08-17 12:15 ` Naman Jain
2026-08-17 15:30 ` Naman Jain
2026-08-17 17:14 ` Michael Kelley
2026-08-18 5:10 ` Michael Kelley
2026-08-24 0:22 ` Wei Liu
2026-08-10 9:07 ` [PATCH v2 2/3] x86/irq: Use irq_chip_retrigger_hierarchy() in fixup_irqs() Naman Jain
2026-08-10 9:21 ` sashiko-bot
2026-08-18 5:10 ` Michael Kelley
2026-08-18 7:31 ` Naman Jain
2026-08-19 15:59 ` Michael Kelley
2026-08-20 4:47 ` Naman Jain
2026-08-20 4:53 ` Michael Kelley
2026-09-09 9:43 ` Thomas Gleixner
2026-08-10 9:07 ` [PATCH v2 3/3] x86/irq, iommu/amd, PCI: Drop redundant irq_retrigger inits Naman Jain
2026-08-10 9:23 ` sashiko-bot
2026-08-18 5:10 ` Michael Kelley
2026-08-18 7:31 ` Naman Jain
2026-09-09 10:24 ` Thomas Gleixner [this message]
2026-09-10 18:51 ` Michael Kelley
2026-09-11 8:11 ` Thomas Gleixner
2026-09-11 16:32 ` Michael Kelley
2026-09-12 19:06 ` Thomas Gleixner
2026-09-14 10:27 ` 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=875x0e204j.ffs@fw13 \
--to=tglx@kernel.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=gargaditya@linux.microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.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=mingo@redhat.com \
--cc=namjain@linux.microsoft.com \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=shradhagupta@linux.microsoft.com \
--cc=suravee.suthikulpanit@amd.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.