summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2013-02-01 10:26:31 +0000
committerandre <andre@FreeBSD.org>2013-02-01 10:26:31 +0000
commit3322e2fce2263a9217a22c1b73f35f6be6dde164 (patch)
treefe614222047a373639441349a9bdd9364f82ab50
parent27daee9849f4f64e19eddacfe4602f542356078e (diff)
downloadFreeBSD-src-3322e2fce2263a9217a22c1b73f35f6be6dde164.zip
FreeBSD-src-3322e2fce2263a9217a22c1b73f35f6be6dde164.tar.gz
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
-rw-r--r--sys/arm/include/vmparam.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/arm/include/vmparam.h b/sys/arm/include/vmparam.h
index eac46cc..267ba6e 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)
OpenPOWER on IntegriCloud