From: "marmarek@invisiblethingslab.com" <marmarek@invisiblethingslab.com>
To: "Woodhouse, David" <dwmw@amazon.co.uk>
Cc: "roger.pau@citrix.com" <roger.pau@citrix.com>,
"bp@alien8.de" <bp@alien8.de>, "x86@kernel.org" <x86@kernel.org>,
"jbeulich@suse.com" <jbeulich@suse.com>,
"xenproject@ymy.be" <xenproject@ymy.be>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/io-apic: fix directed EOI when using AMd-Vi interrupt remapping
Date: Sat, 2 Nov 2024 04:54:27 +0100 [thread overview]
Message-ID: <ZyWicz8YHqFb3hMz@mail-itl> (raw)
In-Reply-To: <3663ba26192a78de2090512c912bff8afc852e5c.camel@amazon.co.uk>
[-- Attachment #1: Type: text/plain, Size: 2875 bytes --]
On Mon, Oct 21, 2024 at 11:43:04AM +0000, Woodhouse, David wrote:
> On Sat, 2024-10-19 at 05:23 +0200, Marek Marczykowski-Górecki wrote:
> > On Fri, Oct 18, 2024 at 10:08:13AM +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@ymy.be>
> > > Suggested-by: David Woodhouse <dwmw@amazon.co.uk>
> > > Fixes: 2ca9fbd739b8 ('AMD IOMMU: allocate IRTE entries instead of using a static mapping')
> > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >
> > I can confirm it fixes touchpad issue on Framework 13 AMD,
> > it works without ioapic_ack=new now, thanks!
> > Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>
> Thanks for testing. But... why did this work with the auto-EOI? That
> *should* have had exactly the same problem, surely?
>
> The problem fixed by this patch is that the directed EOI used the
> actual vector# and *not* the bits that the I/O APIC *thinks* are the
> vector#, which are actually the IRTE index#.
>
> But if you let the CPU do its broadcast EOI then surely *that* is going
> to use the actual vector# too, and have precisely the same problem?
>
> If you use the code prior to this patch, *without* ioapic_ack=new (i.e.
> the mode that was failing), what happens if you do this:
>
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -595,7 +595,7 @@ void setup_local_APIC(void)
> /*
> * Enable directed EOI
> */
> - if ( directed_eoi_enabled )
> + if ( 0 && directed_eoi_enabled )
> {
> value |= APIC_SPIV_DIRECTED_EOI;
> apic_printk(APIC_VERBOSE, "Suppress EOI broadcast on CPU#%d\n",
>
>
> I'm guessing that 'fixes' it too? In which case, it looks like AMD has
> some undocumented hack in between its APIC and I/O APIC to let it
> magically auto-EOI the correct pin somehow?
So, this does _not_ fix the touchpad issue.
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2024-11-02 3:55 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-18 8:08 [PATCH] x86/io-apic: fix directed EOI when using AMd-Vi interrupt remapping Roger Pau Monne
2024-10-19 3:23 ` Marek Marczykowski-Górecki
2024-10-21 11:43 ` Woodhouse, David
2024-11-02 3:54 ` marmarek [this message]
2024-10-21 9:55 ` Alejandro Vallejo
2024-10-21 10:07 ` Andrew Cooper
2024-10-21 10:49 ` Roger Pau Monné
2024-10-21 11:32 ` David Woodhouse
2024-10-21 12:18 ` Alejandro Vallejo
2024-10-21 9:56 ` Alejandro Vallejo
2024-10-21 11:10 ` Andrew Cooper
2024-10-21 11:38 ` Andrew Cooper
2024-10-21 11:49 ` [EXTERNAL] " David Woodhouse
2024-10-21 11:53 ` Andrew Cooper
2024-10-21 12:02 ` David Woodhouse
2024-10-21 14:25 ` Roger Pau Monné
2024-10-21 14:03 ` Roger Pau Monné
2024-10-21 17:00 ` Roger Pau Monné
2024-10-21 17:21 ` Andrew Cooper
2024-10-21 11:57 ` Roger Pau Monné
2024-10-21 12:33 ` Andrew Cooper
2024-10-28 11:02 ` Jan Beulich
2024-10-28 11:05 ` Jan Beulich
2024-10-29 15:56 ` Jan Beulich
2024-10-21 11:34 ` David Woodhouse
2024-10-21 14:06 ` Roger Pau Monné
2024-10-21 14:51 ` Andrew Cooper
2024-10-21 14:54 ` David Woodhouse
2024-10-21 15:00 ` Roger Pau Monné
2024-10-21 15:03 ` Alejandro Vallejo
2024-10-21 15:08 ` Andrew Cooper
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=ZyWicz8YHqFb3hMz@mail-itl \
--to=marmarek@invisiblethingslab.com \
--cc=andrew.cooper3@citrix.com \
--cc=bp@alien8.de \
--cc=dwmw@amazon.co.uk \
--cc=jbeulich@suse.com \
--cc=roger.pau@citrix.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xenproject@ymy.be \
/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.