zoukankan      html  css  js  c++  java
  • 内存cgroup---CGroup中参数由来篇

    内存中cgroup:

    发现memory cgroup中mem.usage_in_bytes是通过下面这个数值得到的:

     val = page_counter_read(&memcg->memory);
    

      然后计数的增加在函数:mm/page_counter.c文件中的:page_counter_charge函数,

    mem_cgroup_try_charge-->

                                                                         -----> try_charge--->page_counter_charge(memcg->memory)

    mem_cgroup_try_charge_skmem -->

    soft_limit_excess(struct memcgroup)

     446 static unsigned long soft_limit_excess(struct mem_cgroup *memcg)
     447 {
     448     unsigned long nr_pages = page_counter_read(&memcg->memory);
     449     unsigned long soft_limit = READ_ONCE(memcg->soft_limit);
     450     unsigned long excess = 0;
     451 
     452     if (nr_pages > soft_limit)
     453         excess = nr_pages - soft_limit;
     454 
     455     return excess;
     456 }
     457 
    

    PATH1)   do_try_to_free_pages---->shrink_zones----->

                                                                                      mem_cgroup_soft_limit_reclaim ---> mem_cgroup_soft_reclaim-->mem_cgroup_shrink_node

    PATH2)   kswapd_init----->kswaped---->balance_bgdat---->

    其中PATH1)有这么几条路到达:try_to_free_pages    try_to_free_mem_cgroup_pages  shrink_all_memory

    try_to_free_mem_cgroup_pages(mm/memcontrol.c) 在try_charge/force_empty/memory_max_write......等等条件的时候就会触发

  • 相关阅读:
    SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试
    sql 知识点
    javascript基础拾遗——词法作用域
    Linux 软件包管理
    涉略spring
    WebReBuild年会流水记
    javascript面向对象学习笔记(一)——继承
    算法学习——动态规划策略入门
    编程之美读书笔记——2.3寻找水王
    Linux 引导流程解析
  • 原文地址:https://www.cnblogs.com/honpey/p/7758268.html
Copyright © 2011-2022 走看看