From 1211375f6eeb70d7451ad7a6f2cb9a07fa4a61e7 Mon Sep 17 00:00:00 2001 From: Andre Oppermann Date: Fri, 1 Feb 2013 10:26:31 +0000 Subject: [PATCH] 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. 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 --- sys/arm/include/vmparam.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/arm/include/vmparam.h b/sys/arm/include/vmparam.h index eac46ccface..267ba6e87fd 100644 --- a/sys/arm/include/vmparam.h +++ b/sys/arm/include/vmparam.h @@ -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)