svn commit: r243631 - in head/sys: kern sys
Alan Cox
alc at rice.edu
Sat Jan 12 18:34:13 UTC 2013
On 01/12/2013 09:46, Jayachandran C. wrote:
> On Fri, Jan 11, 2013 at 11:16 PM, Alan Cox <alc at rice.edu> wrote:
>> On 01/11/2013 05:38, Jayachandran C. wrote:
> [...]
>>> I see an issue with commit on MIPS XLP platform as well.
>>>
>>> With 16 GB physical memory, the ncallout is calculated to be 538881
>>> (since it is based on maxfiles - which is now based on the physical
>>> memory). Due to this, the callwheel allocation per cpu is 16MB
>>> (callwheelsize is 1MB). And on a 32 CPU machine, the total allocation
>>> for callouts comes to 32*16MB = 512MB.
>>>
>>> I have worked around this issue for now by increasing VM_KMEM_SIZE_MAX
>>> (which is 200MB now) - but I think a better fix is needed for this.
>>>
>> MIPS should use a definition for VM_KMEM_SIZE_MAX that scales with the
>> kernel address space size, like amd64, i386, and sparc64, and not a
>> fixed number. I think that the following should work for both 32- and
>> 64-bit processors:
>>
>> Index: mips/include/vmparam.h
>> ===================================================================
>> --- mips/include/vmparam.h (revision 245229)
>> +++ mips/include/vmparam.h (working copy)
>> @@ -130,10 +130,11 @@
>> #endif
>>
>> /*
>> - * Ceiling on amount of kmem_map kva space.
>> + * Ceiling on the amount of kmem_map KVA space: 40% of the entire KVA
>> space.
>> */
>> #ifndef VM_KMEM_SIZE_MAX
>> -#define VM_KMEM_SIZE_MAX (200 * 1024 * 1024)
>> +#define VM_KMEM_SIZE_MAX ((VM_MAX_KERNEL_ADDRESS - \
>> + VM_MIN_KERNEL_ADDRESS + 1) * 2 / 5)
>> #endif
>>
>> /* initial pagein size of beginning of executable file */
> This fix is needed, can you please check it in? I have tested it for
> 32 and 64 bit.
Done. Also, I suspect that 32-bit MIPS kernels should use these
definitions (copied from i386/include/vmparam.h):
#ifndef VM_MAX_AUTOTUNE_MAXUSERS
#define VM_MAX_AUTOTUNE_MAXUSERS 384
#endif
#ifndef VM_MAX_AUTOTUNE_NMBCLUSTERS
/* old maxusers max value. */
#define VM_MAX_AUTOTUNE_NMBCLUSTERS (1024 + VM_MAX_AUTOTUNE_MAXUSERS * 64)
#endif
Could you look into this?
> But the second part of the problem - allocating 512MB out of 16GB at
> boot-time for callouts - might need a fix as well.
>
> Thanks,
> JC.
>
More information about the svn-src-head
mailing list