linux 内存管理

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

 

linux 内存管理,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。