On Wed, May 07, 2014 at 01:53:52PM -0700, Andrew Morton wrote: > On Wed, 7 May 2014 14:45:16 +0400 Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> wrote: > > > @@ -3164,6 +3141,7 @@ void memcg_free_cache_params(struct kmem_cache *s) > > static void memcg_kmem_create_cache(struct mem_cgroup *memcg, > > struct kmem_cache *root_cache) > > { > > + static char *memcg_name_buf; /* protected by memcg_slab_mutex */ > > struct kmem_cache *cachep; > > int id; > > > > @@ -3179,7 +3157,14 @@ static void memcg_kmem_create_cache(struct mem_cgroup *memcg, > > if (cache_from_memcg_idx(root_cache, id)) > > return; > > > > - cachep = kmem_cache_create_memcg(memcg, root_cache); > > + if (!memcg_name_buf) { > > + memcg_name_buf = kmalloc(NAME_MAX + 1, GFP_KERNEL); > > + if (!memcg_name_buf) > > + return; > > + } > > Does this have any meaningful advantage over the simpler > > static char memcg_name_buf[NAME_MAX + 1]; > > ? Don't think so. In case nobody has objections, the patch is attached below. Thanks. -- From: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> Subject: [PATCH] memcg: memcg_kmem_create_cache: make memcg_name_buf statically allocated It isn't worth complicating the code by allocating it on the first access, because it only takes 256 bytes. Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 9ff3742f4154..01fda17a2566 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3141,7 +3141,8 @@ void memcg_free_cache_params(struct kmem_cache *s) static void memcg_kmem_create_cache(struct mem_cgroup *memcg, struct kmem_cache *root_cache) { - static char *memcg_name_buf; /* protected by memcg_slab_mutex */ + static char memcg_name_buf[NAME_MAX + 1]; /* protected by + memcg_slab_mutex */ struct kmem_cache *cachep; int id; @@ -3157,12 +3158,6 @@ static void memcg_kmem_create_cache(struct mem_cgroup *memcg, if (cache_from_memcg_idx(root_cache, id)) return; - if (!memcg_name_buf) { - memcg_name_buf = kmalloc(NAME_MAX + 1, GFP_KERNEL); - if (!memcg_name_buf) - return; - } - cgroup_name(memcg->css.cgroup, memcg_name_buf, NAME_MAX + 1); cachep = kmem_cache_create_memcg(memcg, root_cache, memcg_name_buf); /* -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>