• Glauber Costa's avatar
    memcg/sl[au]b: shrink dead caches · 22933152
    Glauber Costa authored
    This means that when we destroy a memcg cache that happened to be empty,
    those caches may take a lot of time to go away: removing the memcg
    reference won't destroy them - because there are pending references, and
    the empty pages will stay there, until a shrinker is called upon for any
    reason.
    
    In this patch, we will call kmem_cache_shrink() for all dead caches that
    cannot be destroyed because of remaining pages.  After shrinking, it is
    possible that it could be freed.  If this is not the case, we'll schedule
    a lazy worker to keep trying.
    Signed-off-by: default avatarGlauber Costa <glommer@parallels.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Frederic Weisbecker <fweisbec@redhat.com>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: JoonSoo Kim <js1304@gmail.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Suleiman Souhlal <suleiman@google.com>
    Cc: Tejun Heo <tj@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    22933152
memcontrol.c 178 KB