summaryrefslogtreecommitdiff
path: root/sys/uvm/uvmexp.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2014-07-08 17:19:27 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2014-07-08 17:19:27 +0000
commitca6b780f3bfa5c9a89ba92e6cd2521c9329cdc0f (patch)
tree42548dbe5d3a602c490a5126d137dcdef5c71c6f /sys/uvm/uvmexp.h
parent0ed1c38073e501cc08c2d664396820fe904f718c (diff)
decouple struct uvmexp into a new file, so that uvm_extern.h and sysctl.h
don't need to be married. ok guenther miod beck jsing kettenis
Diffstat (limited to 'sys/uvm/uvmexp.h')
-rw-r--r--sys/uvm/uvmexp.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/sys/uvm/uvmexp.h b/sys/uvm/uvmexp.h
new file mode 100644
index 00000000000..cae4458d756
--- /dev/null
+++ b/sys/uvm/uvmexp.h
@@ -0,0 +1,152 @@
+/* $OpenBSD: uvmexp.h,v 1.1 2014/07/08 17:19:26 deraadt Exp $ */
+
+#ifndef _UVM_UVMEXP_
+#define _UVM_UVMEXP_
+
+/*
+ * CTL_VM identifiers
+ */
+#define VM_METER 1 /* struct vmmeter */
+#define VM_LOADAVG 2 /* struct loadavg */
+#define VM_PSSTRINGS 3 /* PSSTRINGS */
+#define VM_UVMEXP 4 /* struct uvmexp */
+#define VM_SWAPENCRYPT 5 /* int */
+#define VM_NKMEMPAGES 6 /* int - # kmem_map pages */
+#define VM_ANONMIN 7
+#define VM_VTEXTMIN 8
+#define VM_VNODEMIN 9
+#define VM_MAXSLP 10
+#define VM_USPACE 11
+#define VM_MAXID 12 /* number of valid vm ids */
+
+#define CTL_VM_NAMES { \
+ { 0, 0 }, \
+ { "vmmeter", CTLTYPE_STRUCT }, \
+ { "loadavg", CTLTYPE_STRUCT }, \
+ { "psstrings", CTLTYPE_STRUCT }, \
+ { "uvmexp", CTLTYPE_STRUCT }, \
+ { "swapencrypt", CTLTYPE_NODE }, \
+ { "nkmempages", CTLTYPE_INT }, \
+ { "anonmin", CTLTYPE_INT }, \
+ { "vtextmin", CTLTYPE_INT }, \
+ { "vnodemin", CTLTYPE_INT }, \
+ { "maxslp", CTLTYPE_INT }, \
+ { "uspace", CTLTYPE_INT }, \
+}
+
+/*
+ * uvmexp: global data structures that are exported to parts of the kernel
+ * other than the vm system.
+ */
+struct uvmexp {
+ /* vm_page constants */
+ int pagesize; /* size of a page (PAGE_SIZE): must be power of 2 */
+ int pagemask; /* page mask */
+ int pageshift; /* page shift */
+
+ /* vm_page counters */
+ int npages; /* number of pages we manage */
+ int free; /* number of free pages */
+ int active; /* number of active pages */
+ int inactive; /* number of pages that we free'd but may want back */
+ int paging; /* number of pages in the process of being paged out */
+ int wired; /* number of wired pages */
+
+ int zeropages; /* number of zero'd pages */
+ int reserve_pagedaemon; /* number of pages reserved for pagedaemon */
+ int reserve_kernel; /* number of pages reserved for kernel */
+ int anonpages; /* number of pages used by anon pagers */
+ int vnodepages; /* number of pages used by vnode page cache */
+ int vtextpages; /* number of pages used by vtext vnodes */
+
+ /* pageout params */
+ int freemin; /* min number of free pages */
+ int freetarg; /* target number of free pages */
+ int inactarg; /* target number of inactive pages */
+ int wiredmax; /* max number of wired pages */
+ int anonmin; /* min threshold for anon pages */
+ int vtextmin; /* min threshold for vtext pages */
+ int vnodemin; /* min threshold for vnode pages */
+ int anonminpct; /* min percent anon pages */
+ int vtextminpct;/* min percent vtext pages */
+ int vnodeminpct;/* min percent vnode pages */
+
+ /* swap */
+ int nswapdev; /* number of configured swap devices in system */
+ int swpages; /* number of PAGE_SIZE'ed swap pages */
+ int swpginuse; /* number of swap pages in use */
+ int swpgonly; /* number of swap pages in use, not also in RAM */
+ int nswget; /* number of times fault calls uvm_swap_get() */
+ int nanon; /* number total of anon's in system */
+ int nanonneeded;/* number of anons currently needed */
+ int nfreeanon; /* number of free anon's */
+
+ /* stat counters */
+ int faults; /* page fault count */
+ int traps; /* trap count */
+ int intrs; /* interrupt count */
+ int swtch; /* context switch count */
+ int softs; /* software interrupt count */
+ int syscalls; /* system calls */
+ int pageins; /* pagein operation count */
+ /* pageouts are in pdpageouts below */
+ int obsolete_swapins; /* swapins */
+ int obsolete_swapouts; /* swapouts */
+ int pgswapin; /* pages swapped in */
+ int pgswapout; /* pages swapped out */
+ int forks; /* forks */
+ int forks_ppwait; /* forks where parent waits */
+ int forks_sharevm; /* forks where vmspace is shared */
+ int pga_zerohit; /* pagealloc where zero wanted and zero
+ was available */
+ int pga_zeromiss; /* pagealloc where zero wanted and zero
+ not available */
+ int zeroaborts; /* number of times page zeroing was
+ aborted */
+
+ /* fault subcounters */
+ int fltnoram; /* number of times fault was out of ram */
+ int fltnoanon; /* number of times fault was out of anons */
+ int fltpgwait; /* number of times fault had to wait on a page */
+ int fltpgrele; /* number of times fault found a released page */
+ int fltrelck; /* number of times fault relock called */
+ int fltrelckok; /* number of times fault relock is a success */
+ int fltanget; /* number of times fault gets anon page */
+ int fltanretry; /* number of times fault retrys an anon get */
+ int fltamcopy; /* number of times fault clears "needs copy" */
+ int fltnamap; /* number of times fault maps a neighbor anon page */
+ int fltnomap; /* number of times fault maps a neighbor obj page */
+ int fltlget; /* number of times fault does a locked pgo_get */
+ int fltget; /* number of times fault does an unlocked get */
+ int flt_anon; /* number of times fault anon (case 1a) */
+ int flt_acow; /* number of times fault anon cow (case 1b) */
+ int flt_obj; /* number of times fault is on object page (2a) */
+ int flt_prcopy; /* number of times fault promotes with copy (2b) */
+ int flt_przero; /* number of times fault promotes with zerofill (2b) */
+
+ /* daemon counters */
+ int pdwoke; /* number of times daemon woke up */
+ int pdrevs; /* number of times daemon rev'd clock hand */
+ int pdswout; /* number of times daemon called for swapout */
+ int pdfreed; /* number of pages daemon freed since boot */
+ int pdscans; /* number of pages daemon scanned since boot */
+ int pdanscan; /* number of anonymous pages scanned by daemon */
+ int pdobscan; /* number of object pages scanned by daemon */
+ int pdreact; /* number of pages daemon reactivated since boot */
+ int pdbusy; /* number of times daemon found a busy page */
+ int pdpageouts; /* number of times daemon started a pageout */
+ int pdpending; /* number of times daemon got a pending pagout */
+ int pddeact; /* number of pages daemon deactivates */
+ int pdreanon; /* anon pages reactivated due to min threshold */
+ int pdrevnode; /* vnode pages reactivated due to min threshold */
+ int pdrevtext; /* vtext pages reactivated due to min threshold */
+
+ int fpswtch; /* FPU context switches */
+ int kmapent; /* number of kernel map entries */
+};
+
+struct _ps_strings {
+ void *val;
+};
+
+#endif /*_UVM_UVMEXP_ */