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......等等条件的时候就会触发

  • 相关阅读:
    如何带平均年龄小的团队
    如何带平均年龄大的团队
    Extjs中常用表单介绍与应用
    .NET 应用架构指导 V2[17]
    一个男人的关心的东西
    微软企业库5.0学习笔记(十四)
    .NET 应用架构指导 V2[19]
    微软企业库5.0学习笔记(十五)
    计算机基本图书
    vs添加博客园精华区
  • 原文地址:https://www.cnblogs.com/honpey/p/7758268.html
Copyright © 2011-2022 走看看