Re: [mmotm][BUGFIX][PATCH] memcg: fix softlimit css refcnthandling(yet another one)

From: Balbir Singh
Date: Mon Sep 07 2009 - 00:52:14 EST


* KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2009-09-07 09:49:12]:

> > From: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx>
> >
> > refcount of the "victim" should be decremented before exiting the loop.
> >
> > Signed-off-by: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx>
> Nice!
>
> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>
> > ---
> > mm/memcontrol.c | 8 ++++++--
> > 1 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> > index ac51294..011aba6 100644
> > --- a/mm/memcontrol.c
> > +++ b/mm/memcontrol.c
> > @@ -1133,8 +1133,10 @@ static int mem_cgroup_hierarchical_reclaim(struct mem_cgroup *root_mem,
> > * anything, it might because there are
> > * no reclaimable pages under this hierarchy
> > */
> > - if (!check_soft || !total)
> > + if (!check_soft || !total) {
> > + css_put(&victim->css);
> > break;
> > + }
> > /*
> > * We want to do more targetted reclaim.
> > * excess >> 2 is not to excessive so as to
> > @@ -1142,8 +1144,10 @@ static int mem_cgroup_hierarchical_reclaim(struct mem_cgroup *root_mem,
> > * coming back to reclaim from this cgroup
> > */
> > if (total >= (excess >> 2) ||
> > - (loop > MEM_CGROUP_MAX_RECLAIM_LOOPS))
> > + (loop > MEM_CGROUP_MAX_RECLAIM_LOOPS)) {
> > + css_put(&victim->css);
> > break;
> > + }
> > }
> > }
> > if (!mem_cgroup_local_usage(&victim->stat)) {

Good catch! Sorry for the late response I've been away


Acked-by: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx>


--
Balbir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/