Re: panic: kmem_malloc(131072): kmem_map too small (AMD64)

From: Kris Kennaway <kris_at_FreeBSD.org>
Date: Mon, 24 Sep 2007 21:04:25 +0200
Scott Long wrote:
> Ruslan Ermilov wrote:
>> On Mon, Sep 24, 2007 at 08:04:33AM -0500, Larry Rosenman wrote:
>>> On Mon, 24 Sep 2007, Kris Kennaway wrote:
>>>
>>>> Ruslan Ermilov wrote:
>>>>> On Sat, Sep 22, 2007 at 11:37:37PM +0200, Kris Kennaway wrote:
>>>>>> Darren Reed wrote:
>> [...]
>>>>>>> Stupid question, perhaps, but is vm.kmem_size/vm.kmem_size_max 
>>>>>>> limited by physical RAM?
>>>>>> Yes.
>>>>> To be precise, it's actually limited by 2 * sizeof(physical RAM).
>>>>> It's still size of a _virtual_ memory map (kmem_map), after all:
>>>>> :    /*
>>>>> :      * Limit kmem virtual size to twice the physical memory.
>>>>> :      * This allows for kmem map sparseness, but limits the size
>>>>> :      * to something sane. Be careful to not overflow the 32bit
>>>>> :      * ints while doing the check.
>>>>> :      */
>>>>> :     if (((vm_kmem_size / 2) / PAGE_SIZE) > cnt.v_page_count)
>>>>> :         vm_kmem_size = 2 * cnt.v_page_count * PAGE_SIZE;
>>>> Well OK, but that seems pretty dangerous, because it leaves open a 
>>>> pathway to exhaust all of physical memory and presumably panic.
>>> is KVA pageable?  Is the kmem_map dedicating non-pageable memory?
>>>
>> kmem_map is used to map memory for the zone allocator, including
>> malloc(9).
>>
>>> I've set my vm.kmem_max to 1G, (on a 4G amd64 box).  Is that reasonable?
>>>
>> It just means that your kernel can "malloc" up to 1G of memory.
>>
> 
> You're all missing the point, I hate to say.  What happened is that a 
> change was made recently to more accurately account for allocated
> memory.  Now people are getting kmem_map_too_small panics that weren't
> getting them before.  So while the accounting is now more accurate, the
> outcome is actually harmful.  That needs to be fixed before the release.

Well yes, that is one hypothesis, but the evidence points elsewhere as 
well.  Prior the change you reference, some of my zfs machines would run 
for weeks before hitting a load pattern that exhausted their kmem_map 
and triggered the panic.  Also unless I have missed it I am not seeing 
the sudden flood of panic reports that may indicate sudden breakage.  It 
is quite possible that this particular report has nothing to do with the 
recent change.

Kris
Received on Mon Sep 24 2007 - 17:04:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:18 UTC