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

From: Tejun Heo
Date: Mon Feb 21 2011 - 05:44:52 EST


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