All of lore.kernel.org
 help / color / mirror / Atom feed
From: Li Zefan <lizf@cn.fujitsu.com>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: containers@lists.osdl.org, Paul Menage <menage@google.com>,
	Arjan van de Ven <arjan@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [cgroup or VFS ?] WARNING: at	fs/namespace.c:636	mntput_no_expire+0xac/0xf2()
Date: Thu, 12 Feb 2009 14:54:58 +0800	[thread overview]
Message-ID: <4993C7C2.4060100@cn.fujitsu.com> (raw)
In-Reply-To: <4993C2A0.3050507@cn.fujitsu.com>

Li Zefan wrote:
>>>>> How cute...  Same mountpoint in both, so these mount(2) will sometimes
>>>>> fail (cgroup picks the same sb on the same options, AFAICS) and fail
>>>>> silently due to these redirects...
>>>>>
>>>>> That's a lovely way to stress-test a large part of ro-bind stuff *and*
>>>>> umount()-related code.  Could you do C equivalent of the above (just
>>>>> the same syscalls in loop, nothing fancier) and do time-stamped strace?
>>>>>
>>>> Sure, I'll write a C version and try to reproduce the warning.
>>>>
>>> Unfortunately, the C equivalent can't reproduce the warning, I've run the
>>> test for the whole night. :( While using the script, often I can trigger
>>> the warning in several mins.
>> Ho-hum...  I wonder if we are hitting cgroup_clone() in all that fun...
> 
> I don't think so, I think cgroup_clone() will be called only if namespace is
> used, like clone(CLONE_NEWNS). Even if cgroup_clone() gets called, it will
> return before doing any vfs work unless the ns_cgroup subsystem is mounted.
> 

But the following testcase can also trigger the warning:

thread 1:
for ((; ;))
{
	mount -t cgroup -o ns xxx cgroup/ > /dev/null 2>&1
	# remove the dirs generated by cgroup_clone()
	rmdir cgroup/[1-9]* > /dev/null 2>&1
	umount cgroup/ > /dev/null 2>&1
}


thread 2:

int foo(void *arg)
{ return 0; }

char *stack[4096];

int main(int argc, char **argv)
{
        int usec = DEFAULT_USEC;
        while (1) {
                usleep(usec);
		# cgroup_clone() will be called
                clone(foo, stack+4096, CLONE_NEWNS, NULL);
        }

        return 0;
}

  reply	other threads:[~2009-02-12  6:54 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-05  3:23 [cgroup or VFS ?] WARNING: at fs/namespace.c:636 mntput_no_expire+0xac/0xf2() Li Zefan
2009-02-09  8:40 ` Andrew Morton
2009-02-09  8:49   ` Li Zefan
2009-02-09 11:03     ` Al Viro
2009-02-09 11:58       ` Al Viro
2009-02-10  5:47         ` Li Zefan
2009-02-09  9:34   ` Al Viro
2009-02-09 11:30     ` Li Zefan
2009-02-12  6:10       ` Li Zefan
2009-02-12  6:24         ` Al Viro
2009-02-12  6:33           ` Li Zefan
2009-02-12  6:54             ` Li Zefan [this message]
     [not found]               ` <4993C7C2.4060100-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-02-12  7:07                 ` Al Viro
2009-02-12  7:07                   ` Al Viro
2009-02-13  5:09                   ` Li Zefan
     [not found]                     ` <4995007D.7040101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-02-13  5:47                       ` Al Viro
2009-02-13  5:47                         ` Al Viro
2009-02-13  6:12                         ` Li Zefan
2009-02-13  6:31                           ` Li Zefan
     [not found]                           ` <49950F3D.3030704-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-02-13  6:41                             ` Al Viro
2009-02-13  6:41                               ` Al Viro
2009-02-13  7:18                               ` Al Viro
     [not found]                                 ` <20090213071816.GK28946-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
2009-02-13  7:26                                   ` Li Zefan
2009-02-13  7:26                                     ` Li Zefan
2009-02-16  1:29                                     ` Li Zefan
2009-02-16  2:38                                       ` Al Viro
2009-02-16  2:47                                         ` Li Zefan
2009-02-16  2:57                                           ` Al Viro
2009-02-09 17:48     ` Dave Hansen
2009-02-09 18:11       ` Arjan van de Ven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4993C7C2.4060100@cn.fujitsu.com \
    --to=lizf@cn.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=containers@lists.osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=menage@google.com \
    --cc=viro@ZenIV.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.