tech-kern archive

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

Re: kmem change related trouble



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 <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.
> 
> 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


Home | Main Index | Thread Index | Old Index