[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <846c80f8-b80f-49fd-8a50-3fe8a473b8ec@suse.com>
Date: Fri, 21 Mar 2025 09:00:09 +0100
From: Jürgen Groß <jgross@...e.com>
To: Bjorn Helgaas <helgaas@...nel.org>, Roger Pau Monne <roger.pau@...rix.com>
Cc: linux-kernel@...r.kernel.org, xen-devel@...ts.xenproject.org,
linux-pci@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Bjorn Helgaas <bhelgaas@...gle.com>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>,
x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>
Subject: Re: [PATCH v3 3/3] PCI/MSI: Convert pci_msi_ignore_mask to per MSI
domain flag
On 20.03.25 22:07, Bjorn Helgaas wrote:
> On Wed, Feb 19, 2025 at 10:20:57AM +0100, Roger Pau Monne wrote:
>> Setting pci_msi_ignore_mask inhibits the toggling of the mask bit for both
>> MSI and MSI-X entries globally, regardless of the IRQ chip they are using.
>> Only Xen sets the pci_msi_ignore_mask when routing physical interrupts over
>> event channels, to prevent PCI code from attempting to toggle the maskbit,
>> as it's Xen that controls the bit.
>>
>> However, the pci_msi_ignore_mask being global will affect devices that use
>> MSI interrupts but are not routing those interrupts over event channels
>> (not using the Xen pIRQ chip). One example is devices behind a VMD PCI
>> bridge. In that scenario the VMD bridge configures MSI(-X) using the
>> normal IRQ chip (the pIRQ one in the Xen case), and devices behind the
>> bridge configure the MSI entries using indexes into the VMD bridge MSI
>> table. The VMD bridge then demultiplexes such interrupts and delivers to
>> the destination device(s). Having pci_msi_ignore_mask set in that scenario
>> prevents (un)masking of MSI entries for devices behind the VMD bridge.
>>
>> Move the signaling of no entry masking into the MSI domain flags, as that
>> allows setting it on a per-domain basis. Set it for the Xen MSI domain
>> that uses the pIRQ chip, while leaving it unset for the rest of the
>> cases.
>>
>> Remove pci_msi_ignore_mask at once, since it was only used by Xen code, and
>> with Xen dropping usage the variable is unneeded.
>>
>> This fixes using devices behind a VMD bridge on Xen PV hardware domains.
>>
>> Albeit Devices behind a VMD bridge are not known to Xen, that doesn't mean
>> Linux cannot use them. By inhibiting the usage of
>> VMD_FEAT_CAN_BYPASS_MSI_REMAP and the removal of the pci_msi_ignore_mask
>> bodge devices behind a VMD bridge do work fine when use from a Linux Xen
>> hardware domain. That's the whole point of the series.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@...rix.com>
>> Reviewed-by: Thomas Gleixner <tglx@...utronix.de>
>> Acked-by: Juergen Gross <jgross@...e.com>
>
> Acked-by: Bjorn Helgaas <bhelgaas@...gle.com>
>
> I assume you'll merge this series via the Xen tree. Let me know if
> otherwise.
I've pushed the series to the linux-next branch of the Xen tree.
Juergen
Download attachment "OpenPGP_0xB0DE9DD628BF132F.asc" of type "application/pgp-keys" (3684 bytes)
Download attachment "OpenPGP_signature.asc" of type "application/pgp-signature" (496 bytes)
Powered by blists - more mailing lists