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]; ? I guess it saves a scrap of memory if the machine never uses memcg's. -- 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>