Le jeu. 7 mars 2024, 09:39, Jan Beulich <[email protected]> a écrit :
> On 06.03.2024 18:28, Sébastien Chaumat wrote: > > Reasoning backward (using a kernel without the pinctrl_amd driver to > >> ensure xen only is at stake) : > >> checking the diff in IOAPIC between bare metal and xen (IRQ7 is on > >> pin07 on APIC ) > >> > >> using kernel argument : apic=debug > >> > >> bare metal : > >> [ 0.715330] fedora kernel: ... APIC VERSION: 81050010 > >> ... > >> [ 0.715433] fedora kernel: pin07, disabled, edge , high, V(00), > >> IRR(0), S(0), physical, D(0000), M(0) > >> > >> xen : > >> [ 2.249582] fedora kernel: ... APIC VERSION: 00000014 > >> ... > >> [ 2.249730] fedora kernel: pin07, disabled, level, low , V(60), > >> IRR(0), S(0), physical, D(0000), M(0) > >> > >> So the APIC table is not the same. > >> > >> As strange as it looks the (IOAPIC 0) pin07 is correctly described by > the > >> APIC in xen but yet differently than in baremetal. > >> But the APIC message comes long after the > >> [ 1.833145] fedora kernel: xen: registering gsi 7 triggering 0 > polarity > >> 1 > >> > >> so I wonder if the APIC pin07 info had any influence. > >> > >> Finally found the fix : adding ioapic_ack=new to xen boot parameters. > > Not only the trackpad is now working but also the ACPI Embedded > Controller > > which is completely disabled. > > Hmm, interesting. From someone else's laptop many years ago I had actually > an indication in the opposite direction: That didn't work because of our > defaulting to new (no directed EOI in sight yet back at that time). I > wonder if overriding the ack method isn't actually just papering over the > underlying actual issue here, whatever that is. IOW with the edge vs level > mismatch addressed I'd hope the override could then be dropped again. > I suppose you refert to : https://xen-devel.narkive.com/1Lbaex65/irq-issues-with-directed-eoi-and-io-apic-ack-methods - I did override the IRQ configuration all allong my debugs (the handler was correctly set to level, yet not all flags were identical between dom0 and bare metal). In the end, with the ioapic_ack=new, I could even leave the wrong edge binding for IRQ7. - besides the touchpad, the ACPI EC was also non functional without forcing ioapic_ack. And in bare metal the EC does a lot of work of during early kernel setup. Sébastien
