lkml.org 
[lkml]   [2018]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v6 10/17] list_lru: Pass dst_memcg argument to memcg_drain_list_lru_node()
    From
    Date
    This is just refactoring to allow next patches to have
    dst_memcg pointer in memcg_drain_list_lru_node().

    Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    ---
    include/linux/list_lru.h | 2 +-
    mm/list_lru.c | 11 ++++++-----
    mm/memcontrol.c | 2 +-
    3 files changed, 8 insertions(+), 7 deletions(-)

    diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h
    index 9e75bb33766b..d9c16f2f2f00 100644
    --- a/include/linux/list_lru.h
    +++ b/include/linux/list_lru.h
    @@ -69,7 +69,7 @@ int __list_lru_init(struct list_lru *lru, bool memcg_aware,
    __list_lru_init((lru), true, NULL, shrinker)

    int memcg_update_all_list_lrus(int num_memcgs);
    -void memcg_drain_all_list_lrus(int src_idx, int dst_idx);
    +void memcg_drain_all_list_lrus(int src_idx, struct mem_cgroup *dst_memcg);

    /**
    * list_lru_add: add an element to the lru list's tail
    diff --git a/mm/list_lru.c b/mm/list_lru.c
    index 151fa77eb7c9..43cbec52a48a 100644
    --- a/mm/list_lru.c
    +++ b/mm/list_lru.c
    @@ -515,8 +515,9 @@ int memcg_update_all_list_lrus(int new_size)
    }

    static void memcg_drain_list_lru_node(struct list_lru_node *nlru,
    - int src_idx, int dst_idx)
    + int src_idx, struct mem_cgroup *dst_memcg)
    {
    + int dst_idx = dst_memcg->kmemcg_id;
    struct list_lru_one *src, *dst;

    /*
    @@ -536,7 +537,7 @@ static void memcg_drain_list_lru_node(struct list_lru_node *nlru,
    }

    static void memcg_drain_list_lru(struct list_lru *lru,
    - int src_idx, int dst_idx)
    + int src_idx, struct mem_cgroup *dst_memcg)
    {
    int i;

    @@ -544,16 +545,16 @@ static void memcg_drain_list_lru(struct list_lru *lru,
    return;

    for_each_node(i)
    - memcg_drain_list_lru_node(&lru->node[i], src_idx, dst_idx);
    + memcg_drain_list_lru_node(&lru->node[i], src_idx, dst_memcg);
    }

    -void memcg_drain_all_list_lrus(int src_idx, int dst_idx)
    +void memcg_drain_all_list_lrus(int src_idx, struct mem_cgroup *dst_memcg)
    {
    struct list_lru *lru;

    mutex_lock(&list_lrus_mutex);
    list_for_each_entry(lru, &list_lrus, list)
    - memcg_drain_list_lru(lru, src_idx, dst_idx);
    + memcg_drain_list_lru(lru, src_idx, dst_memcg);
    mutex_unlock(&list_lrus_mutex);
    }
    #else
    diff --git a/mm/memcontrol.c b/mm/memcontrol.c
    index 317a72137b95..8afabac77b86 100644
    --- a/mm/memcontrol.c
    +++ b/mm/memcontrol.c
    @@ -3187,7 +3187,7 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg)
    }
    rcu_read_unlock();

    - memcg_drain_all_list_lrus(kmemcg_id, parent->kmemcg_id);
    + memcg_drain_all_list_lrus(kmemcg_id, parent);

    memcg_free_cache_id(kmemcg_id);
    }
    \
     
     \ /
      Last update: 2018-05-18 10:47    [W:4.213 / U:0.820 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site