Re: 3.13-rc breaks MEMCG_SWAP

From: Michal Hocko
Date: Tue Dec 17 2013 - 08:12:48 EST


On Tue 17-12-13 07:29:26, Tejun Heo wrote:
> Hello, Li.
>
> On Tue, Dec 17, 2013 at 11:13:39AM +0800, Li Zefan wrote:
> > diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> > index c36d906..769b5bb 100644
> > --- a/kernel/cgroup.c
> > +++ b/kernel/cgroup.c
> > @@ -868,6 +868,15 @@ static void cgroup_diput(struct dentry *dentry, struct inode *inode)
> > struct cgroup *cgrp = dentry->d_fsdata;
> >
> > BUG_ON(!(cgroup_is_dead(cgrp)));
> > +
> > + /*
> > + * We should remove the cgroup object from idr before its
> > + * grace period starts, so we won't be looking up a cgroup
> > + * while the cgroup is being freed.
> > + */
>
> Let's remove this comment and instead comment that this is to be made
> per-css. I mixed up the lifetime rules of the cgroup and css and
> thought css_from_id() should fail once css is confirmed to be offline,
> so the above comment. It looks like we'll eventually have to move
> cgrp->id to css->id (just simple per-ss idr) as the two objects'
> lifetime rules will be completely separate. Other than that, looks
> good to me.

Yeah, please remove it. It made me think that idr_remove cannot be
pulled to later and that's why I ruled out css based solution from the
beginning.
--
Michal Hocko
SUSE Labs
--
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/