Hi Ishimatsu-san, Thanks for the comments. And I also found the some algorithm problems in patch2 ~ patch3. I am working on it, and a v2 patchset is coming soon. :) Thanks. On 11/21/2012 01:46 PM, Yasuaki Ishimatsu wrote: > Hi Tang, > > 2012/11/19 23:27, Tang Chen wrote: >> From: Yasuaki Ishimatsu<isimatu.yasuaki@xxxxxxxxxxxxxx> >> >> If system can create movable node which all memory of the >> node is allocated as ZONE_MOVABLE, setup_node_data() cannot >> allocate memory for the node's pg_data_t. >> So when memblock_alloc_nid() fails, setup_node_data() retries >> memblock_alloc(). >> >> Signed-off-by: Yasuaki Ishimatsu<isimatu.yasuaki@xxxxxxxxxxxxxx> >> Signed-off-by: Lai Jiangshan<laijs@xxxxxxxxxxxxxx> >> Signed-off-by: Tang Chen<tangchen@xxxxxxxxxxxxxx> >> Reviewed-by: Wen Congyang<wency@xxxxxxxxxxxxxx> >> Tested-by: Lin Feng<linfeng@xxxxxxxxxxxxxx> >> --- >> arch/x86/mm/numa.c | 9 +++++++-- >> 1 files changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c >> index 2d125be..ae2e76e 100644 >> --- a/arch/x86/mm/numa.c >> +++ b/arch/x86/mm/numa.c >> @@ -224,9 +224,14 @@ static void __init setup_node_data(int nid, u64 start, u64 end) >> } else { >> nd_pa = memblock_alloc_nid(nd_size, SMP_CACHE_BYTES, nid); >> if (!nd_pa) { >> - pr_err("Cannot find %zu bytes in node %d\n", > >> + printk(KERN_WARNING "Cannot find %zu bytes in node %d\n", >> nd_size, nid) > > Please change to use pr_warn(). > > Thanks, > Yasuaki Ishimatsu > >> - return; >> + nd_pa = memblock_alloc(nd_size, SMP_CACHE_BYTES); >> + if (!nd_pa) { >> + pr_err("Cannot find %zu bytes in other node\n", >> + nd_size); >> + return; >> + } >> } >> nd = __va(nd_pa); >> } >> > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>