[Midnightbsd-cvs] src [12326] trunk/sys/sys/vmmeter.h: sync with FreeBSD 11-stable
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Feb 8 14:53:26 EST 2020
Revision: 12326
http://svnweb.midnightbsd.org/src/?rev=12326
Author: laffer1
Date: 2020-02-08 14:53:25 -0500 (Sat, 08 Feb 2020)
Log Message:
-----------
sync with FreeBSD 11-stable
Modified Paths:
--------------
trunk/sys/sys/vmmeter.h
Modified: trunk/sys/sys/vmmeter.h
===================================================================
--- trunk/sys/sys/vmmeter.h 2020-02-08 19:52:43 UTC (rev 12325)
+++ trunk/sys/sys/vmmeter.h 2020-02-08 19:53:25 UTC (rev 12326)
@@ -28,7 +28,7 @@
* SUCH DAMAGE.
*
* @(#)vmmeter.h 8.2 (Berkeley) 7/10/94
- * $FreeBSD: stable/10/sys/sys/vmmeter.h 330047 2018-02-27 01:28:19Z jhb $
+ * $FreeBSD: stable/11/sys/sys/vmmeter.h 331722 2018-03-29 02:50:57Z eadler $
*/
#ifndef _SYS_VMMETER_H_
@@ -76,9 +76,10 @@
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_pdwakeups; /* (f) times daemon has awaken from sleep */
+ 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 */
@@ -97,9 +98,8 @@
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_cache_min; /* (c) min pages desired on cache queue */
- u_int v_cache_max; /* (c) max pages in cached obj (unused) */
u_int v_pageout_free_min; /* (c) min pages reserved for kernel */
u_int v_interrupt_free_min; /* (c) reserved pages for int code */
u_int v_free_severe; /* (c) severe page depletion point */
@@ -117,9 +117,9 @@
};
#ifdef _KERNEL
-extern struct vmmeter cnt;
+extern struct vmmeter vm_cnt;
-extern int vm_pageout_wakeup_thresh;
+extern u_int vm_pageout_wakeup_thresh;
/*
* Return TRUE if we are under our severe low-free-pages threshold
@@ -127,12 +127,11 @@
* This routine is typically used at the user<->system interface to determine
* whether we need to block in order to avoid a low memory deadlock.
*/
-
-static __inline
-int
+static inline int
vm_page_count_severe(void)
{
- return (cnt.v_free_severe > (cnt.v_free_count + cnt.v_cache_count));
+
+ return (vm_cnt.v_free_severe > vm_cnt.v_free_count);
}
/*
@@ -142,14 +141,13 @@
* we can execute potentially very expensive code in terms of memory. It
* is also used by the pageout daemon to calculate when to sleep, when
* to wake waiters up, and when (after making a pass) to become more
- * desparate.
+ * desperate.
*/
-
-static __inline
-int
+static inline int
vm_page_count_min(void)
{
- return (cnt.v_free_min > (cnt.v_free_count + cnt.v_cache_count));
+
+ return (vm_cnt.v_free_min > vm_cnt.v_free_count);
}
/*
@@ -156,12 +154,11 @@
* Return TRUE if we have not reached our free page target during
* free page recovery operations.
*/
-
-static __inline
-int
+static inline int
vm_page_count_target(void)
{
- return (cnt.v_free_target > (cnt.v_free_count + cnt.v_cache_count));
+
+ return (vm_cnt.v_free_target > vm_cnt.v_free_count);
}
/*
@@ -168,26 +165,42 @@
* Return the number of pages we need to free-up or cache
* A positive number indicates that we do not have enough free pages.
*/
-
-static __inline
-int
+static inline int
vm_paging_target(void)
{
- return (cnt.v_free_target - (cnt.v_free_count + cnt.v_cache_count));
+
+ return (vm_cnt.v_free_target - vm_cnt.v_free_count);
}
/*
* Returns TRUE if the pagedaemon needs to be woken up.
*/
+static inline int
+vm_paging_needed(u_int free_count)
+{
-static __inline
-int
-vm_paging_needed(void)
+ return (free_count < 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 (cnt.v_free_count + cnt.v_cache_count <
- (u_int)vm_pageout_wakeup_thresh);
+
+ 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
struct vmtotal {
More information about the Midnightbsd-cvs
mailing list