On Thu, Jul 20, 2006 at 06:07:16PM +0200, Federico Giannici wrote: > It seems to me that under amd64 the "UVM Amap" usage is much higher then > under i386. So, even if by default the limit is the double of the i386, > it seems not enough.
That's probably because the code allocates in multiples of sizeof(long), which is twice as bigger in 64-bit architectures than on 32-bit. I still have to do the math correctly, but the default limit may even not be enough for some i386 systems with gigantic amounts of memory. Ideally, the kernel should have a smarter way of setting the limit for malloc() in kmeminit(), perhaps based on physmem, or on the ability of growing its memory mapping dynamically, as needed. -p.