Re: fork performance

Lloyd Parkes <[email protected]> Mon, 22 Oct 2012 07:54:48 +1300
Newsgroups gmane.os.netbsd.devel.performance
Message-ID <[email protected]>
On 18/10/2012, at 8:39 PM, Lars Heidieker <[email protected]> wrote:

> currently the amap layer limits the size of amaps to 255 * PAGE_SIZE
> see: http://nxr.netbsd.org/xref/src/sys/uvm/uvm_amap.c#494
>=20
> that's why the map entries for anon memory don't get merged.
>=20
> This will hit fork performance.

I've just had another look at the ktrace data and this could be what's =
causing the problem for CVS. The CVS server is calling mmap quite a lot =
for anonymous memory. CVS doesn't appear to call mmap directly, but =
jemalloc shouldn't be mapping memory in chunks as small as what I'm =
seeing. I'm just going to have to poke it with a stick and see what =
happens.

I also decided to swallow my BSD pride and try running this code on =
Linux. It turns out that Linux is nowhere near as fast as OS X either, =
so maybe I shouldn't feel too bad.

Thanks for the advice.

Lloyd