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 {