Re: [PATCH]PCI:disable resource decode in PCI BAR detection

From: Robert Hancock
Date: Fri Sep 14 2007 - 19:54:23 EST


Ivan Kokshaysky wrote:
On Fri, Sep 14, 2007 at 08:30:59AM -0600, Robert Hancock wrote:
Do you have an example of specific hardware that exhibits this problem?

Well, first two results of google search for "disable bar when sizing":
http://lkml.org/lkml/2002/12/21/95
http://lkml.org/lkml/2002/12/20/110

In the first one, Linus talks about a USB controller whose SMM code chokes on the BAR being disabled. That explanation seems odd to me. If it chokes on the BAR disabled, how doesn't it choke on the BAR being moved to a different location, which is unavoidable during probing?

Also, I think we do USB handoff from the BIOS much earlier than we used to, which likely prevents these issues.

In the second one, he mentions that "So the secondary rule to "don't turnoff MEM or IO accesses" is "never allocate real PCI BAR resources at the top of memory". Well, unfortunately, the second one isn't possible to meet given that we have boards with the MMCONFIG up there, so disabling the decode is the only thing we can do. That whole discussion was also based on the fact that it wasn't necessary to solve problems. This is no longer a theoretical problem. We now have real problems that we need this in order to solve.


So far after a similar patch has been in -mm for months there have been no reports of any such problems.

You cannot compare user base of -mm and release kernels. Also, note
that we're talking about maybe 0.01% of systems running Linux.
And similar patch appeared in various trees several times over the last
decade and every time it had to be reverted.

This isn't guaranteed to help. I don't think it is only integrated graphics that could cause this problem, I think that an add-on PCI Express card can do this as well. Depending on the chipset memory decode rules, any PCI or PCI Express device with a BAR large enough could cause issues.

No, it's impossible for several reasons. Most obvious one is that a PCI-E
bridge does isolate stuff quite nicely.

It's not impossible at all. In fact I'm quite sure (Jesse can confirm) that in the case of the board he was using, it was an add-in graphics card where he saw this problem.

The fact is that in the case of MMCONFIG overlap with PCI BARs, which one takes priority is completely undefined. In the case of this Intel chipset, clearly the PCI Express device connected to the northbridge had higher decode priority than the MMCONFIG aperture.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

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