yinghai at kernel.org
Wed Apr 13 14:23:41 PDT 2011
On 04/13/2011 01:54 PM, Linus Torvalds wrote:
> On Wed, Apr 13, 2011 at 1:48 PM, Yinghai Lu <yinghai at kernel.org> wrote:
>> can you try following change ? it will push gart to 0x80000000
>> diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
>> index 86d1ad4..3b6a9d5 100644
>> --- a/arch/x86/kernel/aperture_64.c
>> +++ b/arch/x86/kernel/aperture_64.c
>> @@ -83,7 +83,7 @@ static u32 __init allocate_aperture(void)
>> * so don't use 512M below as gart iommu, leave the space for kernel
>> * code for safe
>> - addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<20);
>> + addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<21);
> What are all the magic numbers, and why would 0x80000000 be special?
that is the old value when kernel was doing bottom-up bootmem allocation.
> Why don't we write code that just works?
> Or absent a "just works" set of patches, why don't we revert to code
> that has years of testing?
> This kind of "I broke things, so now I will jiggle things randomly
> until they unbreak" is not acceptable.
> Either explain why that fixes a real BUG (and why the magic constants
> need to be what they are), or just revert the patch that caused the
> problem, and go back to the allocation patters that have years of
> Guys, we've had this discussion before, in PCI allocation. We don't do
> this. We tried switching the PCI region allocations to top-down, and
> IT WAS A FAILURE. We reverted it to what we had years of testing with.
> Don't just make random changes. There really are only two acceptable
> models of development: "think and analyze" or "years and years of
> testing on thousands of machines". Those two really do work.
We did do the analyzing, and only difference seems to be:
good one is using 0x80000000
and bad one is using 0xa0000000.
We try to figure out if it needs low address and it happen to work
because kernel was doing bottom up allocation.
More information about the dri-devel