Deleted Added
full compact
vm_meter.c (181887) vm_meter.c (187658)
1/*-
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
30 */
31
32#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/vm/vm_meter.c 181887 2008-08-20 01:05:56Z julian $");
33__FBSDID("$FreeBSD: head/sys/vm/vm_meter.c 187658 2009-01-23 22:49:23Z jhb $");
34
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/kernel.h>
38#include <sys/lock.h>
39#include <sys/mutex.h>
40#include <sys/proc.h>
41#include <sys/resource.h>

--- 43 unchanged lines hidden (view full) ---

85 la[1] = averunnable.ldavg[1];
86 la[2] = averunnable.ldavg[2];
87 la[3] = averunnable.fscale;
88 return SYSCTL_OUT(req, la, sizeof(la));
89 } else
90#endif
91 return SYSCTL_OUT(req, &averunnable, sizeof(averunnable));
92}
34
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/kernel.h>
38#include <sys/lock.h>
39#include <sys/mutex.h>
40#include <sys/proc.h>
41#include <sys/resource.h>

--- 43 unchanged lines hidden (view full) ---

85 la[1] = averunnable.ldavg[1];
86 la[2] = averunnable.ldavg[2];
87 la[3] = averunnable.fscale;
88 return SYSCTL_OUT(req, la, sizeof(la));
89 } else
90#endif
91 return SYSCTL_OUT(req, &averunnable, sizeof(averunnable));
92}
93SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT|CTLFLAG_RD,
94 NULL, 0, sysctl_vm_loadavg, "S,loadavg", "Machine loadaverage history");
93SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT | CTLFLAG_RD |
94 CTLFLAG_MPSAFE, NULL, 0, sysctl_vm_loadavg, "S,loadavg",
95 "Machine loadaverage history");
95
96static int
97vmtotal(SYSCTL_HANDLER_ARGS)
98{
99 struct proc *p;
100 struct vmtotal total;
101 vm_map_entry_t entry;
102 vm_object_t object;
103 vm_map_t map;
104 int paging;
105 struct thread *td;
106 struct vmspace *vm;
107
108 bzero(&total, sizeof(total));
109 /*
110 * Mark all objects as inactive.
111 */
96
97static int
98vmtotal(SYSCTL_HANDLER_ARGS)
99{
100 struct proc *p;
101 struct vmtotal total;
102 vm_map_entry_t entry;
103 vm_object_t object;
104 vm_map_t map;
105 int paging;
106 struct thread *td;
107 struct vmspace *vm;
108
109 bzero(&total, sizeof(total));
110 /*
111 * Mark all objects as inactive.
112 */
112 GIANT_REQUIRED;
113 mtx_lock(&vm_object_list_mtx);
114 TAILQ_FOREACH(object, &vm_object_list, object_list) {
115 if (!VM_OBJECT_TRYLOCK(object)) {
116 /*
117 * Avoid a lock-order reversal. Consequently,
118 * the reported number of active pages may be
119 * greater than the actual number.
120 */

--- 143 unchanged lines hidden (view full) ---

264 count += *(int *)((char *)&pcpu->pc_cnt + offset);
265 }
266#else
267 count += *(int *)((char *)PCPU_PTR(cnt) + offset);
268#endif
269 return (SYSCTL_OUT(req, &count, sizeof(int)));
270}
271
113 mtx_lock(&vm_object_list_mtx);
114 TAILQ_FOREACH(object, &vm_object_list, object_list) {
115 if (!VM_OBJECT_TRYLOCK(object)) {
116 /*
117 * Avoid a lock-order reversal. Consequently,
118 * the reported number of active pages may be
119 * greater than the actual number.
120 */

--- 143 unchanged lines hidden (view full) ---

264 count += *(int *)((char *)&pcpu->pc_cnt + offset);
265 }
266#else
267 count += *(int *)((char *)PCPU_PTR(cnt) + offset);
268#endif
269 return (SYSCTL_OUT(req, &count, sizeof(int)));
270}
271
272SYSCTL_PROC(_vm, VM_TOTAL, vmtotal, CTLTYPE_OPAQUE|CTLFLAG_RD,
272SYSCTL_PROC(_vm, VM_TOTAL, vmtotal, CTLTYPE_OPAQUE|CTLFLAG_RD|CTLFLAG_MPSAFE,
273 0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
274 "System virtual memory statistics");
275SYSCTL_NODE(_vm, OID_AUTO, stats, CTLFLAG_RW, 0, "VM meter stats");
276static SYSCTL_NODE(_vm_stats, OID_AUTO, sys, CTLFLAG_RW, 0,
277 "VM meter sys stats");
278static SYSCTL_NODE(_vm_stats, OID_AUTO, vm, CTLFLAG_RW, 0,
279 "VM meter vm stats");
280SYSCTL_NODE(_vm_stats, OID_AUTO, misc, CTLFLAG_RW, 0, "VM meter misc stats");
281
273 0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
274 "System virtual memory statistics");
275SYSCTL_NODE(_vm, OID_AUTO, stats, CTLFLAG_RW, 0, "VM meter stats");
276static SYSCTL_NODE(_vm_stats, OID_AUTO, sys, CTLFLAG_RW, 0,
277 "VM meter sys stats");
278static SYSCTL_NODE(_vm_stats, OID_AUTO, vm, CTLFLAG_RW, 0,
279 "VM meter vm stats");
280SYSCTL_NODE(_vm_stats, OID_AUTO, misc, CTLFLAG_RW, 0, "VM meter misc stats");
281
282SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_swtch, CTLTYPE_UINT|CTLFLAG_RD,
282SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_swtch, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
283 &cnt.v_swtch, 0, vcnt, "IU", "Context switches");
283 &cnt.v_swtch, 0, vcnt, "IU", "Context switches");
284SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_trap, CTLTYPE_UINT|CTLFLAG_RD,
284SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_trap, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
285 &cnt.v_trap, 0, vcnt, "IU", "Traps");
285 &cnt.v_trap, 0, vcnt, "IU", "Traps");
286SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_syscall, CTLTYPE_UINT|CTLFLAG_RD,
286SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_syscall, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
287 &cnt.v_syscall, 0, vcnt, "IU", "Syscalls");
287 &cnt.v_syscall, 0, vcnt, "IU", "Syscalls");
288SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_intr, CTLTYPE_UINT|CTLFLAG_RD,
288SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_intr, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
289 &cnt.v_intr, 0, vcnt, "IU", "Hardware interrupts");
289 &cnt.v_intr, 0, vcnt, "IU", "Hardware interrupts");
290SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_soft, CTLTYPE_UINT|CTLFLAG_RD,
290SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_soft, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
291 &cnt.v_soft, 0, vcnt, "IU", "Software interrupts");
291 &cnt.v_soft, 0, vcnt, "IU", "Software interrupts");
292SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vm_faults, CTLTYPE_UINT|CTLFLAG_RD,
292SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vm_faults, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
293 &cnt.v_vm_faults, 0, vcnt, "IU", "VM faults");
293 &cnt.v_vm_faults, 0, vcnt, "IU", "VM faults");
294SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_faults, CTLTYPE_UINT|CTLFLAG_RD,
294SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_faults, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
295 &cnt.v_cow_faults, 0, vcnt, "IU", "COW faults");
295 &cnt.v_cow_faults, 0, vcnt, "IU", "COW faults");
296SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_optim, CTLTYPE_UINT|CTLFLAG_RD,
296SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_optim, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
297 &cnt.v_cow_optim, 0, vcnt, "IU", "Optimized COW faults");
297 &cnt.v_cow_optim, 0, vcnt, "IU", "Optimized COW faults");
298SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_zfod, CTLTYPE_UINT|CTLFLAG_RD,
298SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_zfod, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
299 &cnt.v_zfod, 0, vcnt, "IU", "Zero fill");
299 &cnt.v_zfod, 0, vcnt, "IU", "Zero fill");
300SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_ozfod, CTLTYPE_UINT|CTLFLAG_RD,
300SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_ozfod, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
301 &cnt.v_ozfod, 0, vcnt, "IU", "Optimized zero fill");
301 &cnt.v_ozfod, 0, vcnt, "IU", "Optimized zero fill");
302SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapin, CTLTYPE_UINT|CTLFLAG_RD,
302SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
303 &cnt.v_swapin, 0, vcnt, "IU", "Swapin operations");
303 &cnt.v_swapin, 0, vcnt, "IU", "Swapin operations");
304SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapout, CTLTYPE_UINT|CTLFLAG_RD,
304SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
305 &cnt.v_swapout, 0, vcnt, "IU", "Swapout operations");
305 &cnt.v_swapout, 0, vcnt, "IU", "Swapout operations");
306SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsin, CTLTYPE_UINT|CTLFLAG_RD,
306SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
307 &cnt.v_swappgsin, 0, vcnt, "IU", "Swapin pages");
307 &cnt.v_swappgsin, 0, vcnt, "IU", "Swapin pages");
308SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsout, CTLTYPE_UINT|CTLFLAG_RD,
308SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
309 &cnt.v_swappgsout, 0, vcnt, "IU", "Swapout pages");
309 &cnt.v_swappgsout, 0, vcnt, "IU", "Swapout pages");
310SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodein, CTLTYPE_UINT|CTLFLAG_RD,
310SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodein, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
311 &cnt.v_vnodein, 0, vcnt, "IU", "Vnodein operations");
311 &cnt.v_vnodein, 0, vcnt, "IU", "Vnodein operations");
312SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodeout, CTLTYPE_UINT|CTLFLAG_RD,
312SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodeout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
313 &cnt.v_vnodeout, 0, vcnt, "IU", "Vnodeout operations");
313 &cnt.v_vnodeout, 0, vcnt, "IU", "Vnodeout operations");
314SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsin, CTLTYPE_UINT|CTLFLAG_RD,
314SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
315 &cnt.v_vnodepgsin, 0, vcnt, "IU", "Vnodein pages");
315 &cnt.v_vnodepgsin, 0, vcnt, "IU", "Vnodein pages");
316SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsout, CTLTYPE_UINT|CTLFLAG_RD,
316SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
317 &cnt.v_vnodepgsout, 0, vcnt, "IU", "Vnodeout pages");
317 &cnt.v_vnodepgsout, 0, vcnt, "IU", "Vnodeout pages");
318SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_intrans, CTLTYPE_UINT|CTLFLAG_RD,
318SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_intrans, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
319 &cnt.v_intrans, 0, vcnt, "IU", "In transit page blocking");
319 &cnt.v_intrans, 0, vcnt, "IU", "In transit page blocking");
320SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_reactivated, CTLTYPE_UINT|CTLFLAG_RD,
320SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_reactivated, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
321 &cnt.v_reactivated, 0, vcnt, "IU", "Reactivated pages");
321 &cnt.v_reactivated, 0, vcnt, "IU", "Reactivated pages");
322SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdwakeups, CTLTYPE_UINT|CTLFLAG_RD,
322SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdwakeups, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
323 &cnt.v_pdwakeups, 0, vcnt, "IU", "Pagedaemon wakeups");
323 &cnt.v_pdwakeups, 0, vcnt, "IU", "Pagedaemon wakeups");
324SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdpages, CTLTYPE_UINT|CTLFLAG_RD,
324SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
325 &cnt.v_pdpages, 0, vcnt, "IU", "Pagedaemon page scans");
325 &cnt.v_pdpages, 0, vcnt, "IU", "Pagedaemon page scans");
326SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tcached, CTLTYPE_UINT|CTLFLAG_RD,
326SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tcached, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
327 &cnt.v_tcached, 0, vcnt, "IU", "Total pages cached");
327 &cnt.v_tcached, 0, vcnt, "IU", "Total pages cached");
328SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_dfree, CTLTYPE_UINT|CTLFLAG_RD,
328SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_dfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
329 &cnt.v_dfree, 0, vcnt, "IU", "");
329 &cnt.v_dfree, 0, vcnt, "IU", "");
330SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pfree, CTLTYPE_UINT|CTLFLAG_RD,
330SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
331 &cnt.v_pfree, 0, vcnt, "IU", "");
331 &cnt.v_pfree, 0, vcnt, "IU", "");
332SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tfree, CTLTYPE_UINT|CTLFLAG_RD,
332SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
333 &cnt.v_tfree, 0, vcnt, "IU", "");
333 &cnt.v_tfree, 0, vcnt, "IU", "");
334SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_size, CTLTYPE_UINT|CTLFLAG_RD,
334SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_size, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
335 &cnt.v_page_size, 0, vcnt, "IU", "");
335 &cnt.v_page_size, 0, vcnt, "IU", "");
336SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_count, CTLTYPE_UINT|CTLFLAG_RD,
336SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
337 &cnt.v_page_count, 0, vcnt, "IU", "");
337 &cnt.v_page_count, 0, vcnt, "IU", "");
338SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_reserved, CTLTYPE_UINT|CTLFLAG_RD,
338SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_reserved, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
339 &cnt.v_free_reserved, 0, vcnt, "IU", "");
339 &cnt.v_free_reserved, 0, vcnt, "IU", "");
340SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_target, CTLTYPE_UINT|CTLFLAG_RD,
340SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_target, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
341 &cnt.v_free_target, 0, vcnt, "IU", "");
341 &cnt.v_free_target, 0, vcnt, "IU", "");
342SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_min, CTLTYPE_UINT|CTLFLAG_RD,
342SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
343 &cnt.v_free_min, 0, vcnt, "IU", "");
343 &cnt.v_free_min, 0, vcnt, "IU", "");
344SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_count, CTLTYPE_UINT|CTLFLAG_RD,
344SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
345 &cnt.v_free_count, 0, vcnt, "IU", "");
345 &cnt.v_free_count, 0, vcnt, "IU", "");
346SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_wire_count, CTLTYPE_UINT|CTLFLAG_RD,
346SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_wire_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
347 &cnt.v_wire_count, 0, vcnt, "IU", "");
347 &cnt.v_wire_count, 0, vcnt, "IU", "");
348SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_active_count, CTLTYPE_UINT|CTLFLAG_RD,
348SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_active_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
349 &cnt.v_active_count, 0, vcnt, "IU", "");
349 &cnt.v_active_count, 0, vcnt, "IU", "");
350SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_target, CTLTYPE_UINT|CTLFLAG_RD,
350SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_target, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
351 &cnt.v_inactive_target, 0, vcnt, "IU", "");
351 &cnt.v_inactive_target, 0, vcnt, "IU", "");
352SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_count, CTLTYPE_UINT|CTLFLAG_RD,
352SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
353 &cnt.v_inactive_count, 0, vcnt, "IU", "");
353 &cnt.v_inactive_count, 0, vcnt, "IU", "");
354SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_count, CTLTYPE_UINT|CTLFLAG_RD,
354SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
355 &cnt.v_cache_count, 0, vcnt, "IU", "");
355 &cnt.v_cache_count, 0, vcnt, "IU", "");
356SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_min, CTLTYPE_UINT|CTLFLAG_RD,
356SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
357 &cnt.v_cache_min, 0, vcnt, "IU", "");
357 &cnt.v_cache_min, 0, vcnt, "IU", "");
358SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_max, CTLTYPE_UINT|CTLFLAG_RD,
358SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_max, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
359 &cnt.v_cache_max, 0, vcnt, "IU", "");
359 &cnt.v_cache_max, 0, vcnt, "IU", "");
360SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pageout_free_min, CTLTYPE_UINT|CTLFLAG_RD,
360SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pageout_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
361 &cnt.v_pageout_free_min, 0, vcnt, "IU", "");
361 &cnt.v_pageout_free_min, 0, vcnt, "IU", "");
362SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_interrupt_free_min, CTLTYPE_UINT|CTLFLAG_RD,
362SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_interrupt_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
363 &cnt.v_interrupt_free_min, 0, vcnt, "IU", "");
363 &cnt.v_interrupt_free_min, 0, vcnt, "IU", "");
364SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forks, CTLTYPE_UINT|CTLFLAG_RD,
364SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
365 &cnt.v_forks, 0, vcnt, "IU", "Number of fork() calls");
365 &cnt.v_forks, 0, vcnt, "IU", "Number of fork() calls");
366SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforks, CTLTYPE_UINT|CTLFLAG_RD,
366SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
367 &cnt.v_vforks, 0, vcnt, "IU", "Number of vfork() calls");
367 &cnt.v_vforks, 0, vcnt, "IU", "Number of vfork() calls");
368SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforks, CTLTYPE_UINT|CTLFLAG_RD,
368SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
369 &cnt.v_rforks, 0, vcnt, "IU", "Number of rfork() calls");
369 &cnt.v_rforks, 0, vcnt, "IU", "Number of rfork() calls");
370SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreads, CTLTYPE_UINT|CTLFLAG_RD,
370SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreads, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
371 &cnt.v_kthreads, 0, vcnt, "IU", "Number of fork() calls by kernel");
371 &cnt.v_kthreads, 0, vcnt, "IU", "Number of fork() calls by kernel");
372SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forkpages, CTLTYPE_UINT|CTLFLAG_RD,
372SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
373 &cnt.v_forkpages, 0, vcnt, "IU", "VM pages affected by fork()");
373 &cnt.v_forkpages, 0, vcnt, "IU", "VM pages affected by fork()");
374SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforkpages, CTLTYPE_UINT|CTLFLAG_RD,
374SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
375 &cnt.v_vforkpages, 0, vcnt, "IU", "VM pages affected by vfork()");
375 &cnt.v_vforkpages, 0, vcnt, "IU", "VM pages affected by vfork()");
376SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforkpages, CTLTYPE_UINT|CTLFLAG_RD,
376SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
377 &cnt.v_rforkpages, 0, vcnt, "IU", "VM pages affected by rfork()");
377 &cnt.v_rforkpages, 0, vcnt, "IU", "VM pages affected by rfork()");
378SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreadpages, CTLTYPE_UINT|CTLFLAG_RD,
378SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreadpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
379 &cnt.v_kthreadpages, 0, vcnt, "IU", "VM pages affected by fork() by kernel");
380
381SYSCTL_INT(_vm_stats_misc, OID_AUTO,
382 zero_page_count, CTLFLAG_RD, &vm_page_zero_count, 0, "");
379 &cnt.v_kthreadpages, 0, vcnt, "IU", "VM pages affected by fork() by kernel");
380
381SYSCTL_INT(_vm_stats_misc, OID_AUTO,
382 zero_page_count, CTLFLAG_RD, &vm_page_zero_count, 0, "");