[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/io-apic: fix directed EOI when using AMd-Vi interrupt remapping
On Mon, Oct 21, 2024 at 12:34:37PM +0100, David Woodhouse wrote: > On Fri, 2024-10-18 at 10:08 +0200, Roger Pau Monne wrote: > > When using AMD-VI interrupt remapping the vector field in the IO-APIC RTE is > > repurposed to contain part of the offset into the remapping table. > > Previous to > > 2ca9fbd739b8 Xen had logic so that the offset into the interrupt remapping > > table would match the vector. Such logic was mandatory for end of > > interrupt to > > work, since the vector field (even when not containing a vector) is used by > > the > > IO-APIC to find for which pin the EOI must be performed. > > > > Introduce a table to store the EOI handlers when using interrupt remapping, > > so > > that the IO-APIC driver can translate pins into EOI handlers without having > > to > > read the IO-APIC RTE entry. Note that to simplify the logic such table is > > used > > unconditionally when interrupt remapping is enabled, even if strictly it > > would > > only be required for AMD-Vi. > > > > Reported-by: Willi Junga <xenproject@xxxxxx> > > Suggested-by: David Woodhouse <dwmw@xxxxxxxxxxxx> > > Fixes: 2ca9fbd739b8 ('AMD IOMMU: allocate IRTE entries instead of using a > > static mapping') > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > Hm, couldn't we just have used the pin#? Yes, but that would require a much bigger change that what's currently presented here, and for backport purposes I think it's better done this way for fixing this specific bug. Changing to use pin# as the IR offset is worthwhile, but IMO needs to be done separated from the bugfix here. > The AMD IOMMU has per-device IRTE, so you *know* you can just use IRTE > indices 0-23 for the I/O APIC pins. Aren't there IO-APICs with more than 24 pins? Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |