Messages in this thread | | | Date | Thu, 3 Apr 2014 15:43:35 -0400 | From | Tejun Heo <> | Subject | Re: [GIT PULL] cgroup changes for v3.15-rc1 |
| |
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@kernel.org> 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
| |