Re: [PATCH v7 17/19] mm: memcg/slab: use a single set of kmem_caches for all allocations

From: Shakeel Butt
Date: Tue Jun 23 2020 - 01:25:32 EST


On Mon, Jun 22, 2020 at 6:58 PM Roman Gushchin <guro@xxxxxx> wrote:
>
> Instead of having two sets of kmem_caches: one for system-wide and
> non-accounted allocations and the second one shared by all accounted
> allocations, we can use just one.
>
> The idea is simple: space for obj_cgroup metadata can be allocated on
> demand and filled only for accounted allocations.
>
> It allows to remove a bunch of code which is required to handle kmem_cache
> clones for accounted allocations. There is no more need to create them,
> accumulate statistics, propagate attributes, etc. It's a quite
> significant simplification.
>
> Also, because the total number of slab_caches is reduced almost twice (not
> all kmem_caches have a memcg clone), some additional memory savings are
> expected. On my devvm it additionally saves about 3.5% of slab memory.
>
> Suggested-by: Johannes Weiner <hannes@xxxxxxxxxxx>
> Signed-off-by: Roman Gushchin <guro@xxxxxx>
> Reviewed-by: Vlastimil Babka <vbabka@xxxxxxx>

Reviewed-by: Shakeel Butt <shakeelb@xxxxxxxxxx>