Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_meter.c
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | struct vmmeter __read_mostly vm_cnt = { | ||||
.v_kthreads = EARLY_COUNTER, | .v_kthreads = EARLY_COUNTER, | ||||
.v_forkpages = EARLY_COUNTER, | .v_forkpages = EARLY_COUNTER, | ||||
.v_vforkpages = EARLY_COUNTER, | .v_vforkpages = EARLY_COUNTER, | ||||
.v_rforkpages = EARLY_COUNTER, | .v_rforkpages = EARLY_COUNTER, | ||||
.v_kthreadpages = EARLY_COUNTER, | .v_kthreadpages = EARLY_COUNTER, | ||||
.v_wire_count = EARLY_COUNTER, | .v_wire_count = EARLY_COUNTER, | ||||
}; | }; | ||||
u_long __exclusive_cache_line vm_user_wire_count; | |||||
static void | static void | ||||
vmcounter_startup(void) | vmcounter_startup(void) | ||||
{ | { | ||||
counter_u64_t *cnt = (counter_u64_t *)&vm_cnt; | counter_u64_t *cnt = (counter_u64_t *)&vm_cnt; | ||||
COUNTER_ARRAY_ALLOC(cnt, VM_METER_NCOUNTERS, M_WAITOK); | COUNTER_ARRAY_ALLOC(cnt, VM_METER_NCOUNTERS, M_WAITOK); | ||||
} | } | ||||
SYSINIT(counter, SI_SUB_KMEM, SI_ORDER_FIRST, vmcounter_startup, NULL); | SYSINIT(counter, SI_SUB_KMEM, SI_ORDER_FIRST, vmcounter_startup, NULL); | ||||
▲ Show 20 Lines • Show All 281 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
#define VM_STATS_PROC(var, descr, fn) \ | #define VM_STATS_PROC(var, descr, fn) \ | ||||
SYSCTL_OID(_vm_stats_vm, OID_AUTO, var, CTLTYPE_U32 | CTLFLAG_MPSAFE | \ | SYSCTL_OID(_vm_stats_vm, OID_AUTO, var, CTLTYPE_U32 | CTLFLAG_MPSAFE | \ | ||||
CTLFLAG_RD, fn, 0, sysctl_handle_vmstat_proc, "IU", descr) | CTLFLAG_RD, fn, 0, sysctl_handle_vmstat_proc, "IU", descr) | ||||
#define VM_STATS_UINT(var, descr) \ | #define VM_STATS_UINT(var, descr) \ | ||||
SYSCTL_UINT(_vm_stats_vm, OID_AUTO, var, CTLFLAG_RD, &vm_cnt.var, 0, descr) | SYSCTL_UINT(_vm_stats_vm, OID_AUTO, var, CTLFLAG_RD, &vm_cnt.var, 0, descr) | ||||
#define VM_STATS_ULONG(var, descr) \ | |||||
SYSCTL_ULONG(_vm_stats_vm, OID_AUTO, var, CTLFLAG_RD, &vm_cnt.var, 0, descr) | |||||
VM_STATS_UINT(v_page_size, "Page size in bytes"); | VM_STATS_UINT(v_page_size, "Page size in bytes"); | ||||
VM_STATS_UINT(v_page_count, "Total number of pages in system"); | VM_STATS_UINT(v_page_count, "Total number of pages in system"); | ||||
VM_STATS_UINT(v_free_reserved, "Pages reserved for deadlock"); | VM_STATS_UINT(v_free_reserved, "Pages reserved for deadlock"); | ||||
VM_STATS_UINT(v_free_target, "Pages desired free"); | VM_STATS_UINT(v_free_target, "Pages desired free"); | ||||
VM_STATS_UINT(v_free_min, "Minimum low-free-pages threshold"); | VM_STATS_UINT(v_free_min, "Minimum low-free-pages threshold"); | ||||
VM_STATS_PROC(v_free_count, "Free pages", vm_free_count); | VM_STATS_PROC(v_free_count, "Free pages", vm_free_count); | ||||
VM_STATS_PROC(v_wire_count, "Wired pages", vm_wire_count); | VM_STATS_PROC(v_wire_count, "Wired pages", vm_wire_count); | ||||
VM_STATS_PROC(v_active_count, "Active pages", vm_active_count); | VM_STATS_PROC(v_active_count, "Active pages", vm_active_count); | ||||
VM_STATS_UINT(v_inactive_target, "Desired inactive pages"); | VM_STATS_UINT(v_inactive_target, "Desired inactive pages"); | ||||
VM_STATS_PROC(v_inactive_count, "Inactive pages", vm_inactive_count); | VM_STATS_PROC(v_inactive_count, "Inactive pages", vm_inactive_count); | ||||
VM_STATS_PROC(v_laundry_count, "Pages eligible for laundering", | VM_STATS_PROC(v_laundry_count, "Pages eligible for laundering", | ||||
vm_laundry_count); | vm_laundry_count); | ||||
VM_STATS_UINT(v_pageout_free_min, "Min pages reserved for kernel"); | VM_STATS_UINT(v_pageout_free_min, "Min pages reserved for kernel"); | ||||
VM_STATS_UINT(v_interrupt_free_min, "Reserved pages for interrupt code"); | VM_STATS_UINT(v_interrupt_free_min, "Reserved pages for interrupt code"); | ||||
VM_STATS_UINT(v_free_severe, "Severe page depletion point"); | VM_STATS_UINT(v_free_severe, "Severe page depletion point"); | ||||
SYSCTL_ULONG(_vm_stats_vm, OID_AUTO, v_user_wire_count, CTLFLAG_RD, | |||||
&vm_user_wire_count, 0, "User-wired virtual memory"); | |||||
#ifdef COMPAT_FREEBSD11 | #ifdef COMPAT_FREEBSD11 | ||||
/* | /* | ||||
* Provide compatibility sysctls for the benefit of old utilities which exit | * Provide compatibility sysctls for the benefit of old utilities which exit | ||||
* with an error if they cannot be found. | * with an error if they cannot be found. | ||||
*/ | */ | ||||
SYSCTL_UINT(_vm_stats_vm, OID_AUTO, v_cache_count, CTLFLAG_RD, | SYSCTL_UINT(_vm_stats_vm, OID_AUTO, v_cache_count, CTLFLAG_RD, | ||||
SYSCTL_NULL_UINT_PTR, 0, "Dummy for compatibility"); | SYSCTL_NULL_UINT_PTR, 0, "Dummy for compatibility"); | ||||
▲ Show 20 Lines • Show All 141 Lines • Show Last 20 Lines |