2016-03-11 21:50:15

by Serge E. Hallyn

[permalink] [raw]
Subject: cgroup namespaces - mount root

Hi Tejun,

One practical problem I've found with cgroup namespaces is that there
is no way to disambiguate between a cgroupfs mount which was done in
a cgroup namespace, and a bind mount of a cgroupfs directory. So
whether I do

unshare --cgroup -- bash -c "mount -t cgroup -o freezer f /mnt; cat /proc/self/mountinfo"

or whether I just

mount --bind /sys/fs/cgroup/freezer/$(awk -F: '/freezer/ { print $3 }' /proc/self/cgroup) /mnt

'mount root' field (field 3) in /proc/self/mountinfo will show the
same thing, the result of awk -F: '/freezer/ { print $3 }' /proc/self/cgroup.

I keep waffling between thinking this is a problem that needs to be
solved, and thinking "don't do that". But docker at least seems to
have a problem with it right now, because it uses that field as part
of its calculation of paths to write to.

So, do you think it would be worth adding a 'nsroot=' entry in the
optional fields (next shared:) ? I would've just sent a patch, but
it actually isn't quite as simple as it would seem to find a way to
get the absolute path during mountinfo_read(), so I thought I'd ask
before spending more time on it.

thanks,
-serge


2016-03-16 21:47:02

by Tejun Heo

[permalink] [raw]
Subject: Re: cgroup namespaces - mount root

Hello, Serge.

On Fri, Mar 11, 2016 at 03:50:10PM -0600, Serge E. Hallyn wrote:
> 'mount root' field (field 3) in /proc/self/mountinfo will show the
> same thing, the result of awk -F: '/freezer/ { print $3 }' /proc/self/cgroup.

I see.

> I keep waffling between thinking this is a problem that needs to be
> solved, and thinking "don't do that". But docker at least seems to
> have a problem with it right now, because it uses that field as part
> of its calculation of paths to write to.

Yeah, given that both are used in pretty simliar context, I think
distinguishing them would be a good idea.

> So, do you think it would be worth adding a 'nsroot=' entry in the
> optional fields (next shared:) ? I would've just sent a patch, but

Yeah, I think so.

> it actually isn't quite as simple as it would seem to find a way to
> get the absolute path during mountinfo_read(), so I thought I'd ask
> before spending more time on it.

Thanks.

--
tejun