diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2004-09-29 14:21:40 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2004-09-29 14:21:40 +0000 |
| commit | 479439b4fe9de3d80a5e0863a757f5c38237ec42 (patch) | |
| tree | 0bce178004cc2daf52f92f1e242e330071414880 /sys/kern/kern_malloc.c | |
| parent | 4d0cb59f0fd69e1c5ca78f4b983866e66f768229 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_malloc.c')
| -rw-r--r-- | sys/kern/kern_malloc.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 83a8283e033f..a47c1cddb979 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -133,6 +133,14 @@ 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_max; +SYSCTL_UINT(_vm, OID_AUTO, kmem_size_max, CTLFLAG_RD, &vm_kmem_size_max, 0, + "Maximum size of kernel memory"); + +u_int vm_kmem_size_scale; +SYSCTL_UINT(_vm, OID_AUTO, kmem_size_scale, CTLFLAG_RD, &vm_kmem_size_scale, 0, + "Scale factor for kernel memory size"); + /* * The malloc_mtx protects the kmemstatistics linked list. */ @@ -455,14 +463,19 @@ kmeminit(dummy) mem_size = cnt.v_page_count; #if defined(VM_KMEM_SIZE_SCALE) - if ((mem_size / VM_KMEM_SIZE_SCALE) > (vm_kmem_size / PAGE_SIZE)) - vm_kmem_size = (mem_size / VM_KMEM_SIZE_SCALE) * PAGE_SIZE; + vm_kmem_size_scale = VM_KMEM_SIZE_SCALE; #endif + TUNABLE_INT_FETCH("vm.kmem_size_scale", &vm_kmem_size_scale); + if (vm_kmem_size_scale > 0 && + (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_MAX) - if (vm_kmem_size >= VM_KMEM_SIZE_MAX) - vm_kmem_size = VM_KMEM_SIZE_MAX; + vm_kmem_size_max = VM_KMEM_SIZE_MAX; #endif + TUNABLE_INT_FETCH("vm.kmem_size_max", &vm_kmem_size_max); + if (vm_kmem_size_max > 0 && vm_kmem_size >= vm_kmem_size_max) + vm_kmem_size = vm_kmem_size_max; /* Allow final override from the kernel environment */ #ifndef BURN_BRIDGES |
