Skip to content

RFC kmemcg slab reparenting

Vladimir Davydov linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest3 patches 27 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3slub: keep full slabs on list for per memcg cachesmm/slab.h mm/slub.c+63 -305 replies
2/3percpu-refcount: allow to get dead referenceinclude/linux/percpu-refcount.h+9 -20 replies
3/3slub: reparent memcg caches' slabs on memcg offlineinclude/linux/memcontrol.h include/linux/slab.h mm/memcontrol.c +2 more+246 -3222 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH RFC 0/3] kmemcg slab reparenting

Hi Johannes, Michal, Christoph,

Recently I posted my thoughts on how we can handle kmem caches of dead memcgs:

https://lkml.org/lkml/2014/4/20/38

The only feedback I got then was from Johannes who voted for migrating slabs of such caches to the parent memcg's cache (so called reparenting), so in this RFC I'd like to propose a draft of possible implementation of slab reparenting. I'd appreciate if you could look through it and post if it's worth developing in this direction or not.

The implementation of reparenting is given in patch 3, which is the most important part of this set. Patch 1 just makes slub keep full slabs on list, and patch 2 a bit extends percpu-refcnt interface.

NOTE the implementation is given only for slub, though it should be easy to implement the same hack for slab.

Thanks,

Vladimir Davydov (3):
slub: keep full slabs on list for per memcg caches
percpu-refcount: allow to get dead reference
slub: reparent memcg caches' slabs on memcg offline

 include/linux/memcontrol.h      |    4 +-
 include/linux/percpu-refcount.h |   11 +-
 include/linux/slab.h            |    7 +-
 mm/memcontrol.c                 |   54 ++++---
 mm/slab.h                       |    7 +-
 mm/slub.c                       |  299 ++++++++++++++++++++++++++++++++++-----
 6 files changed, 318 insertions(+), 64 deletions(-)
Signature · 1 line
1.7.10.4