Re: [PATCH 2/2] memcg: clean up force_empty_list() return value check
From: Andrew Morton <hidden>
Date: 2012-06-21 20:13:31
Also in:
linux-mm, lkml
On Thu, 21 Jun 2012 17:17:01 +0900 Kamezawa Hiroyuki [off-list ref] wrote:
Now, mem_cgroup_force_empty_list() just returns 0 or -EBUSY and -EBUSY is just indicating 'you need to retry.'. This patch makes mem_cgroup_force_empty_list() as boolean function and make the logic simpler.
For some reason I'm having trouble applying these patches - many rejects, need to massage it in by hand.
quoted hunk ↗ jump to hunk
--- a/mm/memcontrol.c +++ b/mm/memcontrol.c@@ -3797,7 +3797,7 @@ unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, * This routine traverse page_cgroup in given list and drop them all. * *And* this routine doesn't reclaim page itself, just removes page_cgroup. */ -static int mem_cgroup_force_empty_list(struct mem_cgroup *memcg, +static bool mem_cgroup_force_empty_list(struct mem_cgroup *memcg, int node, int zid, enum lru_list lru)
Let's document the return value. The mem_cgroup_force_empty_list() comment is a mess so I tried to help it a bit. How does this look?
--- a/mm/memcontrol.c~memcg-make-mem_cgroup_force_empty_list-return-bool-fix
+++ a/mm/memcontrol.c@@ -3609,8 +3609,10 @@ unsigned long mem_cgroup_soft_limit_recl } /* - * This routine traverse page_cgroup in given list and drop them all. - * *And* this routine doesn't reclaim page itself, just removes page_cgroup. + * Traverse a specified page_cgroup list and try to drop them all. This doesn't + * reclaim the pages page themselves - it just removes the page_cgroups. + * Returns true if some page_cgroups were not freed, indicating that the caller + * must retry this operation. */ static bool mem_cgroup_force_empty_list(struct mem_cgroup *memcg, int node, int zid, enum lru_list lru)
_