Module Name:    src
Committed By:   christos
Date:           Mon May  7 21:00:14 UTC 2018

Modified Files:
        src/sys/uvm: uvm_fault.c uvm_fault_i.h

Log Message:
update maxrss (used to always be 0). Patterned after the OpenBSD changes.


To generate a diff of this commit:
cvs rdiff -u -r1.202 -r1.203 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.29 -r1.30 src/sys/uvm/uvm_fault_i.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/uvm/uvm_fault.c
diff -u src/sys/uvm/uvm_fault.c:1.202 src/sys/uvm/uvm_fault.c:1.203
--- src/sys/uvm/uvm_fault.c:1.202	Mon Nov 20 16:06:54 2017
+++ src/sys/uvm/uvm_fault.c	Mon May  7 17:00:14 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault.c,v 1.202 2017/11/20 21:06:54 chs Exp $	*/
+/*	$NetBSD: uvm_fault.c,v 1.203 2018/05/07 21:00:14 christos Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.202 2017/11/20 21:06:54 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.203 2018/05/07 21:00:14 christos Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -653,6 +653,33 @@ done:
 	return error;
 }
 
+/*
+ * Update statistics after fault resolution.
+ * - maxrss
+ */
+void
+uvmfault_update_stats(struct uvm_faultinfo *ufi)
+{
+	struct vm_map		*map;
+	struct proc		*p;
+	struct lwp		*l;
+	vsize_t			 res;
+
+	map = ufi->orig_map;
+
+	p = curproc;
+	KASSERT(p != NULL);
+	if (&p->p_vmspace->vm_map != map)
+		return;
+
+	res = pmap_resident_count(map->pmap);
+	/* Convert res from pages to kilobytes. */
+	res <<= (PAGE_SHIFT - 10);
+
+	l = curlwp;
+	if (l->l_ru.ru_maxrss < res)
+		l->l_ru.ru_maxrss = res;
+}
 
 /*
  *   F A U L T   -   m a i n   e n t r y   p o i n t

Index: src/sys/uvm/uvm_fault_i.h
diff -u src/sys/uvm/uvm_fault_i.h:1.29 src/sys/uvm/uvm_fault_i.h:1.30
--- src/sys/uvm/uvm_fault_i.h:1.29	Thu Apr 19 17:50:10 2018
+++ src/sys/uvm/uvm_fault_i.h	Mon May  7 17:00:14 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault_i.h,v 1.29 2018/04/19 21:50:10 christos Exp $	*/
+/*	$NetBSD: uvm_fault_i.h,v 1.30 2018/05/07 21:00:14 christos Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -33,6 +33,8 @@
 /*
  * uvm_fault_i.h: fault inline functions
  */
+void uvmfault_update_stats(struct uvm_faultinfo *);
+
 
 /*
  * uvmfault_unlockmaps: unlock the maps
@@ -50,6 +52,7 @@ uvmfault_unlockmaps(struct uvm_faultinfo
 		return;
 	}
 
+	uvmfault_update_stats(ufi);
 	if (write_locked) {
 		vm_map_unlock(ufi->map);
 	} else {

Reply via email to