Re: [RFC, PATCH] CLONE_NEWIPC and exit_group()

From: Andrew Morton
Date: Wed Jul 11 2012 - 18:24:19 EST


On Tue, 10 Jul 2012 11:50:34 +0300
"Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:

> On Tue, Jun 26, 2012 at 03:04:25PM +0300, Kirill A. Shutemov wrote:
> > Hi,
> >
> > Patch to move kern_unmount() out of exit_group() code path is below.
>
> Andrew, do you have any opinion about the patch?

I've forgotten what this is all about and the changelog didn't help.

<finds the thread, reads it>

It doesn't seem very compelling - moving the action into a kernel
thread seems a bit of a hack and by adding more async behaviour it
makes the kernel a more complex and fragile thing.

I'm curious about Dmitry's test:


: #define _GNU_SOURCE
: #include <unistd.h>
: #include <sched.h>
: #include <stdlib.h>
: #include <sys/wait.h>
:
: int
: main(void)
: {
: int i;
: for (i = 0; i < 1024; i++) {
: if (fork()) {
: wait(NULL);
: continue;
: }
: unshare(CLONE_NEWIPC);
: exit(0);
: }
: return 0;
: }
:
: On 3.4.4 with rcu_barrier patch:
: 0.09user 0.00system 0:32.77elapsed 0%CPU (0avgtext+0avgdata 1472maxresident)k
: 0inputs+0outputs (0major+38017minor)pagefaults 0swaps
:
: On 3.4.4 with rcu_barrier patch and your new patch:
: 0.00user 0.06system 0:32.77elapsed 0%CPU (0avgtext+0avgdata 1472maxresident)k
: 0inputs+0outputs (0major+38017minor)pagefaults 0swaps

Am I reading that right? 1000 forks take 33 seconds, with basically
all of it just sitting there asleep? This look quite terrible - what
causes this?

--
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/