Re: [GIT PULL] cgroup changes for v3.15-rc1

From: Tejun Heo
Date: Thu Apr 03 2014 - 15:43:57 EST


Hello,

On Thu, Apr 03, 2014 at 12:01:23PM -0700, Linus Torvalds wrote:
> [ Extending the participants list a bit ]
>
> On Thu, Apr 3, 2014 at 11:34 AM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> > On the road so sending from phone. Iirc the param is necessary to
> > distinguishe when a new sb is created so that it can be put properly later.
> > I think cgroup is leaking super ref now and li was planning to send a fix
> > once things are merged.
>
> So as far as I can tell, cgroup is fine, because the superblock itself
> is properly refcounted by the mounting code. It's the magic hidden

Ah, I remembered the other way around. We could leak cgroup_root
reference, not the other way around. cgroup_mount() can be called
multiple times for the same sb and we inc cgroup_root's ref each time
but cgroup_kill_sb() only happens when the sb is released, so if we do
the following,

# mkdir cpuset cpuset1
# mount -t cgroup -o cpuset cgroup cpuset
# mount -t cgroup -o cpuset cgroup cpuset1
# umount cpuset
# umount cpuset1

The cgroup_root should be destroyed but it isn't, I think. We'd need
to bump cgroup_root's refcnt only when a new sb is created. It's
kinda ugly. Hmmm...

As for using specific type for ns tag, yeah, that'd be better
regardless of this. The opaqueness is a bit extreme now.

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/