diff options
Diffstat (limited to 'mm/slab.h')
-rw-r--r-- | mm/slab.h | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -201,6 +201,11 @@ void __kmem_cache_free_bulk(struct kmem_cache *, size_t, void **); | |||
201 | int __kmem_cache_alloc_bulk(struct kmem_cache *, gfp_t, size_t, void **); | 201 | int __kmem_cache_alloc_bulk(struct kmem_cache *, gfp_t, size_t, void **); |
202 | 202 | ||
203 | #if defined(CONFIG_MEMCG) && !defined(CONFIG_SLOB) | 203 | #if defined(CONFIG_MEMCG) && !defined(CONFIG_SLOB) |
204 | |||
205 | /* List of all root caches. */ | ||
206 | extern struct list_head slab_root_caches; | ||
207 | #define root_caches_node memcg_params.__root_caches_node | ||
208 | |||
204 | /* | 209 | /* |
205 | * Iterate over all memcg caches of the given root cache. The caller must hold | 210 | * Iterate over all memcg caches of the given root cache. The caller must hold |
206 | * slab_mutex. | 211 | * slab_mutex. |
@@ -300,9 +305,14 @@ static __always_inline void memcg_uncharge_slab(struct page *page, int order, | |||
300 | } | 305 | } |
301 | 306 | ||
302 | extern void slab_init_memcg_params(struct kmem_cache *); | 307 | extern void slab_init_memcg_params(struct kmem_cache *); |
308 | extern void memcg_link_cache(struct kmem_cache *s); | ||
303 | 309 | ||
304 | #else /* CONFIG_MEMCG && !CONFIG_SLOB */ | 310 | #else /* CONFIG_MEMCG && !CONFIG_SLOB */ |
305 | 311 | ||
312 | /* If !memcg, all caches are root. */ | ||
313 | #define slab_root_caches slab_caches | ||
314 | #define root_caches_node list | ||
315 | |||
306 | #define for_each_memcg_cache(iter, root) \ | 316 | #define for_each_memcg_cache(iter, root) \ |
307 | for ((void)(iter), (void)(root); 0; ) | 317 | for ((void)(iter), (void)(root); 0; ) |
308 | 318 | ||
@@ -347,6 +357,11 @@ static inline void memcg_uncharge_slab(struct page *page, int order, | |||
347 | static inline void slab_init_memcg_params(struct kmem_cache *s) | 357 | static inline void slab_init_memcg_params(struct kmem_cache *s) |
348 | { | 358 | { |
349 | } | 359 | } |
360 | |||
361 | static inline void memcg_link_cache(struct kmem_cache *s) | ||
362 | { | ||
363 | } | ||
364 | |||
350 | #endif /* CONFIG_MEMCG && !CONFIG_SLOB */ | 365 | #endif /* CONFIG_MEMCG && !CONFIG_SLOB */ |
351 | 366 | ||
352 | static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x) | 367 | static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x) |