[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D629F17.5030006@kernel.org>
Date: Mon, 21 Feb 2011 09:21:27 -0800
From: Yinghai Lu <yinghai@...nel.org>
To: Tejun Heo <tj@...nel.org>
CC: David Rientjes <rientjes@...gle.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>, "H. Peter Anvin" <hpa@...or.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Cyrill Gorcunov <gorcunov@...il.com>
Subject: Re: [PATCH 2/4] x86, numa: Do not adjust start/end for early_node_mem()
On 02/21/2011 01:43 AM, 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?
please check
[PATCH] x86, numa, 64bit: Do not adjust start/end at first for early_node_mem()
We have top-down allocation with memblock way now.
So do not need to adjust start/end to make them above DMA region.
memblock allocation always get high address for us.
Just remove those lines.
Signed-off-by: Yinghai Lu <yinghai@...nel.org>
---
arch/x86/mm/numa_64.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
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. we will get addr above DMA region
+ * if possible, 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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists