Messages in this thread | | | Date | Wed, 27 Jun 2012 16:34:55 +0400 | From | "Dmitry V. Levin" <> | Subject | Re: [RFC, PATCH] CLONE_NEWIPC and exit_group() |
| |
Hi,
On Tue, Jun 26, 2012 at 03:04:26PM +0300, Kirill A. Shutemov wrote: > Patch to move kern_unmount() out of exit_group() code path is below. > Dmitry, could you check if it's beneficial for your use-case?
I've benchmarked a slightly modified test which is closer to our use-case (child processes are forked sequentially):
#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
So there is a clear difference in accounting (user vs system) but no noticeable difference in the real time.
-- ldv
| |