Re: 3.13-rc breaks MEMCG_SWAP

From: Tejun Heo
Date: Tue Dec 17 2013 - 07:36:36 EST


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.

Thanks.

--
tejun
--
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/