linux 引入了 Node的概念
7 bootmem_data_t bootmem_node_data[MAX_NUMNODES] __initdata
其中MAX_NUMNODES
0005 #ifdef CONFIG_NODES_SHIFT 0006 #define NODES_SHIFT CONFIG_NODES_SHIFT 0007 #else 0008 #define NODES_SHIFT 0 0009 #endif 0010 0011 #define MAX_NUMNODES (1 << NODES_SHIFT) 0012 0013 #define NUMA_NO_NODE (-1)
每个node 都很多 zone 分区
我自己系统上面内存是6G 就一个node
页大小是 4k
内核打印
contig_page_data.node_zones[0].zone_start_pfn, contig_page_data.node_zones[0].present_pages
zone_start_pfn DMA = 16 -> 3949 ~ 16M
zone_start_pfn NORMAL = 4096-> 221990 900M
zone_start_pfn HIGH = 228350 -> 1304269 50000M
zone_start_pfn MOVIABLE = 0 size = 0
取代了 之前版本的 for_each_zone