lkml.org 
[lkml]   [2011]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 4/7] memcg : test a memcg is reclaimable

    A function for checking that a memcg has reclaimable pages. This makes
    use of mem->scan_nodes when CONFIG_NUMA=y.

    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    ---
    include/linux/memcontrol.h | 1 +
    mm/memcontrol.c | 19 +++++++++++++++++++
    2 files changed, 20 insertions(+)

    Index: mmotm-May6/mm/memcontrol.c
    ===================================================================
    --- mmotm-May6.orig/mm/memcontrol.c
    +++ mmotm-May6/mm/memcontrol.c
    @@ -1623,11 +1623,30 @@ int mem_cgroup_select_victim_node(struct
    return node;
    }

    +bool mem_cgroup_test_reclaimable(struct mem_cgroup *memcg)
    +{
    + mem_cgroup_may_update_nodemask(memcg);
    + return !nodes_empty(memcg->scan_nodes);
    +}
    +
    #else
    int mem_cgroup_select_victim_node(struct mem_cgroup *mem)
    {
    return 0;
    }
    +
    +bool mem_cgroup_test_reclaimable(struct mem_cgroup *memcg)
    +{
    + unsigned long nr;
    + int zid;
    +
    + for (zid = NODE_DATA(0)->nr_zones - 1; zid >= 0; zid--)
    + if (mem_cgroup_zone_reclaimable_pages(memcg, 0, zid))
    + break;
    + if (zid < 0)
    + return false;
    + return true;
    +}
    #endif

    /*
    Index: mmotm-May6/include/linux/memcontrol.h
    ===================================================================
    --- mmotm-May6.orig/include/linux/memcontrol.h
    +++ mmotm-May6/include/linux/memcontrol.h
    @@ -110,6 +110,7 @@ int mem_cgroup_inactive_anon_is_low(stru
    int mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg);
    unsigned long
    mem_cgroup_zone_reclaimable_pages(struct mem_cgroup *memcg, int nid, int zid);
    +bool mem_cgroup_test_reclaimable(struct mem_cgroup *memcg);
    int mem_cgroup_select_victim_node(struct mem_cgroup *memcg);
    unsigned int mem_cgroup_swappiness(struct mem_cgroup *memcg);
    unsigned long mem_cgroup_zone_nr_pages(struct mem_cgroup *memcg,


    \
     
     \ /
      Last update: 2011-05-10 12:17    [W:0.026 / U:1.180 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site