On 02/03/2012 07:04 PM, Eduardo Horvath wrote: > On Fri, 3 Feb 2012, Lars Heidieker wrote: > >> On Fri, Feb 3, 2012 at 6:49 PM, Eduardo Horvath <e...@netbsd.org> wrote: >>> On Fri, 3 Feb 2012, Lars Heidieker wrote: >>> >>>> The code for proper kmem_arena sizing: >>>> http://www.netbsd.org/~para/kmemsizing.diff >>>> >>>> params done for i386/amd64/sparc64/arm32 >>> >>> Explain this to me: >>> >>> /* >>> - * Minimum and maximum sizes of the kernel malloc arena in >>> PAGE_SIZE-sized >>> + * Minimum size of the kernel kmem_arena in PAGE_SIZE-sized >>> * logical pages. >>> + * No enforced maximum on sparc64. >>> */ >>> -#define NKMEMPAGES_MIN_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT) >>> -#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> >>> PAGE_SHIFT) >>> +#define NKMEMPAGES_MIN_DEFAULT ((64 * 1024 * 1024) >> PAGE_SHIFT) >>> +#define NKMEMPAGES_MAX_UNLIMITED 1 >>> >>> >>> Does this mean a machine needs to allocate a minimum of 64MB for the >>> kernel kmem_arena or it won't boot? What happens if a machine only has >>> 64MB of DRAM? >>> >> >> It's not about physcial memory, it's sizing the kmem_arenas virtual size. >> It is sized by physical memory size as an aproximation, with a certain >> lower limit and if required an upper bound. >> The upper bound is only required on archs that have limited kernel >> virtual memory space (in comparison to physical memory) eg i386 as 1GB >> virtual memory kernel space but probably 2-3GB physcial memory. So the >> kmem_arena is the limited to 280MB to leave space for other maps uares >> buffers. > > Interesting, but it didn't really answer the question. Will it attempt to > allocate NKMEMPAGES_MIN_DEFAULT pages on startup? Will this break > machines with 64MB of RAM? 'Cause I don't think that's something we want > to do. >
No it does not allocate any physical memory at startup, it's just about the virtual address space layout. So machines with less memory are totally unaffected. Lars