Re: [PATCH 2/4] x86, numa: Do not adjust start/end for early_node_mem()

From: Yinghai Lu
Date: Sat Feb 19 2011 - 23:17:19 EST


On Sat, Feb 19, 2011 at 8:03 PM, David Rientjes <rientjes@xxxxxxxxxx> wrote:
> On Fri, 18 Feb 2011, Yinghai Lu wrote:
>
>> Index: linux-2.6/arch/x86/mm/numa_64.c
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/mm/numa_64.c
>> +++ linux-2.6/arch/x86/mm/numa_64.c
>> @@ -164,14 +164,9 @@ static void * __init early_node_mem(int
>>       unsigned long mem;
>>
>>       /*
>> -      * put it on high as possible
>> -      * something will go with NODE_DATA
>> +      * memblock find will follow top-down, so don't need to adjust
>> +      *   start anymore
>>        */
>> -     if (start < (MAX_DMA_PFN<<PAGE_SHIFT))
>> -             start = MAX_DMA_PFN<<PAGE_SHIFT;
>> -     if (start < (MAX_DMA32_PFN<<PAGE_SHIFT) &&
>> -         end > (MAX_DMA32_PFN<<PAGE_SHIFT))
>> -             start = MAX_DMA32_PFN<<PAGE_SHIFT;
>>       mem = memblock_x86_find_in_range_node(nodeid, start, end, size, align);
>>       if (mem != MEMBLOCK_ERROR)
>>               return __va(mem);
>>
>
> The old code guarantees that the range is from a single zone, and even
> though memblock may be top -> down, it seems like there would be
> configurations where this would still be an issue (perhaps simulating it
> with numa=fake for testing?) if it crosses the boundary.

memblock_x86_find_in_range_node() will go over with early_node_map[].
so it will always can get right on node allocation.

Thanks

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