summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2017-05-23 07:27:30 +0000
committermarkj <markj@FreeBSD.org>2017-05-23 07:27:30 +0000
commitb1d352b152cd31bddbbb83670b7f45a213ca52cb (patch)
treed6aa7d62302443402a45530a50b241fd0f5128b9 /sys/sys
parenta6749049ae872846ba11cc9c7c14e8f8d61425f1 (diff)
downloadFreeBSD-src-b1d352b152cd31bddbbb83670b7f45a213ca52cb.zip
FreeBSD-src-b1d352b152cd31bddbbb83670b7f45a213ca52cb.tar.gz
MFC r308474, r308691, r309203, r309365, r309703, r309898, r310720,
r308489, r308706: Add PQ_LAUNDRY and remove PG_CACHED pages.
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/vmmeter.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/sys/sys/vmmeter.h b/sys/sys/vmmeter.h
index 55d3053..517be2d 100644
--- a/sys/sys/vmmeter.h
+++ b/sys/sys/vmmeter.h
@@ -75,9 +75,10 @@ struct vmmeter {
u_int v_vnodepgsin; /* (p) vnode_pager pages paged in */
u_int v_vnodepgsout; /* (p) vnode pager pages paged out */
u_int v_intrans; /* (p) intransit blocking page faults */
- u_int v_reactivated; /* (f) pages reactivated from free list */
+ u_int v_reactivated; /* (p) pages reactivated by the pagedaemon */
u_int v_pdwakeups; /* (p) times daemon has awaken from sleep */
u_int v_pdpages; /* (p) pages analyzed by daemon */
+ u_int v_pdshortfalls; /* (p) page reclamation shortfalls */
u_int v_tcached; /* (p) total pages cached */
u_int v_dfree; /* (p) pages freed by daemon */
@@ -96,6 +97,7 @@ struct vmmeter {
u_int v_active_count; /* (q) pages active */
u_int v_inactive_target; /* (c) pages desired inactive */
u_int v_inactive_count; /* (q) pages inactive */
+ u_int v_laundry_count; /* (q) pages eligible for laundering */
u_int v_cache_count; /* (f) pages on cache queue */
u_int v_pageout_free_min; /* (c) min pages reserved for kernel */
u_int v_interrupt_free_min; /* (c) reserved pages for int code */
@@ -111,7 +113,6 @@ struct vmmeter {
u_int v_vforkpages; /* (p) VM pages affected by vfork() */
u_int v_rforkpages; /* (p) VM pages affected by rfork() */
u_int v_kthreadpages; /* (p) VM pages affected by fork() by kernel */
- u_int v_spare[2];
};
#ifdef _KERNEL
@@ -184,6 +185,25 @@ vm_paging_needed(void)
(u_int)vm_pageout_wakeup_thresh);
}
+/*
+ * Return the number of pages we need to launder.
+ * A positive number indicates that we have a shortfall of clean pages.
+ */
+static inline int
+vm_laundry_target(void)
+{
+
+ return (vm_paging_target());
+}
+
+/*
+ * Obtain the value of a per-CPU counter.
+ */
+#define VM_METER_PCPU_CNT(member) \
+ vm_meter_cnt(__offsetof(struct vmmeter, member))
+
+u_int vm_meter_cnt(size_t);
+
#endif
/* systemwide totals computed every five seconds */
OpenPOWER on IntegriCloud