Enable the creation of a kmem map larger than 4GB.

Submitted by: Tz-Huan Huang

Make several variables related to kmem map auto-sizing static.
Found by: CScout
This commit is contained in:
alc 2008-07-05 19:34:33 +00:00
parent 757fac8d40
commit c016906f4e
2 changed files with 12 additions and 12 deletions

View File

@ -181,19 +181,19 @@ struct {
*/ */
static uma_zone_t mt_zone; static uma_zone_t mt_zone;
u_int vm_kmem_size; u_long vm_kmem_size;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size, CTLFLAG_RD, &vm_kmem_size, 0, SYSCTL_ULONG(_vm, OID_AUTO, kmem_size, CTLFLAG_RD, &vm_kmem_size, 0,
"Size of kernel memory"); "Size of kernel memory");
u_int vm_kmem_size_min; static u_long vm_kmem_size_min;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size_min, CTLFLAG_RD, &vm_kmem_size_min, 0, SYSCTL_ULONG(_vm, OID_AUTO, kmem_size_min, CTLFLAG_RD, &vm_kmem_size_min, 0,
"Minimum size of kernel memory"); "Minimum size of kernel memory");
u_int vm_kmem_size_max; static u_long vm_kmem_size_max;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size_max, CTLFLAG_RD, &vm_kmem_size_max, 0, SYSCTL_ULONG(_vm, OID_AUTO, kmem_size_max, CTLFLAG_RD, &vm_kmem_size_max, 0,
"Maximum size of kernel memory"); "Maximum size of kernel memory");
u_int vm_kmem_size_scale; static u_int vm_kmem_size_scale;
SYSCTL_UINT(_vm, OID_AUTO, kmem_size_scale, CTLFLAG_RD, &vm_kmem_size_scale, 0, SYSCTL_UINT(_vm, OID_AUTO, kmem_size_scale, CTLFLAG_RD, &vm_kmem_size_scale, 0,
"Scale factor for kernel memory size"); "Scale factor for kernel memory size");
@ -589,7 +589,7 @@ kmeminit(void *dummy)
#if defined(VM_KMEM_SIZE_MIN) #if defined(VM_KMEM_SIZE_MIN)
vm_kmem_size_min = VM_KMEM_SIZE_MIN; vm_kmem_size_min = VM_KMEM_SIZE_MIN;
#endif #endif
TUNABLE_INT_FETCH("vm.kmem_size_min", &vm_kmem_size_min); TUNABLE_ULONG_FETCH("vm.kmem_size_min", &vm_kmem_size_min);
if (vm_kmem_size_min > 0 && vm_kmem_size < vm_kmem_size_min) { if (vm_kmem_size_min > 0 && vm_kmem_size < vm_kmem_size_min) {
vm_kmem_size = vm_kmem_size_min; vm_kmem_size = vm_kmem_size_min;
} }
@ -597,16 +597,16 @@ kmeminit(void *dummy)
#if defined(VM_KMEM_SIZE_MAX) #if defined(VM_KMEM_SIZE_MAX)
vm_kmem_size_max = VM_KMEM_SIZE_MAX; vm_kmem_size_max = VM_KMEM_SIZE_MAX;
#endif #endif
TUNABLE_INT_FETCH("vm.kmem_size_max", &vm_kmem_size_max); TUNABLE_ULONG_FETCH("vm.kmem_size_max", &vm_kmem_size_max);
if (vm_kmem_size_max > 0 && vm_kmem_size >= vm_kmem_size_max) if (vm_kmem_size_max > 0 && vm_kmem_size >= vm_kmem_size_max)
vm_kmem_size = vm_kmem_size_max; vm_kmem_size = vm_kmem_size_max;
/* Allow final override from the kernel environment */ /* Allow final override from the kernel environment */
#ifndef BURN_BRIDGES #ifndef BURN_BRIDGES
if (TUNABLE_INT_FETCH("kern.vm.kmem.size", &vm_kmem_size) != 0) if (TUNABLE_ULONG_FETCH("kern.vm.kmem.size", &vm_kmem_size) != 0)
printf("kern.vm.kmem.size is now called vm.kmem_size!\n"); printf("kern.vm.kmem.size is now called vm.kmem_size!\n");
#endif #endif
TUNABLE_INT_FETCH("vm.kmem_size", &vm_kmem_size); TUNABLE_ULONG_FETCH("vm.kmem_size", &vm_kmem_size);
/* /*
* Limit kmem virtual size to twice the physical memory. * Limit kmem virtual size to twice the physical memory.

View File

@ -69,6 +69,6 @@ extern vm_map_t kernel_map;
extern vm_map_t kmem_map; extern vm_map_t kmem_map;
extern vm_map_t exec_map; extern vm_map_t exec_map;
extern vm_map_t pipe_map; extern vm_map_t pipe_map;
extern u_int vm_kmem_size; extern u_long vm_kmem_size;
#endif /* _VM_VM_KERN_H_ */ #endif /* _VM_VM_KERN_H_ */