Thread (13 messages) 13 messages, 4 authors, 2020-02-10

Re: RE: Re: "oneshot" interrupt causes another interrupt to be fired erroneously in Haswell system

From: Thomas Gleixner <hidden>
Date: 2020-01-23 13:09:07
Also in: linux-pci, lkml

Sean,

Sean V Kelley [off-list ref] writes:
I looked into it Thomas.  The issue is as you suggested early in the
thread.  If an IRQ arrives at line N of a non-primary IO-APIC and that
line is masked, a new IRQ is generated on the primary IO-APIC/PIC.  

The BIOS setting to address this forwarding is as above Disable INTx
Route to PCH/ICH/SouthBridge. When this bit is set, local INTx messages
received from the PCI-E ports are not routed to legacy PCH - they are
either converted into MSI via the integrated I/OxAPIC (if the I/OxAPIC
mask bit is clear in the appropriate entries) or cause no further
action (when mask bit is set).

This capability is tested and supported fully on Intel platforms.
Thanks for the confirmation.
Once you get to SKX/CLX things change and integrated IOxAPICs in the
IIO module convert legacy PCI Express interrupt messages into MSI
interrupts directly.  Beyond SKX/CLX there are no longer IOxAPICs in
IIO. IOxAPIC is only in the PCH. Devices connected to the
IIO will use native MSI/MSI-x mechanisms.

The problem is with the absolute lack of useful documentation.  That’s
not acceptable.
Yeah.
You recall the work Olaf and Stefan did at SuSE ten years ago (?) on
boot irq quirks and the amount of research they had to do it learn
about the behavior.[4]
Oh yes.
From a Real-Time Linux perspective this is really important to me.  As
we get closer to fully mainlined we need to have this information
readily available with greater usage of threaded irqs in combination
with legacy interrupts on the older platforms.

So I will ensure we actually create useful information pointing to this
behavior either in kernel docs or online as in a white paper or both.
Great.
quoted
As we have already quirks in drivers/pci/quirks.c which handle the
same issue on older chipsets, we really should add one for these kind
of systems to avoid fiddling with the BIOS (which you can, but most
people cannot).
Agreed, and I will follow-up with Kar Hin Ong to get them added.
Much appreciated.

Thanks,

        tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help