[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221110065316.67204-1-lujialin4@huawei.com>
Date: Thu, 10 Nov 2022 14:53:16 +0800
From: Lu Jialin <lujialin4@...wei.com>
To: Johannes Weiner <hannes@...xchg.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Michal Hocko <mhocko@...nel.org>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Shakeel Butt <shakeelb@...gle.com>,
Muchun Song <songmuchun@...edance.com>
CC: Lu Jialin <lujialin4@...wei.com>, <cgroups@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-mm@...ck.org>
Subject: [PATCH] mm/memcontrol.c: drains percpu charge caches in memory.reclaim
When user use memory.reclaim to reclaim memory, after drain percpu lru
caches, drain percpu charge caches for given memcg stock in the hope
of introducing more evictable pages.
Signed-off-by: Lu Jialin <lujialin4@...wei.com>
---
mm/memcontrol.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 2d8549ae1b30..768091cc6a9a 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -6593,10 +6593,13 @@ static ssize_t memory_reclaim(struct kernfs_open_file *of, char *buf,
/*
* This is the final attempt, drain percpu lru caches in the
* hope of introducing more evictable pages for
- * try_to_free_mem_cgroup_pages().
+ * try_to_free_mem_cgroup_pages(). Also, drain all percpu
+ * charge caches for given memcg.
*/
- if (!nr_retries)
+ if (!nr_retries) {
lru_add_drain_all();
+ drain_all_stock(memcg);
+ }
reclaimed = try_to_free_mem_cgroup_pages(memcg,
nr_to_reclaim - nr_reclaimed,
--
2.17.1
Powered by blists - more mailing lists