Skip to content

Commit

Permalink
memcg: remove activate_kmem_mutex
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Johannes Weiner <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Vladimir Davydov authored and torvalds committed Dec 11, 2014
1 parent 7d5e324 commit 8c0145b
Showing 1 changed file with 5 additions and 19 deletions.
24 changes: 5 additions & 19 deletions mm/memcontrol.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -3811,17 +3808,6 @@ static int __memcg_activate_kmem(struct mem_cgroup *memcg,
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)
{
Expand All @@ -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
Expand Down

0 comments on commit 8c0145b

Please sign in to comment.