[Devel] [PATCH rh7 v2] mm/memcontrol: warn about leaking memory on reparanting

Konstantin Khorenko khorenko at virtuozzo.com
Mon Jul 1 17:00:35 MSK 2019


We expect reparent of memory cgroup is done in only 1 cycle iteration
and would like to make sure our expectations are correct,
so let's add a warning in case several iterations required to reparent a
memcg.

Fixes: e548e343c40b ("mm/memcontrol: don't reparent forever if counter
leaked.")

https://pmc.acronis.com/browse/VSTOR-24241

Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>

--
v2: fixup the warning condition

---
 mm/memcontrol.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index edc6bebc1f34..1bcfaa7acf7f 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -4325,6 +4325,14 @@ static void mem_cgroup_reparent_charges(struct mem_cgroup *memcg)
 		 */
 	} while ((page_counter_read(&memcg->memory) -
 		 page_counter_read(&memcg->kmem) > 0) && reparent_attempts--);
+
+	WARN_ONCE(reparent_attempts != 9,
+		  "memcg 0x%p leak suspected, performed %d iterations: "
+		  "memory=%lu, kmem=%lu",
+		  memcg,
+		  10 - reparent_attempts,
+		  page_counter_read(&memcg->memory),
+		  page_counter_read(&memcg->kmem));
 }
 
 /*
-- 
2.15.1



More information about the Devel mailing list