linux番外篇之伙伴系统分配器
1、初始化
1.1、zone_sizes_init
774行如果配置zone_dma区域,那么就设置max_zone_pfn[zone_dma]这个区域为dma与max_low_pfn页面的最小值,zone_dma的值就设置为MAX_DMA_PFN了,也就是dma页面的大小了
780行这个是吧zone_dma32设置成max_low_pfn了
783行,设置zone_normal最大页面也是max_low_pfn的值了
786行,设置高端内存的最大值为最大页面的值了
789行,系统的核心函数
1.1.2、free_area_init_nodes
6223-6227行,这个是吧变量进行初始化了
6228行arch_zone_lowest_possible_pfn找到最小的页面的值然后赋值给这个变量
6230行,找到arch_zone_highest_possible_pfn这个变量,设置为max_zone_pfn的值了
6231-6243行,从1开始找到最大的max_nr_zone的值了,吧对应的arch_zone的值都赋值max_zone_pfn正确的值了
6243-6244行&#