Messages in this thread | | | Date | Sat, 19 Feb 2011 20:03:41 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH 2/4] x86, numa: Do not adjust start/end for early_node_mem() |
| |
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.
| |