diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2014-04-17 16:08:49 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2014-04-17 17:07:09 +1000 |
commit | 50e056db0177508c067006b991c34cbd72c98eb4 (patch) | |
tree | 0de0703bb0098044c1b675ec7e1a224e2777df03 /mm/slab.h | |
parent | be728448326c78f925bee6c7153f7a775031b36f (diff) | |
parent | 7b5f689823ab9b3bbb07aa4a57ea9aa9db6f09c5 (diff) |
Merge branch 'akpm-current/current'
Diffstat (limited to 'mm/slab.h')
-rw-r--r-- | mm/slab.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mm/slab.h b/mm/slab.h index 3045316b7c9d..3db3c52f80a2 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -191,6 +191,26 @@ static inline struct kmem_cache *memcg_root_cache(struct kmem_cache *s) return s; return s->memcg_params->root_cache; } + +static __always_inline int memcg_charge_slab(struct kmem_cache *s, + gfp_t gfp, int order) +{ + if (!memcg_kmem_enabled()) + return 0; + if (is_root_cache(s)) + return 0; + return memcg_charge_kmem(s->memcg_params->memcg, gfp, + PAGE_SIZE << order); +} + +static __always_inline void memcg_uncharge_slab(struct kmem_cache *s, int order) +{ + if (!memcg_kmem_enabled()) + return; + if (is_root_cache(s)) + return; + memcg_uncharge_kmem(s->memcg_params->memcg, PAGE_SIZE << order); +} #else static inline bool is_root_cache(struct kmem_cache *s) { @@ -226,6 +246,15 @@ static inline struct kmem_cache *memcg_root_cache(struct kmem_cache *s) { return s; } + +static inline int memcg_charge_slab(struct kmem_cache *s, gfp_t gfp, int order) +{ + return 0; +} + +static inline void memcg_uncharge_slab(struct kmem_cache *s, int order) +{ +} #endif static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x) |