2.内存域水印值的计算(setup_per_zone_pages_min)

在计算各种水印之前,内核首先确定需要为关键性分配保留的内存空间的最小值。该值随可用内存的大小而非线性增长,并保存在全局变量min_free_kbytes中。用户层可通过文件/proc/sys/vm/min_free_kbytes来读取和修改该设置。

数据结构中水印值的填充由init_per_zone_pages_min处理,该函数由内核在启动期间调用,无需显式调用。② init_per_zone_pages_min的代码流程图,如图3-5所示。
setup_per_zone_pages_min设置struct zone的pages_min、pages_low和pages_high成员。在计算出高端内存域之外页面的总数之后(保存在lowmem_pages),内核迭代系统中的所有内存域并
执行下列计算:

 

 

 

 

posted @ 2022-03-17 17:05  while(true);;  阅读(98)  评论(0)    收藏  举报