Re: MSI failure on Nvidia nForce

From: Stephen Hemminger
Date: Tue Apr 18 2006 - 14:48:54 EST


On Tue, 18 Apr 2006 14:37:44 -0400
Jeff Garzik <jeff@xxxxxxxxxx> wrote:

> Stephen Hemminger wrote:
> > I got a report of sky2 driver irq test failing on x86_64 using
> > the following configuration. Is this a known problem?
> > Should workaround be done at PCI layer?
> >
> > What the driver does is setup MSI handler, then do a software generated
> > IRQ and check that it was received (similar to tg3). If IRQ test fails
> > it falls back to INTx.
>
> Please describe precisely -how- it fails.
>
> pci_enable_msi() does not fail properly on systems that do not support
> MSI. This is a major unresolved problem that is preventing MSI
> deployment, and causing every driver writer to include a does-MSI-work
> test in their driver.
>
> We need to find a good generic test, or if that fails, adopt an
> ACPI-like rule: whitelist systems with working MSI before $X date, and
> blacklist systems with broken MSI after $X date.
>
> Jeff
>

The message from the driver reported was:

> I'me currently getting a lot of hang up with my computer (x86_64,
> ati,...). I've saw this message in my dmesg :
>
> sky2: 0000:02:00.0: No interupt was generated using MSI, switching to
> INTx mode. Please report this failure to the PCI maintener and include
> system chipset information.

Which means that. pci_enable_msi succeeded, but the IRQ routing was
screwed up.. There maybe more of a BIOS problem on this system because
the IRQ is showing up as edge triggered as well. Edge triggered interrupts
don't work with NAPI.

cat /proc/interrupts
CPU0
0: 333581 IO-APIC-edge timer
1: 1461 IO-APIC-edge i8042
2: 0 XT-PIC cascade
7: 2 IO-APIC-edge ehci_hcd:usb1, NVidia CK804
8: 0 IO-APIC-edge rtc
9: 0 IO-APIC-edge acpi
10: 55872 IO-APIC-edge sky2
11: 21025 IO-APIC-edge libata
15: 49 IO-APIC-edge ide1
NMI: 587
LOC: 333569
ERR: 0
MIS: 0
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/