[Midnightbsd-cvs] src [7926] trunk/sys/kern/vfs_vnops.c: count and export the number of prefaulting happen.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Sep 14 17:00:38 EDT 2016


Revision: 7926
          http://svnweb.midnightbsd.org/src/?rev=7926
Author:   laffer1
Date:     2016-09-14 17:00:38 -0400 (Wed, 14 Sep 2016)
Log Message:
-----------
count and export the number of prefaulting happen.

Obtained from: FreeBSD

Modified Paths:
--------------
    trunk/sys/kern/vfs_vnops.c

Modified: trunk/sys/kern/vfs_vnops.c
===================================================================
--- trunk/sys/kern/vfs_vnops.c	2016-09-14 20:52:11 UTC (rev 7925)
+++ trunk/sys/kern/vfs_vnops.c	2016-09-14 21:00:38 UTC (rev 7926)
@@ -56,6 +56,7 @@
 #include <sys/filio.h>
 #include <sys/resourcevar.h>
 #include <sys/sx.h>
+#include <sys/sysctl.h>
 #include <sys/ttycom.h>
 #include <sys/conf.h>
 #include <sys/syslog.h>
@@ -766,6 +767,9 @@
 }
 
 static const int io_hold_cnt = 16;
+static unsigned long vn_io_faults_cnt;
+SYSCTL_LONG(_debug, OID_AUTO, vn_io_faults, CTLFLAG_RD,
+    &vn_io_faults_cnt, 0, "Count of vn_io_fault lock avoidance triggers");
 
 /*
  * The vn_io_fault() is a wrapper around vn_read() and vn_write() to
@@ -863,6 +867,7 @@
 	if (error != EFAULT)
 		goto out;
 
+	atomic_add_long(&vn_io_faults_cnt, 1);
 	uio_clone->uio_segflg = UIO_NOCOPY;
 	uiomove(NULL, resid - uio->uio_resid, uio_clone);
 	uio_clone->uio_segflg = uio->uio_segflg;



More information about the Midnightbsd-cvs mailing list