svn commit: r303866 - in user/alc/PQ_LAUNDRY/sys: sys vm
Mark Johnston
markj at FreeBSD.org
Tue Aug 9 04:41:35 UTC 2016
Author: markj
Date: Tue Aug 9 04:41:33 2016
New Revision: 303866
URL: https://svnweb.freebsd.org/changeset/base/303866
Log:
Repurpose v_reactivate to count reactivations by the pagedaemon threads.
Suggested and reviewed by: alc
Modified:
user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h
user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c
user/alc/PQ_LAUNDRY/sys/vm/vm_page.c
user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
Modified: user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Tue Aug 9 03:47:38 2016 (r303865)
+++ user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Tue Aug 9 04:41:33 2016 (r303866)
@@ -75,7 +75,7 @@ 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 */
Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Tue Aug 9 03:47:38 2016 (r303865)
+++ user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Tue Aug 9 04:41:33 2016 (r303866)
@@ -286,7 +286,7 @@ VM_STATS_VM(v_vnodeout, "Vnode pager pag
VM_STATS_VM(v_vnodepgsin, "Vnode pages paged in");
VM_STATS_VM(v_vnodepgsout, "Vnode pages paged out");
VM_STATS_VM(v_intrans, "In transit page faults");
-VM_STATS_VM(v_reactivated, "Pages reactivated from free list");
+VM_STATS_VM(v_reactivated, "Pages reactivated by pagedaemon");
VM_STATS_VM(v_pdwakeups, "Pagedaemon wakeups");
VM_STATS_VM(v_pdpages, "Pages analyzed by pagedaemon");
VM_STATS_VM(v_tcached, "Total pages cached");
Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_page.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/vm_page.c Tue Aug 9 03:47:38 2016 (r303865)
+++ user/alc/PQ_LAUNDRY/sys/vm/vm_page.c Tue Aug 9 04:41:33 2016 (r303866)
@@ -1727,9 +1727,7 @@ vm_page_alloc(vm_object_t object, vm_pin
("vm_page_alloc: cached page %p is PG_ZERO", m));
KASSERT(m->valid != 0,
("vm_page_alloc: cached page %p is invalid", m));
- if (m->object == object && m->pindex == pindex)
- vm_cnt.v_reactivated++;
- else
+ if (m->object != object || m->pindex != pindex)
m->valid = 0;
m_object = m->object;
vm_page_cache_remove(m);
Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Tue Aug 9 03:47:38 2016 (r303865)
+++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Tue Aug 9 04:41:33 2016 (r303866)
@@ -954,6 +954,7 @@ vm_pageout_launder(struct vm_domain *vmd
}
if (act_delta != 0) {
if (object->ref_count != 0) {
+ PCPU_INC(cnt.v_reactivated);
vm_page_activate(m);
/*
@@ -1351,6 +1352,7 @@ unlock_page:
}
if (act_delta != 0) {
if (object->ref_count != 0) {
+ PCPU_INC(cnt.v_reactivated);
vm_page_activate(m);
/*
More information about the svn-src-user
mailing list