[openib-general] Help with CONFIG_PCI_MSI in the kernel

Jason Gunthorpe jgunthorpe at obsidianresearch.com
Tue Apr 4 17:58:28 PDT 2006


On Tue, Apr 04, 2006 at 05:19:37PM -0700, Greg KH wrote:

Just as a preface, I whipped this patch up because I have a Asus with
a broken BIOS and I wanted to test with MSI-X on IB cards. It
needs a little more thought before being merged, but the method seemed
relevent given the discussion on Fedora disabling MSI.

> > +#ifdef CONFIG_PCI_MSI
> No #ifdef is needed really, right?

This fixup _only_ enables MSI, if there is no MSI in the kernel then
it can only harm things.

> Wrong coding style :)

Yes, sorry, let me send you something more suitable for merging.

> What's the odds that we don't want to do this for every pci device?  Do
> any of them lie about their capabilities?

This capability is defined in the latest HT IOLink spec. I know that
at least modern AMD64 HT chipsets from ATI and NVidia report the
capability.

The problem with limiting it to only some devices is that the list
grows with every ATI/nVidia chipset rev and I think that keeping
tabs on all the PCI IDs would be difficult.

The risk with this patch is that by enabling MSI mapping at the usual
address of 0xfee00000 may break something the BIOS has setup, but
without it MSI doesn't work at all. Optimally the BIOS would turn it
on and make sure 0xfee00000 is clear, but some don't :<

Alternatively something like this could be used to detect disabled MSI
support (busted BIOS) or absent MSI support (AMD 8131) and then disable
MSI in the kernel.

Jason



More information about the general mailing list