tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kmem change related trouble



On Fri, Feb 3, 2012 at 6:49 PM, Eduardo Horvath <eeh%netbsd.org@localhost> 
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.


Home | Main Index | Thread Index | Old Index