Re: [PATCH 02/10] consider a memcg parameter in kmem_create_cache
From: Glauber Costa <hidden>
Date: 2012-07-26 09:45:03
Also in:
linux-mm, lkml
From: Glauber Costa <hidden>
Date: 2012-07-26 09:45:03
Also in:
linux-mm, lkml
On 07/25/2012 10:10 PM, Kirill A. Shutemov wrote:
On Wed, Jul 25, 2012 at 06:38:13PM +0400, Glauber Costa wrote: ...quoted
@@ -337,6 +341,12 @@ extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); __kmalloc(size, flags) #endif /* DEBUG_SLAB */ +#ifdef CONFIG_MEMCG_KMEM +#define MAX_KMEM_CACHE_TYPES 400 +#else +#define MAX_KMEM_CACHE_TYPES 0 +#endif /* CONFIG_MEMCG_KMEM */ + #ifdef CONFIG_NUMA /* * kmalloc_node_track_caller is a special version of kmalloc_node that...quoted
@@ -527,6 +532,24 @@ static inline bool memcg_kmem_enabled(struct mem_cgroup *memcg) memcg->kmem_accounted; } +struct ida cache_types; + +void memcg_register_cache(struct mem_cgroup *memcg, struct kmem_cache *cachep) +{ + int id = -1; + + if (!memcg) + id = ida_simple_get(&cache_types, 0, MAX_KMEM_CACHE_TYPES, + GFP_KERNEL);MAX_KMEM_CACHE_TYPES is 0 if CONFIG_MEMCG_KMEM undefined. If 'end' parameter of ida_simple_get() is 0 it will use default max value which is 0x80000000. I guess you want MAX_KMEM_CACHE_TYPES to be 1 for !CONFIG_MEMCG_KMEM.
ida_simple_get will not, and should never be called for !CONFIG_MEMCG_KMEM.