100 reparent attempts seems too low, and hits too often.
Try to use 2min timeout instead.

https://jira.sw.ru/browse/PSBM-96533
Signed-off-by: Andrey Ryabinin <[email protected]>
---
 mm/memcontrol.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index acbe83875cdc..884f1596bb24 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -4344,7 +4344,7 @@ static void mem_cgroup_reparent_charges(struct mem_cgroup 
*memcg)
 {
        int node, zid;
        /* Protection from leaked memcg->memory counter. */
-       int reparent_attempts = 99;
+       unsigned long timeout = jiffies + HZ*120;
 
        do {
                /* This is for making all *used* pages to be on LRU. */
@@ -4377,14 +4377,13 @@ static void mem_cgroup_reparent_charges(struct 
mem_cgroup *memcg)
                 * charge before adding to the LRU.
                 */
        } while ((page_counter_read(&memcg->memory) -
-                page_counter_read(&memcg->kmem) > 0) && reparent_attempts--);
+                page_counter_read(&memcg->kmem) > 0) && time_after(jiffies, 
timeout));
 
        WARN_ONCE((page_counter_read(&memcg->memory) -
                        page_counter_read(&memcg->kmem) > 0),
-                 "memcg 0x%p leak suspected, performed %d iterations: "
+                 "memcg 0x%p leak suspected: "
                  "memory=%lu, kmem=%lu",
                  memcg,
-                 100,
                  page_counter_read(&memcg->memory),
                  page_counter_read(&memcg->kmem));
 }
-- 
2.21.0

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to