[Nouveau] How to check for proper MSI support?

Brian Becker brian.johnathan.b at gmail.com
Sat Jul 5 16:04:18 PDT 2014


Bjorn,

I went ahead and sent a report to
https://bugzilla.kernel.org/show_bug.cgi?id=79531. It does not appear
that my system supports APIC/LAPIC, from the dmesg logs which claim
that APIC is hardware disabled or not available. Perhaps the BIOS is
allowed to disable it, or is required to enable it, and the BIOS does
indeed predate the installed CPU.

Thanks,
Brian Becker

On Sat, Jul 5, 2014 at 6:21 PM, Bjorn Helgaas <bhelgaas at google.com> wrote:
> On Thu, Jul 3, 2014 at 10:32 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> So let me get this straight -- you're suggesting I add a quirk for
>> every PCI chipset that doesn't support MSI? There are probably
>> hundreds of these... anything made before 1999 or so, and probably a
>> bunch since then too. There _has_ to be a way to do this generically.
>> Is the PCI spec version anywhere in the root hub?
>>
>> Perhaps we can check if every bridge on the way to the CPU has the MSI
>> capability (including the root hub)? (And naturally _that_ won't
>> work... on my sandybridge laptop, the host bridge doesn't have the MSI
>> cap but the system most definitely supports MSI.)
>>
>> Adding Bjorn... perhaps you know? Some of the info has been stripped
>> out by now, you can see the full lspci -vvvxxx at
>> http://marc.info/?l=linux-pci&m=140443441730503&w=2
>
> Huh, this stinks.  We don't really have a good way of figuring out
> whether the system chipset supports MSI.  The ACPI FADT "MSI Not
> Supported" bit (ACPI_FADT_NO_MSI) was added to the ACPI v3.0b spec in
> October 2006, so that won't help the systems that predate that or
> don't have ACPI.
>
> We have quirks for some Serverworks, ATI, and VIA chipsets that
> basically do the same as booting with "pci=nomsi".  But as you say,
> it's unreasonable to add quirks for all old systems.
>
> Brian, can you open a report at http://bugzilla.kernel.org and attach
> a complete dmesg log, /proc/cpuinfo contents, and "lspci -vvv" output?
>
> If I understand correctly, you have a P200MMX with a 430FX chipset.
> I'm not a hardware guy, but sounds like that might be a 200MHz Pentium
> with MMX (P54CS), which does have an integrated LAPIC, according to
> wikipedia.
>
> From the PCI host bridge's perspective, an incoming MSI just looks
> like a normal DMA write.  As long as that write reaches the CPU LAPIC,
> it should work fine.  There's not really any specific MSI support
> required, except to route the incoming write to the CPU LAPIC.  So
> it's possible that a bridge designed before MSI was added to the PCI
> spec might be able to support MSI.
>
> But I don't know how much value there is in MSI on such old systems.
> Maybe we could default to disabling MSI on BIOS dates before 1998 or
> something.
>
> Bjorn


More information about the Nouveau mailing list