- Mark all standalone INT/LONG/QUAD sysctl's MPSAFE. This is done
inside the SYSCTL() macros and thus does not need to be done for all of the nodes scattered across the source tree. - Mark the name-cache related sysctl's (including debug.hashstat.*) MPSAFE. - Mark vm.loadavg MPSAFE. - Remove GIANT_REQUIRED from vmtotal() (everything in this routine already has sufficient locking) and mark vm.vmtotal MPSAFE. - Mark the vm.stats.(sys|vm).* sysctls MPSAFE.
This commit is contained in:
parent
24f87fdbe8
commit
8a7ef10b71
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=187658
@ -163,8 +163,8 @@ static u_long numposhits; STATNODE(CTLFLAG_RD, numposhits, &numposhits);
|
||||
static u_long numnegzaps; STATNODE(CTLFLAG_RD, numnegzaps, &numnegzaps);
|
||||
static u_long numneghits; STATNODE(CTLFLAG_RD, numneghits, &numneghits);
|
||||
|
||||
SYSCTL_OPAQUE(_vfs_cache, OID_AUTO, nchstats, CTLFLAG_RD, &nchstats,
|
||||
sizeof(nchstats), "LU", "VFS cache effectiveness statistics");
|
||||
SYSCTL_OPAQUE(_vfs_cache, OID_AUTO, nchstats, CTLFLAG_RD | CTLFLAG_MPSAFE,
|
||||
&nchstats, sizeof(nchstats), "LU", "VFS cache effectiveness statistics");
|
||||
|
||||
|
||||
|
||||
@ -212,8 +212,9 @@ sysctl_debug_hashstat_rawnchash(SYSCTL_HANDLER_ARGS)
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
SYSCTL_PROC(_debug_hashstat, OID_AUTO, rawnchash, CTLTYPE_INT|CTLFLAG_RD,
|
||||
0, 0, sysctl_debug_hashstat_rawnchash, "S,int", "nchash chain lengths");
|
||||
SYSCTL_PROC(_debug_hashstat, OID_AUTO, rawnchash, CTLTYPE_INT|CTLFLAG_RD|
|
||||
CTLFLAG_MPSAFE, 0, 0, sysctl_debug_hashstat_rawnchash, "S,int",
|
||||
"nchash chain lengths");
|
||||
|
||||
static int
|
||||
sysctl_debug_hashstat_nchash(SYSCTL_HANDLER_ARGS)
|
||||
@ -260,8 +261,9 @@ sysctl_debug_hashstat_nchash(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
return (0);
|
||||
}
|
||||
SYSCTL_PROC(_debug_hashstat, OID_AUTO, nchash, CTLTYPE_INT|CTLFLAG_RD,
|
||||
0, 0, sysctl_debug_hashstat_nchash, "I", "nchash chain lengths");
|
||||
SYSCTL_PROC(_debug_hashstat, OID_AUTO, nchash, CTLTYPE_INT|CTLFLAG_RD|
|
||||
CTLFLAG_MPSAFE, 0, 0, sysctl_debug_hashstat_nchash, "I",
|
||||
"nchash chain lengths");
|
||||
|
||||
/*
|
||||
* cache_zap():
|
||||
|
@ -287,7 +287,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
|
||||
|
||||
/* Oid for an int. If ptr is NULL, val is returned. */
|
||||
#define SYSCTL_INT(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "I", descr)
|
||||
|
||||
#ifdef VIMAGE
|
||||
@ -297,22 +297,22 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
|
||||
#else
|
||||
#ifdef VIMAGE_GLOBALS
|
||||
#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|CTLFLAG_MPSAFE|(access), \
|
||||
&sym, val, sysctl_handle_int, "I", descr)
|
||||
#else
|
||||
#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|CTLFLAG_MPSAFE|(access), \
|
||||
& mod ## _0._ ## sym, val, sysctl_handle_int, "I", descr)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SYSCTL_ADD_INT(ctx, parent, nbr, name, access, ptr, val, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_INT|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_INT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "I", __DESCR(descr))
|
||||
|
||||
/* Oid for an unsigned int. If ptr is NULL, val is returned. */
|
||||
#define SYSCTL_UINT(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "IU", descr)
|
||||
|
||||
#ifdef VIMAGE
|
||||
@ -322,60 +322,60 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
|
||||
#else
|
||||
#ifdef VIMAGE_GLOBALS
|
||||
#define SYSCTL_V_UINT(subs, mod, parent, nbr, name, access, sym, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
&sym, val, sysctl_handle_int, "IU", descr)
|
||||
#else
|
||||
#define SYSCTL_V_UINT(subs, mod, parent, nbr, name, access, sym, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
& mod ## _0._ ## sym, val, sysctl_handle_int, "IU", descr)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SYSCTL_ADD_UINT(ctx, parent, nbr, name, access, ptr, val, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "IU", __DESCR(descr))
|
||||
|
||||
#define SYSCTL_XINT(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "IX", descr)
|
||||
|
||||
#define SYSCTL_ADD_XINT(ctx, parent, nbr, name, access, ptr, val, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_UINT|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_int, "IX", __DESCR(descr))
|
||||
|
||||
/* Oid for a long. The pointer must be non NULL. */
|
||||
#define SYSCTL_LONG(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_LONG|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_LONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_long, "L", descr)
|
||||
|
||||
#define SYSCTL_ADD_LONG(ctx, parent, nbr, name, access, ptr, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_LONG|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_LONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, 0, sysctl_handle_long, "L", __DESCR(descr))
|
||||
|
||||
/* Oid for an unsigned long. The pointer must be non NULL. */
|
||||
#define SYSCTL_ULONG(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_ULONG|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_ULONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_long, "LU", __DESCR(descr))
|
||||
|
||||
#define SYSCTL_ADD_ULONG(ctx, parent, nbr, name, access, ptr, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, 0, sysctl_handle_long, "LU", __DESCR(descr))
|
||||
|
||||
#define SYSCTL_XLONG(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_ULONG|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_ULONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_long, "LX", __DESCR(descr))
|
||||
|
||||
#define SYSCTL_ADD_XLONG(ctx, parent, nbr, name, access, ptr, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, 0, sysctl_handle_long, "LX", __DESCR(descr))
|
||||
|
||||
/* Oid for a quad. The pointer must be non NULL. */
|
||||
#define SYSCTL_QUAD(parent, nbr, name, access, ptr, val, descr) \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_QUAD|(access), \
|
||||
SYSCTL_OID(parent, nbr, name, CTLTYPE_QUAD|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, val, sysctl_handle_quad, "Q", __DESCR(descr))
|
||||
|
||||
#define SYSCTL_ADD_QUAD(ctx, parent, nbr, name, access, ptr, descr) \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_QUAD|(access), \
|
||||
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_QUAD|CTLFLAG_MPSAFE|(access), \
|
||||
ptr, 0, sysctl_handle_quad, "Q", __DESCR(descr))
|
||||
|
||||
/* Oid for an opaque object. Specified by a pointer and a length. */
|
||||
|
@ -90,8 +90,9 @@ sysctl_vm_loadavg(SYSCTL_HANDLER_ARGS)
|
||||
#endif
|
||||
return SYSCTL_OUT(req, &averunnable, sizeof(averunnable));
|
||||
}
|
||||
SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT|CTLFLAG_RD,
|
||||
NULL, 0, sysctl_vm_loadavg, "S,loadavg", "Machine loadaverage history");
|
||||
SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT | CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE, NULL, 0, sysctl_vm_loadavg, "S,loadavg",
|
||||
"Machine loadaverage history");
|
||||
|
||||
static int
|
||||
vmtotal(SYSCTL_HANDLER_ARGS)
|
||||
@ -109,7 +110,6 @@ vmtotal(SYSCTL_HANDLER_ARGS)
|
||||
/*
|
||||
* Mark all objects as inactive.
|
||||
*/
|
||||
GIANT_REQUIRED;
|
||||
mtx_lock(&vm_object_list_mtx);
|
||||
TAILQ_FOREACH(object, &vm_object_list, object_list) {
|
||||
if (!VM_OBJECT_TRYLOCK(object)) {
|
||||
@ -269,7 +269,7 @@ vcnt(SYSCTL_HANDLER_ARGS)
|
||||
return (SYSCTL_OUT(req, &count, sizeof(int)));
|
||||
}
|
||||
|
||||
SYSCTL_PROC(_vm, VM_TOTAL, vmtotal, CTLTYPE_OPAQUE|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm, VM_TOTAL, vmtotal, CTLTYPE_OPAQUE|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
|
||||
"System virtual memory statistics");
|
||||
SYSCTL_NODE(_vm, OID_AUTO, stats, CTLFLAG_RW, 0, "VM meter stats");
|
||||
@ -279,103 +279,103 @@ static SYSCTL_NODE(_vm_stats, OID_AUTO, vm, CTLFLAG_RW, 0,
|
||||
"VM meter vm stats");
|
||||
SYSCTL_NODE(_vm_stats, OID_AUTO, misc, CTLFLAG_RW, 0, "VM meter misc stats");
|
||||
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_swtch, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_swtch, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_swtch, 0, vcnt, "IU", "Context switches");
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_trap, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_trap, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_trap, 0, vcnt, "IU", "Traps");
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_syscall, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_syscall, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_syscall, 0, vcnt, "IU", "Syscalls");
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_intr, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_intr, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_intr, 0, vcnt, "IU", "Hardware interrupts");
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_soft, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_sys, OID_AUTO, v_soft, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_soft, 0, vcnt, "IU", "Software interrupts");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vm_faults, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vm_faults, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vm_faults, 0, vcnt, "IU", "VM faults");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_faults, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_faults, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_cow_faults, 0, vcnt, "IU", "COW faults");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_optim, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cow_optim, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_cow_optim, 0, vcnt, "IU", "Optimized COW faults");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_zfod, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_zfod, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_zfod, 0, vcnt, "IU", "Zero fill");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_ozfod, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_ozfod, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_ozfod, 0, vcnt, "IU", "Optimized zero fill");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapin, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_swapin, 0, vcnt, "IU", "Swapin operations");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapout, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swapout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_swapout, 0, vcnt, "IU", "Swapout operations");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsin, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_swappgsin, 0, vcnt, "IU", "Swapin pages");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsout, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_swappgsout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_swappgsout, 0, vcnt, "IU", "Swapout pages");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodein, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodein, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vnodein, 0, vcnt, "IU", "Vnodein operations");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodeout, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodeout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vnodeout, 0, vcnt, "IU", "Vnodeout operations");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsin, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsin, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vnodepgsin, 0, vcnt, "IU", "Vnodein pages");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsout, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vnodepgsout, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vnodepgsout, 0, vcnt, "IU", "Vnodeout pages");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_intrans, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_intrans, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_intrans, 0, vcnt, "IU", "In transit page blocking");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_reactivated, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_reactivated, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_reactivated, 0, vcnt, "IU", "Reactivated pages");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdwakeups, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdwakeups, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_pdwakeups, 0, vcnt, "IU", "Pagedaemon wakeups");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdpages, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_pdpages, 0, vcnt, "IU", "Pagedaemon page scans");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tcached, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tcached, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_tcached, 0, vcnt, "IU", "Total pages cached");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_dfree, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_dfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_dfree, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pfree, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_pfree, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tfree, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_tfree, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_tfree, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_size, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_size, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_page_size, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_page_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_page_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_reserved, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_reserved, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_free_reserved, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_target, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_target, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_free_target, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_min, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_free_min, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_free_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_free_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_wire_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_wire_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_wire_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_active_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_active_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_active_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_target, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_target, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_inactive_target, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_inactive_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_inactive_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_count, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_count, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_cache_count, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_min, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_cache_min, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_max, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_cache_max, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_cache_max, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pageout_free_min, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pageout_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_pageout_free_min, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_interrupt_free_min, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_interrupt_free_min, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_interrupt_free_min, 0, vcnt, "IU", "");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forks, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_forks, 0, vcnt, "IU", "Number of fork() calls");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforks, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vforks, 0, vcnt, "IU", "Number of vfork() calls");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforks, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforks, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_rforks, 0, vcnt, "IU", "Number of rfork() calls");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreads, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreads, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_kthreads, 0, vcnt, "IU", "Number of fork() calls by kernel");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forkpages, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_forkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_forkpages, 0, vcnt, "IU", "VM pages affected by fork()");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforkpages, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_vforkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_vforkpages, 0, vcnt, "IU", "VM pages affected by vfork()");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforkpages, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_rforkpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_rforkpages, 0, vcnt, "IU", "VM pages affected by rfork()");
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreadpages, CTLTYPE_UINT|CTLFLAG_RD,
|
||||
SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_kthreadpages, CTLTYPE_UINT|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
&cnt.v_kthreadpages, 0, vcnt, "IU", "VM pages affected by fork() by kernel");
|
||||
|
||||
SYSCTL_INT(_vm_stats_misc, OID_AUTO,
|
||||
|
Loading…
Reference in New Issue
Block a user