Files
kernel/include/linux
Roman Gushchin 10befea91b mm: memcg/slab: use a single set of kmem_caches for all allocations
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.

[guro@fb.com: fix build on MIPS]
  Link: http://lkml.kernel.org/r/20200717214810.3733082-1-guro@fb.com

Suggested-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
Link: http://lkml.kernel.org/r/20200623174037.3951353-18-guro@fb.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-08-07 11:33:25 -07:00
..
2020-08-03 18:19:23 -07:00
2020-06-25 22:25:13 -07:00
2020-06-16 14:19:57 +02:00
2020-07-27 14:55:22 +01:00
2020-07-21 08:24:52 -05:00
2020-07-08 10:48:35 -07:00
2020-07-21 13:26:26 -07:00
2020-06-24 17:08:31 +02:00
2020-06-16 19:25:20 +02:00
2020-06-17 00:07:38 +02:00
2020-08-07 11:33:24 -07:00
2020-07-24 17:12:41 -07:00
2020-07-24 17:12:41 -07:00
2020-06-26 10:01:08 -06:00
2020-07-02 15:51:48 +02:00
2020-07-31 18:08:59 +10:00
2020-07-24 15:41:54 -07:00
2020-07-01 10:49:02 +02:00
2020-07-23 17:34:18 +10:00
2020-07-16 23:19:51 +02:00
2020-07-20 09:39:11 +02:00
2020-08-07 11:33:24 -07:00
2020-07-04 09:35:36 -05:00
2020-07-07 11:58:59 -05:00
2020-06-26 00:27:38 -07:00