spawning (exec*/wait) shows non-constant time if memory grows
Siddhesh Poyarekar
siddhesh.poyarekar@gmail.com
Fri Jan 24 11:34:00 GMT 2014
On 23 January 2014 23:50, Dirk Bächle <tshortik@gmx.de> wrote:
> Hi there,
>
> I've already posted my actual question to the kernel-dev mailing list at:
>
> https://lkml.org/lkml/2014/1/14/632
The link seems to be broken. It just shows a blank LKML template page.
> , but got no reaction so far. So I'd really appreciate if someone
> knowledgeable could have a look at my findings and confirm to me that the
> problem I see is a kernel issue...and not related to the glibc itself.
> What it's basically about is: I spawn a large number of simple child
> processes sequentially (they don't run in parallel!) while letting the
> memory of the parent process go up with malloc(). Over the number of spawned
> processes the runtime for each execve/wait seems to grow, which is not what
> I would expect.
If the memory footprint of the parent process increases, the time
taken to clone it will increase as well since it has to clone the
parent address space. We don't have a light-weight exec* syscall
similar to the Windows CreateProcess() functionality yet, where one
would not bother cloning the parent address space only to throw it
away in an exec. I believe there were discussions about it in the
past on the libc-alpha mailing list.
Siddhesh
--
http://siddhesh.in
More information about the Libc-help
mailing list