memcg: remove activate_kmem_mutex
authorVladimir Davydov <vdavydov@parallels.com>
Wed, 10 Dec 2014 23:43:48 +0000 (15:43 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Dec 2014 01:41:07 +0000 (17:41 -0800)
The activate_kmem_mutex is used to serialize memcg.kmem.limit updates, but
we already serialize them with memcg_limit_mutex so let's remove the
former.

Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memcontrol.c

index a0ae64c..420461b 100644 (file)
@@ -2627,8 +2627,6 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,
  */
 static DEFINE_MUTEX(memcg_slab_mutex);
 
-static DEFINE_MUTEX(activate_kmem_mutex);
-
 /*
  * This is a bit cumbersome, but it is rarely used and avoids a backpointer
  * in the memcg_cache_params struct.
@@ -3747,9 +3745,8 @@ static u64 mem_cgroup_read_u64(struct cgroup_subsys_state *css,
 }
 
 #ifdef CONFIG_MEMCG_KMEM
-/* should be called with activate_kmem_mutex held */
-static int __memcg_activate_kmem(struct mem_cgroup *memcg,
-                                unsigned long nr_pages)
+static int memcg_activate_kmem(struct mem_cgroup *memcg,
+                              unsigned long nr_pages)
 {
        int err = 0;
        int memcg_id;
@@ -3811,17 +3808,6 @@ out:
        return err;
 }
 
-static int memcg_activate_kmem(struct mem_cgroup *memcg,
-                              unsigned long nr_pages)
-{
-       int ret;
-
-       mutex_lock(&activate_kmem_mutex);
-       ret = __memcg_activate_kmem(memcg, nr_pages);
-       mutex_unlock(&activate_kmem_mutex);
-       return ret;
-}
-
 static int memcg_update_kmem_limit(struct mem_cgroup *memcg,
                                   unsigned long limit)
 {
@@ -3844,14 +3830,14 @@ static int memcg_propagate_kmem(struct mem_cgroup *memcg)
        if (!parent)
                return 0;
 
-       mutex_lock(&activate_kmem_mutex);
+       mutex_lock(&memcg_limit_mutex);
        /*
         * If the parent cgroup is not kmem-active now, it cannot be activated
         * after this point, because it has at least one child already.
         */
        if (memcg_kmem_is_active(parent))
-               ret = __memcg_activate_kmem(memcg, PAGE_COUNTER_MAX);
-       mutex_unlock(&activate_kmem_mutex);
+               ret = memcg_activate_kmem(memcg, PAGE_COUNTER_MAX);
+       mutex_unlock(&memcg_limit_mutex);
        return ret;
 }
 #else