On 02/01/2013 04:26, Andre Oppermann wrote:
> Author: andre
> Date: Fri Feb  1 10:26:31 2013
> New Revision: 246204
> URL: http://svnweb.freebsd.org/changeset/base/246204
>
> Log:
>   Add VM_KMEM_SIZE_SCALE parameter set to 2 (50%) for all ARM platforms.
>   
>   VM_KMEM_SIZE_SCALE specifies which fraction of the available physical
>   memory, after deduction of the kernel itself and other early statically
>   allocated memory, can be used for the kmem_map.  The kmem_map provides
>   for all UMA/malloc allocations in KVM space.
>   

Not always.  Off the top of my head, two things immediately come to
mind: 9KB and 16KB jumbo frames come from the kernel map, because we
allocate physically contiguous memory for them, and some swap metadata
also comes from the kernel map.

Yes, all "ordinary" heap allocations come from the kmem map, but a
number of things that are special for one reason or another don't.

>   Previously ARM was using a fixed kmem_map size of (12*1024*1024) = 12MB
>   without regard to effectively available memory.  This is too small for
>   recent ARM SoC with more than 128MB of RAM.
>   
>   For reference a description of others related kmem_map parameters:
>   
>    VM_KMEM_SIZE               default start size of kmem_map if SCALE is
>                       not defined
>    VM_KMEM_SIZE_MIN   hard floor on the kmem_map size
>    VM_KMEM_SIZE_MAX   hard ceiling on the kmem_map size
>    VM_KMEM_SIZE_SCALE fraction of the available real memory to
>                       be used for the kmem_map, limited by the
>                       MIN and MAX parameters.
>   
>   Tested by:  ian
>   MFC after:  1 week
>
> Modified:
>   head/sys/arm/include/vmparam.h
>
> Modified: head/sys/arm/include/vmparam.h
> ==============================================================================
> --- head/sys/arm/include/vmparam.h    Fri Feb  1 10:00:21 2013        
> (r246203)
> +++ head/sys/arm/include/vmparam.h    Fri Feb  1 10:26:31 2013        
> (r246204)
> @@ -134,12 +134,15 @@
>  #endif
>  
>  #define VM_MAX_KERNEL_ADDRESS        0xffffffff
> +
>  /*
>   * Virtual size (bytes) for various kernel submaps.
>   */
> -
>  #ifndef VM_KMEM_SIZE
> -#define VM_KMEM_SIZE            (12*1024*1024)
> +#define VM_KMEM_SIZE         (12*1024*1024)
> +#endif
> +#ifndef VM_KMEM_SIZE_SCALE
> +#define VM_KMEM_SIZE_SCALE   (2)
>  #endif
>  
>  #define MAXTSIZ      (16*1024*1024)
>

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to