svn commit: r243631 - in head/sys: kern sys

Jayachandran C. jchandra at freebsd.org
Sat Jan 12 15:46:19 UTC 2013


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.

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-all mailing list