Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first
From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-06-05 05:04:59
Also in:
lkml
On Mon, Jun 4, 2012 at 9:50 PM, Bjorn Helgaas [off-list ref] wrote:
On Mon, Jun 4, 2012 at 7:37 PM, Yinghai Lu [off-list ref] wrote:quoted
On Sun, Jun 3, 2012 at 6:05 PM, Bjorn Helgaas [off-list ref] wrote:quoted
On Fri, Jun 1, 2012 at 4:30 PM, Yinghai Lu [off-list ref] wrote:quoted
On Tue, May 29, 2012 at 1:50 PM, H. Peter Anvin [off-list ref] wrote:quoted
The bus-side address space should not be more than 32 bits no matter what. As Bjorn indicates, you seem to be mixing up bus and cpu addresses all over the place.please check update patches that is using converted pci bus address for boundary checking.What problem does this fix? There's significant risk that this allocation change will make us trip over something, so it must fix something to make it worth considering.If we do not enable that, we would not find the problem.Sorry, that didn't make any sense to me. I'm hoping you will point us to a bug report that is fixed by this patch.
current it only help Steve's test case.
quoted
On one my test setup that _CRS does state 64bit resource range, but when I clear some device resource manually and let kernel allocate high, just then find out those devices does not work with drivers. It turns out _CRS have more big range than what the chipset setting states. with fixing in BIOS, allocate high is working now on that platform.I didn't understand this either, sorry. Are you saying that this patch helps us work around a BIOS defect?
Help us find out one BIOS defect.
quoted
yeah, how about pci=alloc_high and default to disabled ?I was actually thinking of something more specific, e.g., a way to place one device at an exact address. I've implemented that a couple times already for testing various things. But maybe a more general option like "pci=alloc_high" would make sense, too.
yeah.
....
Linux has a long history of allocating bottom-up. Windows has a long history of allocating top-down. You're proposing a third alternative, allocating bottom-up starting at 4GB for 64-bit BARs. If we change this area, I would prefer something that follows Windows because I think it will be closer to what's been tested by Windows. Do you think your alternative is better?
hope we can figure out how windows is making it work. Steve, Can you check if Windows is working with your test case ? If it works, we may try do the same thing from Linux, so you will not need to append "pci=nocrs pci=alloc_high"... Thanks Yinghai