Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_meter.c
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | struct vmmeter __exclusive_cache_line vm_cnt = { | ||||
.v_forks = EARLY_COUNTER, | .v_forks = EARLY_COUNTER, | ||||
.v_vforks = EARLY_COUNTER, | .v_vforks = EARLY_COUNTER, | ||||
.v_rforks = EARLY_COUNTER, | .v_rforks = EARLY_COUNTER, | ||||
.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, | |||||
}; | }; | ||||
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_CPU, SI_ORDER_FOURTH + 1, vmcounter_startup, NULL); | SYSINIT(counter, SI_SUB_KMEM, SI_ORDER_FIRST, vmcounter_startup, NULL); | ||||
SYSCTL_UINT(_vm, VM_V_FREE_MIN, v_free_min, | SYSCTL_UINT(_vm, VM_V_FREE_MIN, v_free_min, | ||||
CTLFLAG_RW, &vm_cnt.v_free_min, 0, "Minimum low-free-pages threshold"); | CTLFLAG_RW, &vm_cnt.v_free_min, 0, "Minimum low-free-pages threshold"); | ||||
SYSCTL_UINT(_vm, VM_V_FREE_TARGET, v_free_target, | SYSCTL_UINT(_vm, VM_V_FREE_TARGET, v_free_target, | ||||
CTLFLAG_RW, &vm_cnt.v_free_target, 0, "Desired free pages"); | CTLFLAG_RW, &vm_cnt.v_free_target, 0, "Desired free pages"); | ||||
SYSCTL_UINT(_vm, VM_V_FREE_RESERVED, v_free_reserved, | SYSCTL_UINT(_vm, VM_V_FREE_RESERVED, v_free_reserved, | ||||
CTLFLAG_RW, &vm_cnt.v_free_reserved, 0, "Pages reserved for deadlock"); | CTLFLAG_RW, &vm_cnt.v_free_reserved, 0, "Pages reserved for deadlock"); | ||||
SYSCTL_UINT(_vm, VM_V_INACTIVE_TARGET, v_inactive_target, | SYSCTL_UINT(_vm, VM_V_INACTIVE_TARGET, v_inactive_target, | ||||
▲ Show 20 Lines • Show All 281 Lines • ▼ Show 20 Lines | #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) | ||||
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_UINT(v_wire_count, "Wired pages"); | 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"); | ||||
▲ Show 20 Lines • Show All 60 Lines • Show Last 20 Lines |