diff options
author | zont <zont@FreeBSD.org> | 2013-01-28 12:54:53 +0000 |
---|---|---|
committer | zont <zont@FreeBSD.org> | 2013-01-28 12:54:53 +0000 |
commit | b5edc96a845fd932d89c81b1732a89386ea911ad (patch) | |
tree | f0f1e93efdda800750720eb48a26324204721198 | |
parent | 875b69507cd94ec1198d3d62a3f11b71b26cb756 (diff) | |
download | FreeBSD-src-b5edc96a845fd932d89c81b1732a89386ea911ad.zip FreeBSD-src-b5edc96a845fd932d89c81b1732a89386ea911ad.tar.gz |
- Add system wide page faults requiring I/O counter.
Reviewed by: alc
MFC after: 2 weeks
-rw-r--r-- | sys/sys/vmmeter.h | 1 | ||||
-rw-r--r-- | sys/vm/vm_fault.c | 5 | ||||
-rw-r--r-- | sys/vm/vm_meter.c | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/sys/sys/vmmeter.h b/sys/sys/vmmeter.h index 1a29ec1..59b430d 100644 --- a/sys/sys/vmmeter.h +++ b/sys/sys/vmmeter.h @@ -61,6 +61,7 @@ struct vmmeter { * Virtual memory activity. */ u_int v_vm_faults; /* (p) address memory faults */ + u_int v_io_faults; /* (p) page faults requiring I/O */ u_int v_cow_faults; /* (p) copy-on-writes faults */ u_int v_cow_optim; /* (p) optimized copy-on-writes faults */ u_int v_zfod; /* (p) pages zero filled on demand */ diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 6865782..b79b3f5 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -939,9 +939,10 @@ vnode_locked: * Unlock everything, and return */ unlock_and_deallocate(&fs); - if (hardfault) + if (hardfault) { + PCPU_INC(cnt.v_io_faults); curthread->td_ru.ru_majflt++; - else + } else curthread->td_ru.ru_minflt++; return (KERN_SUCCESS); diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c index b5bb0fa..05174e9 100644 --- a/sys/vm/vm_meter.c +++ b/sys/vm/vm_meter.c @@ -283,6 +283,7 @@ VM_STATS_SYS(v_syscall, "System calls"); VM_STATS_SYS(v_intr, "Device interrupts"); VM_STATS_SYS(v_soft, "Software interrupts"); VM_STATS_VM(v_vm_faults, "Address memory faults"); +VM_STATS_VM(v_io_faults, "Page faults requiring I/O"); VM_STATS_VM(v_cow_faults, "Copy-on-write faults"); VM_STATS_VM(v_cow_optim, "Optimized COW faults"); VM_STATS_VM(v_zfod, "Pages zero-filled on demand"); |