Thread (96 messages) 96 messages, 8 authors, 2012-08-08

Re: [PATCH 10/11] memcg: allow a memcg with kmem charges to be destructed.

From: Glauber Costa <hidden>
Date: 2012-06-25 22:28:39
Also in: linux-mm, lkml

On 06/25/2012 10:34 PM, Tejun Heo wrote:
On Mon, Jun 25, 2012 at 06:15:27PM +0400, Glauber Costa wrote:
quoted
Because the ultimate goal of the kmem tracking in memcg is to
track slab pages as well, we can't guarantee that we'll always
be able to point a page to a particular process, and migrate
the charges along with it - since in the common case, a page
will contain data belonging to multiple processes.

Because of that, when we destroy a memcg, we only make sure
the destruction will succeed by discounting the kmem charges
from the user charges when we try to empty the cgroup.

Signed-off-by: Glauber Costa <redacted>
CC: Christoph Lameter <redacted>
CC: Pekka Enberg <penberg-bbCR+/B0CizivPeTLB3BmA@public.gmane.org>
CC: Michal Hocko <redacted>
CC: Kamezawa Hiroyuki <redacted>
CC: Johannes Weiner <redacted>
CC: Suleiman Souhlal <redacted>
---
  mm/memcontrol.c |   10 +++++++++-
  1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index a6a440b..bb9b6fe 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -598,6 +598,11 @@ static void disarm_kmem_keys(struct mem_cgroup *memcg)
  {
  	if (test_bit(KMEM_ACCOUNTED_THIS, &memcg->kmem_accounted))
  		static_key_slow_dec(&mem_cgroup_kmem_enabled_key);
+	/*
+	 * This check can't live in kmem destruction function,
+	 * since the charges will outlive the cgroup
+	 */
+	BUG_ON(res_counter_read_u64(&memcg->kmem, RES_USAGE) != 0);
WARN_ON() please.  Misaccounted kernel usually is better than dead
kernel.
You're absolutely right, will change.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help