x86_64: fix setup_node_bootmem to support big mem excluding with memmap
authorYinghai Lu <yhlu.kernel@gmail.com>
Tue, 18 Mar 2008 19:52:37 +0000 (12:52 -0700)
committerIngo Molnar <mingo@elte.hu>
Sat, 26 Apr 2008 20:51:08 +0000 (22:51 +0200)
commit1a27fc0a42162964d758e9d36d2d1b49c082a67c
treeb94c4864edd0869d8ab7b25b9c3942a14bb6f9db
parent8b3cd09ed23049fcb02479c6286744b36324ac9d
x86_64: fix setup_node_bootmem to support big mem excluding with memmap

typical case: four sockets system, every node has 4g ram, and we are using:

memmap=10g$4g

to mask out memory on node1 and node2

when numa is enabled, early_node_mem is used to get node_data and node_bootmap.

if it can not get memory from the same node with find_e820_area(), it will
use alloc_bootmem to get buff from previous nodes.

so check it and print out some info about it.

need to move early_res_to_bootmem into every setup_node_bootmem.
and it takes range that node has. otherwise alloc_bootmem could return addr
that reserved early.

depends on "mm: make reserve_bootmem can crossed the nodes".

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/e820_64.c
arch/x86/kernel/setup_64.c
arch/x86/mm/numa_64.c
include/asm-x86/e820_64.h