summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_malloc.c
diff options
context:
space:
mode:
authorsepotvin <sepotvin@FreeBSD.org>2007-04-21 01:14:48 +0000
committersepotvin <sepotvin@FreeBSD.org>2007-04-21 01:14:48 +0000
commita1e73b1eafb356ff4adba96fd8099c15c11471cd (patch)
tree7a4cb32527ec0601ac8912d8ef1baa9431ee0a67 /sys/kern/kern_malloc.c
parenta1cba020dddfbcf1bcb0f4124b38e2255f16bdc9 (diff)
downloadFreeBSD-src-a1e73b1eafb356ff4adba96fd8099c15c11471cd.zip
FreeBSD-src-a1e73b1eafb356ff4adba96fd8099c15c11471cd.tar.gz
Add support for specifying a minimal size for vm.kmem_size in the loader via
vm.kmem_size_min. Useful when using ZFS to make sure that vm.kmem size will be at least 256mb (for example) without forcing a particular value via vm.kmem_size. Approved by: njl (mentor) Reviewed by: alc
Diffstat (limited to 'sys/kern/kern_malloc.c')
-rw-r--r--sys/kern/kern_malloc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index b05d13a..19fbf30 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -178,6 +178,10 @@ u_int vm_kmem_size;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size, CTLFLAG_RD, &vm_kmem_size, 0,
"Size of kernel memory");
+u_int vm_kmem_size_min;
+SYSCTL_UINT(_vm, OID_AUTO, kmem_size_min, CTLFLAG_RD, &vm_kmem_size_min, 0,
+ "Minimum size of kernel memory");
+
u_int vm_kmem_size_max;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size_max, CTLFLAG_RD, &vm_kmem_size_max, 0,
"Maximum size of kernel memory");
@@ -557,6 +561,14 @@ kmeminit(void *dummy)
(mem_size / vm_kmem_size_scale) > (vm_kmem_size / PAGE_SIZE))
vm_kmem_size = (mem_size / vm_kmem_size_scale) * PAGE_SIZE;
+#if defined(VM_KMEM_SIZE_MIN)
+ vm_kmem_size_min = VM_KMEM_SIZE_MIN;
+#endif
+ TUNABLE_INT_FETCH("vm.kmem_size_min", &vm_kmem_size_min);
+ if (vm_kmem_size_min > 0 && vm_kmem_size < vm_kmem_size_min) {
+ vm_kmem_size = vm_kmem_size_min;
+ }
+
#if defined(VM_KMEM_SIZE_MAX)
vm_kmem_size_max = VM_KMEM_SIZE_MAX;
#endif
OpenPOWER on IntegriCloud