Messages in this thread | | | Date | Mon, 21 Apr 2014 21:56:14 +0400 | From | Vladimir Davydov <> | Subject | Re: [RFC] how should we deal with dead memcgs' kmem caches? |
| |
21.04.2014 20:29, Christoph Lameter: > On Sun, 20 Apr 2014, Vladimir Davydov wrote: > >> * Way #1 - prevent dead kmem caches from caching slabs on free * >> >> We can modify sl[au]b implementation so that it won't cache any objects >> on free if the kmem cache belongs to a dead memcg. Then it'd be enough >> to drain per-cpu pools of all dead kmem caches on css offline - no new >> slabs will be added there on further frees, and the last object will go >> away along with the last slab. > > You can call kmem_cache_shrink() to force slab allocators to drop cached > objects after a free.
Yes, but the question is when and how often should we do that? Calling it after each kfree would be an overkill, because there may be plenty of objects in a dead cache. Calling it periodically or on vmpressure is the first thing that springs to mind - that's covered by "way #2".
Thanks.
| |