首页 > 其他 > 详细

memory zone spanned/present/managed区别

时间:2020-11-15 18:24:32      阅读:33      评论:0      收藏:0      [点我收藏+]

这两天研究memory zone的水位问题涉及到两个参数分别是/proc/sys/vm/extra_free_kbytes以及min_free_kbytes(在kernel-4.4)。

而通过代码发现min_free_kbytes这个值由normal zone下的managed pages决定。

先说总的关系:

spanned:表示当前zone所包含的所有的pages

present:表示当前zone在去掉第一阶段kernel reserve的内存之后剩下的pages。

managed:表示当前zone去掉初始化完成以后所有的kernel reserve的内存剩下的pages。

其中min_free_kbytes由normal zone去掉第一阶段初始化完成后的kernel reserve的内存后所剩余的pages来计算得出min_free_kbytes

  1.  
    int __meminit init_per_zone_wmark_min(void)
  2.  
    {
  3.  
    unsigned long lowmem_kbytes;
  4.  
    int new_min_free_kbytes;
  5.  
     
  6.  
    lowmem_kbytes = nr_free_buffer_pages() * (PAGE_SIZE >> 10);-------------(1)
  7.  
    new_min_free_kbytes = int_sqrt(lowmem_kbytes * 16);-------------(2)
  8.  
     
  9.  
    if (new_min_free_kbytes > user_min_free_kbytes) {
  10.  
    min_free_kbytes = new_min_free_kbytes;-------------------(3)
  11.  
    if (min_free_kbytes < 128)
  12.  
    min_free_kbytes = 128;
  13.  
    if (min_free_kbytes > 65536)
  14.  
    min_free_kbytes = 65536;
  15.  
    } else {
  16.  
    pr_warn("min_free_kbytes is not updated to %d because user defined value %d is preferred\n",
  17.  
    new_min_free_kbytes, user_min_free_kbytes);
  18.  
    }
  19.  
    setup_per_zone_wmarks();
  20.  
    refresh_zone_stat_thresholds();
  21.  
    setup_per_zone_lowmem_reserve();
  22.  
    setup_per_zone_inactive_ratio();
  23.  
    return 0;
  24.  
    }
  25.  
    module_init(init_per_zone_wmark_min)

ps:kernel reserve部分内存的初始化在kernel启动过程中可能会而分为两个阶段。

(1)这里的值为所有zone的managed pages之和乘4将单位换算成KB,但是此时的memory reserve还没完成,所以得到的managed pages和最后系统完全起来之后打出的值不一致,此时的managed pages为总的spanned pages减去reserved pages。

(2)然后乘16在开方,最后这个值就是min_free_kbytes的值。

(3)得出min_free_kbytes的值。

 from: https://blog.csdn.net/zsj100213/article/details/80696451

 

memory zone spanned/present/managed区别

原文:https://www.cnblogs.com/aspirs/p/13977599.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!