Re: [PATCH] x86/pci: intel bus root res with IOH reading -v2

From: Ingo Molnar
Date: Tue Oct 13 2009 - 03:05:06 EST



* H. Peter Anvin <hpa@xxxxxxxxx> wrote:

> On 10/12/2009 02:45 PM, Bjorn Helgaas wrote:
>
> > For the patch in question, we don't even have a root cause for the
> > bug (or at least, I couldn't decipher it from the changelog).
> > There's a reference to _CRS being wrong, but we don't currently use
> > _CRS for x86 host bridges.
> >
> > But in general, my objection is that even if BIOS provides perfectly
> > valid information about host bridge apertures, the the fact that
> > Linux ignores that information means we have to add this sort of
> > vendor- specific code every time we trip over something. And we're
> > tripping over things quite often.
> >
> > Windows consumes this _CRS information, so while I grant there are
> > certainly BIOS bugs there, I think most of the bugs are actually in
> > Linux.
>
> I think the right policy for most if not all things should be "use the
> BIOS information unless we know better."

My argument is that if we know how to access the hardware and know how
to interpret its state then that is _ALWAYS_ higher quality information
than anything the BIOS tells us.

Basically the BIOS is a second-level fall-back, and the less we have to
use this fall-back in Linux, the better. In many cases we have no other
info but BIOS info - that puts all our eggs into the BIOS basket and we
have to live with that.

And reducing that dependency on the BIOS is what Yinghai's patch is
doing in essence - it adds a higher-grade source of information: reading
the PCI config space directly.

( I make no argument about the specific correctness of the patch - i
just raised the principle and i think we should move in this direction
in general. )

Thanks,

Ingo
--
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/