mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
mm: memcontrol: report slab usage in cgroup2 memory.stat
Show how much memory is used for storing reclaimable and unreclaimable in-kernel data structures allocated from slab caches. Signed-off-by: Vladimir Davydov <[email protected]> Acked-by: Johannes Weiner <[email protected]> Cc: Michal Hocko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
72b54e7314
commit
27ee57c93f
6 changed files with 79 additions and 6 deletions
30
mm/slab.h
30
mm/slab.h
|
|
@ -246,12 +246,33 @@ static __always_inline int memcg_charge_slab(struct page *page,
|
|||
gfp_t gfp, int order,
|
||||
struct kmem_cache *s)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!memcg_kmem_enabled())
|
||||
return 0;
|
||||
if (is_root_cache(s))
|
||||
return 0;
|
||||
return __memcg_kmem_charge_memcg(page, gfp, order,
|
||||
s->memcg_params.memcg);
|
||||
|
||||
ret = __memcg_kmem_charge_memcg(page, gfp, order,
|
||||
s->memcg_params.memcg);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
memcg_kmem_update_page_stat(page,
|
||||
(s->flags & SLAB_RECLAIM_ACCOUNT) ?
|
||||
MEMCG_SLAB_RECLAIMABLE : MEMCG_SLAB_UNRECLAIMABLE,
|
||||
1 << order);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __always_inline void memcg_uncharge_slab(struct page *page, int order,
|
||||
struct kmem_cache *s)
|
||||
{
|
||||
memcg_kmem_update_page_stat(page,
|
||||
(s->flags & SLAB_RECLAIM_ACCOUNT) ?
|
||||
MEMCG_SLAB_RECLAIMABLE : MEMCG_SLAB_UNRECLAIMABLE,
|
||||
-(1 << order));
|
||||
memcg_kmem_uncharge(page, order);
|
||||
}
|
||||
|
||||
extern void slab_init_memcg_params(struct kmem_cache *);
|
||||
|
|
@ -294,6 +315,11 @@ static inline int memcg_charge_slab(struct page *page, gfp_t gfp, int order,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline void memcg_uncharge_slab(struct page *page, int order,
|
||||
struct kmem_cache *s)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void slab_init_memcg_params(struct kmem_cache *s)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue