Glauber Costa 2293315293 memcg/sl[au]b: shrink dead caches
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: Glauber 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-12-18 15:02:14 -08:00
..
2012-05-29 23:28:33 -04:00
2012-12-16 15:18:08 -08:00
2012-01-03 22:54:56 -05:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-18 15:02:14 -08:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-17 17:15:17 -08:00
2012-12-16 15:18:08 -08:00
2012-10-09 16:23:03 +09:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-06-20 14:39:36 -07:00
2012-12-16 15:18:08 -08:00
2012-12-18 15:02:14 -08:00
2012-12-18 15:02:14 -08:00
2012-12-18 15:02:14 -08:00
2012-10-09 16:22:55 +09:00
2012-10-28 19:29:19 +01:00
2012-12-16 15:18:08 -08:00