* cgroup umount bug
@ 2011-10-08 12:02 含黛
2011-10-08 18:18 ` Serge E. Hallyn
0 siblings, 1 reply; 2+ messages in thread
From: 含黛 @ 2011-10-08 12:02 UTC (permalink / raw)
To: linux-kernel; +Cc: paul, lizf
Hi,
I found a mount/umount problem while using cgroup: I mount a cpu
cgroup (or other subsystems) and create some subgroups under it, but
later I try to umount it without rmdir those subgroups. I find that I
can umount it without any errors but actually the super block still
exist. This is because the sb->s_active count is greater than 1 which
was added by cgroup_create. But later if I want to mount both cpu and
memory subsystems, it will be unsuccessful indicating that the
device(cpu subsystem) is busy. This situation will not happen if I rmdir
the subgroups manually before umount it. So my question is:
Should the umount return success when there are still some subgroups
exist ? If this is okay, then it may lead to some *strange* errors using
cgroup later. If it can not be umount, then it should inform that the
mount point is still busy.
Following is an example of this problem:
mount -t cgroup -o cpu cgroup /mnt
mkdir /mnt/test
…..// do some tests
umount /mnt /* return successfully */
/* do other subsystems test */
mount -cgroup -o cpu,cpuset cgroup /mnt
mount: cgroup already mounted or /mnt busy /*??? which is strange */
Looking forward to your reply.
Thanks.
________________________________
This email (including any attachments) is confidential and may be legally privileged. If you received this email in error, please delete it immediately and do not copy it or use it for any purpose or disclose its contents to any other person. Thank you.
本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: cgroup umount bug
2011-10-08 12:02 cgroup umount bug 含黛
@ 2011-10-08 18:18 ` Serge E. Hallyn
0 siblings, 0 replies; 2+ messages in thread
From: Serge E. Hallyn @ 2011-10-08 18:18 UTC (permalink / raw)
To: 含黛; +Cc: linux-kernel, paul, lizf
Quoting 含黛 (handai.szj@taobao.com):
> Hi,
>
> I found a mount/umount problem while using cgroup: I mount a cpu
> cgroup (or other subsystems) and create some subgroups under it, but
> later I try to umount it without rmdir those subgroups. I find that I
> can umount it without any errors but actually the super block still
> exist. This is because the sb->s_active count is greater than 1 which
> was added by cgroup_create. But later if I want to mount both cpu and
> memory subsystems, it will be unsuccessful indicating that the
> device(cpu subsystem) is busy. This situation will not happen if I rmdir
> the subgroups manually before umount it. So my question is:
> Should the umount return success when there are still some subgroups
Yes. The fs was unmounted from that directory.
> exist ? If this is okay, then it may lead to some *strange* errors using
> cgroup later. If it can not be umount, then it should inform that the
> mount point is still busy.
> Following is an example of this problem:
>
> mount -t cgroup -o cpu cgroup /mnt
> mkdir /mnt/test
>
> …..// do some tests
>
> umount /mnt /* return successfully */
>
> /* do other subsystems test */
> mount -cgroup -o cpu,cpuset cgroup /mnt
> mount: cgroup already mounted or /mnt busy /*??? which is strange */
I'm not sure from what you write whether you're aware of this, but
to work around this, you can then
mount -t cgroup -o cpu /mnt
for i in `cat /mnt/test/tasks`; do
echo $i > /mnt/tasks
done
rmdir /mnt/test
umount /mnt
and now you can
mount -cgroup -o cpu,cpuset cgroup /mnt
Being unable to umount /mnt while child cgroups exist or having all
child cgroups cleared and removed automatically would both be less
useful behaviors.
thanks,
-serge
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-10-08 18:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-08 12:02 cgroup umount bug 含黛
2011-10-08 18:18 ` Serge E. Hallyn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®