Re: [PATCH v1 0/7] PCI: try enabling "pci=use_crs" again

Larry Finger
2010-02-04T04:37:51Z

On 02/03/2010 05:38 PM, Bjorn Helgaas wrote:
> Historically, Linux has assumed a single PCI host bridge, with that bridge
> claiming all the address space left after RAM and legacy devices are taken out.
>
> If the system contains multiple host bridges, we can no longer operate under
> that assumption. We have to know what parts of the address space are claimed
> by each bridge so that when we assign resources to a PCI device, we take them
> from a range claimed by the upstream host bridge.
>
> We use ACPI to enumerate all the PCI host bridges in the system, and part of
> the host bridge description is the "_CRS" (current resource settings" property,
> which lists the address space used by the bridge. On x86, we currently ignore
> most of the _CRS information. This patch series changes this, so we will use
> _CRS to learn about the host bridge windows.
>
> Since most x86 machines with multiple host bridges are relatively new, this
> series only turns this on for machines with BIOS dates of 2010 or newer and for
> a few machines that we know need it.
>
> These apply on 0148b041be4e7, which is the current head of the linux-next
> branch of Jesse's pci-2.6 git tree. The first patch is just Jeff Garrett's
> patch to remove intel_bus.c, so that is only here for people who want to test
> the rest of the patches. I expect Jesse will pick up Jeff's patch via Linus'
> tree.
>
> Gary and Peter have some of these problem machines, so I'm hoping they can give
> this a whirl.
>
> Larry, you reported the problem the last time I tried to turn on "pci=use_crs"
> by default. This series shouldn't affect your machine because it's not in the
> whitelist, but I expect that if you boot the current kernel with "pci=use_crs",
> it should still fail, and if you boot with these patches and "pci=use_crs", it
> *should* work. I know it's a lot to ask, but it'd be great if you had a chance
> to try that.

On my system, "git describe" returns v2.6.33-rc6-146-gc80d292. Patch 1 does not
apply and can be reverted. That is not a problem, but beginning with patch 5,
these do not apply.

In addition to the above, my system now boots with "pci=use_crs", unlike when I
filed the Bugzilla.

What kernel should I be running to test these patches?

Larry