Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/uvm update maxrss (used to always be 0). Patterned after...
details: https://anonhg.NetBSD.org/src/rev/3a253bb02fd5
branches: trunk
changeset: 322563:3a253bb02fd5
user: christos <christos%NetBSD.org@localhost>
date: Mon May 07 21:00:14 2018 +0000
description:
update maxrss (used to always be 0). Patterned after the OpenBSD changes.
diffstat:
sys/uvm/uvm_fault.c | 31 +++++++++++++++++++++++++++++--
sys/uvm/uvm_fault_i.h | 5 ++++-
2 files changed, 33 insertions(+), 3 deletions(-)
diffs (78 lines):
diff -r 607ebc026196 -r 3a253bb02fd5 sys/uvm/uvm_fault.c
--- a/sys/uvm/uvm_fault.c Mon May 07 19:34:03 2018 +0000
+++ b/sys/uvm/uvm_fault.c Mon May 07 21:00:14 2018 +0000
@@ -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 @@
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
diff -r 607ebc026196 -r 3a253bb02fd5 sys/uvm/uvm_fault_i.h
--- a/sys/uvm/uvm_fault_i.h Mon May 07 19:34:03 2018 +0000
+++ b/sys/uvm/uvm_fault_i.h Mon May 07 21:00:14 2018 +0000
@@ -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 @@
return;
}
+ uvmfault_update_stats(ufi);
if (write_locked) {
vm_map_unlock(ufi->map);
} else {
Home |
Main Index |
Thread Index |
Old Index