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 {