Thread (54 messages) 54 messages, 8 authors, 2012-06-06

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help