Messages in this thread | | | Date | Mon, 21 Feb 2011 11:44:43 +0100 | From | Tejun Heo <> | Subject | Re: [PATCH 2/4] x86, numa: Do not adjust start/end for early_node_mem() |
| |
On Mon, Feb 21, 2011 at 10:43:18AM +0100, Tejun Heo wrote: > Hello, > > On Sat, Feb 19, 2011 at 08:17:11PM -0800, Yinghai Lu wrote: > > > 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. > > I think always doing top-down allocation should be enough as long as > there's no highmem, which we don't have on 64bit. That said, the > patch description should note the behavior difference. Yinghai, care > to add a bit more detail to the patch description?
Hmmm... thinking more about it, there actually is a difference. Depending on configuration, the new code allows node_data[] to be allocated below DMA boundary. I think we need to keep the first if(). Areas crossing the boundaries is okay, in fact, the original code already allowed that when the NUMA affine allocation failed; however, node_data[] was never allowed below the DMA boundary and I think it shouldn't be.
Thanks.
-- tejun
| |