Commit f1008365bbe4931d6a94dcfc11cf4cdada359664
Committed by
Linus Torvalds
1 parent
01e586598b
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
slab: use css id for naming per memcg caches
Currently, we use mem_cgroup->kmemcg_id to guarantee kmem_cache->name uniqueness. This is correct, because kmemcg_id is only released on css free after destroying all per memcg caches. However, I am going to change that and release kmemcg_id on css offline, because it is not wise to keep it for so long, wasting valuable entries of memcg_cache_params->memcg_caches arrays. Therefore, to preserve cache name uniqueness, let us switch to css->id. Signed-off-by: Vladimir Davydov <vdavydov@parallels.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Cc: Tejun Heo <tj@kernel.org> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Dave Chinner <david@fromorbit.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 3 additions and 3 deletions Side-by-side Diff
mm/slab_common.c
... | ... | @@ -488,6 +488,7 @@ |
488 | 488 | struct kmem_cache *root_cache) |
489 | 489 | { |
490 | 490 | static char memcg_name_buf[NAME_MAX + 1]; /* protected by slab_mutex */ |
491 | + struct cgroup_subsys_state *css = mem_cgroup_css(memcg); | |
491 | 492 | struct memcg_cache_array *arr; |
492 | 493 | struct kmem_cache *s = NULL; |
493 | 494 | char *cache_name; |
494 | 495 | |
... | ... | @@ -510,10 +511,9 @@ |
510 | 511 | if (arr->entries[idx]) |
511 | 512 | goto out_unlock; |
512 | 513 | |
513 | - cgroup_name(mem_cgroup_css(memcg)->cgroup, | |
514 | - memcg_name_buf, sizeof(memcg_name_buf)); | |
514 | + cgroup_name(css->cgroup, memcg_name_buf, sizeof(memcg_name_buf)); | |
515 | 515 | cache_name = kasprintf(GFP_KERNEL, "%s(%d:%s)", root_cache->name, |
516 | - idx, memcg_name_buf); | |
516 | + css->id, memcg_name_buf); | |
517 | 517 | if (!cache_name) |
518 | 518 | goto out_unlock; |
519 | 519 |