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

From: Yinghai Lu
Date: Mon Feb 21 2011 - 15:29:01 EST


On 02/21/2011 02:44 AM, Tejun Heo wrote:
> 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.

No. when those code were added before. it was bottom-up allocation from e820.

Now with new memblock allocation. it will always try to do top down.

will have no chance to get under DMA normally.

except your first node only has < 16M.

Thanks

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