lkml.org 
[lkml]   [2008]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/11] memcg: make mem_cgroup_zone_nr_pages()
    Date
    introduce mem_cgroup_zone_nr_pages().
    it is called by zone_nr_pages() helper function.


    this patch doesn't have any behavior change.


    Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    ---
    include/linux/memcontrol.h | 11 +++++++++++
    mm/memcontrol.c | 12 +++++++++++-
    mm/vmscan.c | 3 +++
    3 files changed, 25 insertions(+), 1 deletion(-)

    Index: b/include/linux/memcontrol.h
    ===================================================================
    --- a/include/linux/memcontrol.h
    +++ b/include/linux/memcontrol.h
    @@ -92,6 +92,9 @@ extern long mem_cgroup_calc_reclaim(stru
    int priority, enum lru_list lru);
    int mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg,
    struct zone *zone);
    +unsigned long mem_cgroup_zone_nr_pages(struct mem_cgroup *memcg,
    + struct zone *zone,
    + enum lru_list lru);

    #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
    extern int do_swap_account;
    @@ -250,6 +253,14 @@ mem_cgroup_inactive_anon_is_low(struct m
    return 1;
    }

    +static inline unsigned long
    +mem_cgroup_zone_nr_pages(struct mem_cgroup *memcg, struct zone *zone,
    + enum lru_list lru)
    +{
    + return 0;
    +}
    +
    +
    #endif /* CONFIG_CGROUP_MEM_CONT */

    #endif /* _LINUX_MEMCONTROL_H */
    Index: b/mm/memcontrol.c
    ===================================================================
    --- a/mm/memcontrol.c
    +++ b/mm/memcontrol.c
    @@ -186,7 +186,6 @@ pcg_default_flags[NR_CHARGE_TYPE] = {
    0, /* FORCE */
    };

    -
    /* for encoding cft->private value on file */
    #define _MEM (0)
    #define _MEMSWAP (1)
    @@ -448,6 +447,17 @@ int mem_cgroup_inactive_anon_is_low(stru
    return 0;
    }

    +unsigned long mem_cgroup_zone_nr_pages(struct mem_cgroup *memcg,
    + struct zone *zone,
    + enum lru_list lru)
    +{
    + int nid = zone->zone_pgdat->node_id;
    + int zid = zone_idx(zone);
    + struct mem_cgroup_per_zone *mz = mem_cgroup_zoneinfo(memcg, nid, zid);
    +
    + return MEM_CGROUP_ZSTAT(mz, lru);
    +}
    +
    unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
    struct list_head *dst,
    unsigned long *scanned, int order,
    Index: b/mm/vmscan.c
    ===================================================================
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -140,6 +140,9 @@ static struct zone_reclaim_stat *get_rec
    static unsigned long zone_nr_pages(struct zone *zone, struct scan_control *sc,
    enum lru_list lru)
    {
    + if (!scan_global_lru(sc))
    + return mem_cgroup_zone_nr_pages(sc->mem_cgroup, zone, lru);
    +
    return zone_page_state(zone, NR_LRU_BASE + lru);
    }




    \
     
     \ /
      Last update: 2008-12-01 13:19    [W:0.026 / U:29.668 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site