Messages in this thread Patch in this message | | | Date | Mon, 9 Jul 2012 09:36:14 +0200 | From | Johannes Weiner <> | Subject | Re: [patch 04/11] mm: memcg: push down PageSwapCache check into uncharge entry functions |
| |
On Mon, Jul 09, 2012 at 11:42:12AM +0900, Kamezawa Hiroyuki wrote: > (2012/07/05 9:44), Johannes Weiner wrote: > > @@ -3278,10 +3283,11 @@ void mem_cgroup_end_migration(struct mem_cgroup *memcg, > > unused = oldpage; > > } > > anon = PageAnon(used); > > - __mem_cgroup_uncharge_common(unused, > > - anon ? MEM_CGROUP_CHARGE_TYPE_ANON > > - : MEM_CGROUP_CHARGE_TYPE_CACHE, > > - true); > > + if (!PageSwapCache(page)) > > + __mem_cgroup_uncharge_common(unused, > > + anon ? MEM_CGROUP_CHARGE_TYPE_ANON > > + : MEM_CGROUP_CHARGE_TYPE_CACHE, > > + true); > > !PageSwapCache(unused) ?
Argh, right.
> But I think unused page's PG_swapcache is always dropped. So, the check is > not necessary.
Oh, this is intentional: the check was in __mem_cgroup_uncharge_common before, which means it applied to this entry point as well. This is supposed to be a mechanical change that does not change any logic. The check is then removed in the next patch.
--- Subject: mm: memcg: push down PageSwapCache check into uncharge entry functions fix
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> ---
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index a3bf414..f4ff18a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3283,7 +3283,7 @@ void mem_cgroup_end_migration(struct mem_cgroup *memcg, unused = oldpage; } anon = PageAnon(used); - if (!PageSwapCache(page)) + if (!PageSwapCache(unused)) __mem_cgroup_uncharge_common(unused, anon ? MEM_CGROUP_CHARGE_TYPE_ANON : MEM_CGROUP_CHARGE_TYPE_CACHE,
| |