Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/arm/pmap-v6.c
Show All 12 Lines | |||||
/***************************************************************************** | /***************************************************************************** | ||||
* | * | ||||
* PMAP third and final stage initialization. | * PMAP third and final stage initialization. | ||||
* | * | ||||
* After pmap_init() is called, PMAP subsystem is fully initialized. | * After pmap_init() is called, PMAP subsystem is fully initialized. | ||||
* | * | ||||
*****************************************************************************/ | *****************************************************************************/ | ||||
SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); | SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, | ||||
"VM/pmap parameters"); | |||||
SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_max, CTLFLAG_RD, &pv_entry_max, 0, | SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_max, CTLFLAG_RD, &pv_entry_max, 0, | ||||
"Max number of PV entries"); | "Max number of PV entries"); | ||||
SYSCTL_INT(_vm_pmap, OID_AUTO, shpgperproc, CTLFLAG_RD, &shpgperproc, 0, | SYSCTL_INT(_vm_pmap, OID_AUTO, shpgperproc, CTLFLAG_RD, &shpgperproc, 0, | ||||
"Page share factor per proc"); | "Page share factor per proc"); | ||||
static u_long nkpt2pg = NKPT2PG; | static u_long nkpt2pg = NKPT2PG; | ||||
SYSCTL_ULONG(_vm_pmap, OID_AUTO, nkpt2pg, CTLFLAG_RD, | SYSCTL_ULONG(_vm_pmap, OID_AUTO, nkpt2pg, CTLFLAG_RD, | ||||
&nkpt2pg, 0, "Pre-allocated pages for kernel PT2s"); | &nkpt2pg, 0, "Pre-allocated pages for kernel PT2s"); | ||||
static int sp_enabled = 1; | static int sp_enabled = 1; | ||||
SYSCTL_INT(_vm_pmap, OID_AUTO, sp_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, | SYSCTL_INT(_vm_pmap, OID_AUTO, sp_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, | ||||
&sp_enabled, 0, "Are large page mappings enabled?"); | &sp_enabled, 0, "Are large page mappings enabled?"); | ||||
bool | bool | ||||
pmap_ps_enabled(pmap_t pmap __unused) | pmap_ps_enabled(pmap_t pmap __unused) | ||||
{ | { | ||||
return (sp_enabled != 0); | return (sp_enabled != 0); | ||||
} | } | ||||
static SYSCTL_NODE(_vm_pmap, OID_AUTO, pte1, CTLFLAG_RD, 0, | static SYSCTL_NODE(_vm_pmap, OID_AUTO, pte1, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, | ||||
"1MB page mapping counters"); | "1MB page mapping counters"); | ||||
static u_long pmap_pte1_demotions; | static u_long pmap_pte1_demotions; | ||||
SYSCTL_ULONG(_vm_pmap_pte1, OID_AUTO, demotions, CTLFLAG_RD, | SYSCTL_ULONG(_vm_pmap_pte1, OID_AUTO, demotions, CTLFLAG_RD, | ||||
&pmap_pte1_demotions, 0, "1MB page demotions"); | &pmap_pte1_demotions, 0, "1MB page demotions"); | ||||
static u_long pmap_pte1_mappings; | static u_long pmap_pte1_mappings; | ||||
SYSCTL_ULONG(_vm_pmap_pte1, OID_AUTO, mappings, CTLFLAG_RD, | SYSCTL_ULONG(_vm_pmap_pte1, OID_AUTO, mappings, CTLFLAG_RD, | ||||
Show All 24 Lines | |||||
static int | static int | ||||
kvm_size(SYSCTL_HANDLER_ARGS) | kvm_size(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
unsigned long ksize = vm_max_kernel_address - KERNBASE; | unsigned long ksize = vm_max_kernel_address - KERNBASE; | ||||
return (sysctl_handle_long(oidp, &ksize, 0, req)); | return (sysctl_handle_long(oidp, &ksize, 0, req)); | ||||
} | } | ||||
SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, | SYSCTL_PROC(_vm, OID_AUTO, kvm_size, | ||||
0, 0, kvm_size, "IU", "Size of KVM"); | CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, 0, 0, kvm_size, "IU", | ||||
"Size of KVM"); | |||||
static int | static int | ||||
kvm_free(SYSCTL_HANDLER_ARGS) | kvm_free(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
unsigned long kfree = vm_max_kernel_address - kernel_vm_end; | unsigned long kfree = vm_max_kernel_address - kernel_vm_end; | ||||
return (sysctl_handle_long(oidp, &kfree, 0, req)); | return (sysctl_handle_long(oidp, &kfree, 0, req)); | ||||
} | } | ||||
SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, | SYSCTL_PROC(_vm, OID_AUTO, kvm_free, | ||||
0, 0, kvm_free, "IU", "Amount of KVM free"); | CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, 0, 0, kvm_free, "IU", | ||||
"Amount of KVM free"); | |||||
/*********************************************** | /*********************************************** | ||||
* | * | ||||
* Pmap allocation/deallocation routines. | * Pmap allocation/deallocation routines. | ||||
* | * | ||||
***********************************************/ | ***********************************************/ | ||||
/* | /* | ||||
Show All 12 Lines |