summaryrefslogtreecommitdiffstats
path: root/usr.bin/systat
diff options
context:
space:
mode:
authorzont <zont@FreeBSD.org>2013-01-28 12:57:42 +0000
committerzont <zont@FreeBSD.org>2013-01-28 12:57:42 +0000
commit8b5d522b68095fe93e962912b0103acc1c5e4ee4 (patch)
tree8a2c87775ccb95f929a6f4459a3ab19395a2cf56 /usr.bin/systat
parentb5edc96a845fd932d89c81b1732a89386ea911ad (diff)
downloadFreeBSD-src-8b5d522b68095fe93e962912b0103acc1c5e4ee4.zip
FreeBSD-src-8b5d522b68095fe93e962912b0103acc1c5e4ee4.tar.gz
- Show page faults requiring I/O on vmstat display.
Reviewed by: alc MFC after: 2 weeks
Diffstat (limited to 'usr.bin/systat')
-rw-r--r--usr.bin/systat/vmstat.c76
1 files changed, 40 insertions, 36 deletions
diff --git a/usr.bin/systat/vmstat.c b/usr.bin/systat/vmstat.c
index 459b58d..856a9a6 100644
--- a/usr.bin/systat/vmstat.c
+++ b/usr.bin/systat/vmstat.c
@@ -79,6 +79,7 @@ static struct Info {
* Virtual memory activity.
*/
u_int v_vm_faults; /* number of address memory faults */
+ u_int v_io_faults; /* page faults requiring I/O */
u_int v_cow_faults; /* number of copy-on-writes */
u_int v_zfod; /* pages zero filled on demand */
u_int v_ozfod; /* optimized zero fill pages */
@@ -324,24 +325,25 @@ labelkre(void)
mvprintw(INTSROW, INTSCOL + 1, "Interrupts");
mvprintw(INTSROW + 1, INTSCOL + 6, "total");
- mvprintw(VMSTATROW, VMSTATCOL + 9, "cow");
- mvprintw(VMSTATROW + 1, VMSTATCOL + 9, "zfod");
- mvprintw(VMSTATROW + 2, VMSTATCOL + 9, "ozfod");
- mvprintw(VMSTATROW + 3, VMSTATCOL + 9 - 1, "%%ozfod");
- mvprintw(VMSTATROW + 4, VMSTATCOL + 9, "daefr");
- mvprintw(VMSTATROW + 5, VMSTATCOL + 9, "prcfr");
- mvprintw(VMSTATROW + 6, VMSTATCOL + 9, "totfr");
- mvprintw(VMSTATROW + 7, VMSTATCOL + 9, "react");
- mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "pdwak");
- mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdpgs");
- mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "intrn");
- mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "wire");
- mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "act");
- mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "inact");
- mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "cache");
- mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "free");
- if (LINES - 1 > VMSTATROW + 16)
- mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "buf");
+ mvprintw(VMSTATROW, VMSTATCOL + 9, "ioflt");
+ mvprintw(VMSTATROW + 1, VMSTATCOL + 9, "cow");
+ mvprintw(VMSTATROW + 2, VMSTATCOL + 9, "zfod");
+ mvprintw(VMSTATROW + 3, VMSTATCOL + 9, "ozfod");
+ mvprintw(VMSTATROW + 4, VMSTATCOL + 9 - 1, "%%ozfod");
+ mvprintw(VMSTATROW + 5, VMSTATCOL + 9, "daefr");
+ mvprintw(VMSTATROW + 6, VMSTATCOL + 9, "prcfr");
+ mvprintw(VMSTATROW + 7, VMSTATCOL + 9, "totfr");
+ mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "react");
+ mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdwak");
+ mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "pdpgs");
+ mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "intrn");
+ mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire");
+ mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act");
+ mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact");
+ mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "cache");
+ mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free");
+ if (LINES - 1 > VMSTATROW + 17)
+ mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf");
mvprintw(GENSTATROW, GENSTATCOL, " Csw Trp Sys Int Sof Flt");
@@ -493,25 +495,26 @@ showkre(void)
putint(total.t_dw, PROCSROW + 2, PROCSCOL + 8, 3);
putint(total.t_sl, PROCSROW + 2, PROCSCOL + 12, 3);
putint(total.t_sw, PROCSROW + 2, PROCSCOL + 16, 3);
- PUTRATE(v_cow_faults, VMSTATROW, VMSTATCOL + 2, 8 - 2);
- PUTRATE(v_zfod, VMSTATROW + 1, VMSTATCOL + 2, 8 - 2);
- PUTRATE(v_ozfod, VMSTATROW + 2, VMSTATCOL, 8);
+ PUTRATE(v_io_faults, VMSTATROW, VMSTATCOL + 2, 8 - 2);
+ PUTRATE(v_cow_faults, VMSTATROW + 1, VMSTATCOL + 2, 8 - 2);
+ PUTRATE(v_zfod, VMSTATROW + 2, VMSTATCOL + 2, 8 - 2);
+ PUTRATE(v_ozfod, VMSTATROW + 3, VMSTATCOL, 8);
putint(s.v_zfod != 0 ? (int)(s.v_ozfod * 100.0 / s.v_zfod) : 0,
- VMSTATROW + 3, VMSTATCOL + 1, 8 - 1);
- PUTRATE(v_dfree, VMSTATROW + 4, VMSTATCOL + 2, 8 - 2);
- PUTRATE(v_pfree, VMSTATROW + 5, VMSTATCOL + 2, 8 - 2);
- PUTRATE(v_tfree, VMSTATROW + 6, VMSTATCOL, 8);
- PUTRATE(v_reactivated, VMSTATROW + 7, VMSTATCOL, 8);
- PUTRATE(v_pdwakeups, VMSTATROW + 8, VMSTATCOL, 8);
- PUTRATE(v_pdpages, VMSTATROW + 9, VMSTATCOL, 8);
- PUTRATE(v_intrans, VMSTATROW + 10, VMSTATCOL, 8);
- putint(pgtokb(s.v_wire_count), VMSTATROW + 11, VMSTATCOL, 8);
- putint(pgtokb(s.v_active_count), VMSTATROW + 12, VMSTATCOL, 8);
- putint(pgtokb(s.v_inactive_count), VMSTATROW + 13, VMSTATCOL, 8);
- putint(pgtokb(s.v_cache_count), VMSTATROW + 14, VMSTATCOL, 8);
- putint(pgtokb(s.v_free_count), VMSTATROW + 15, VMSTATCOL, 8);
- if (LINES - 1 > VMSTATROW + 16)
- putint(s.bufspace / 1024, VMSTATROW + 16, VMSTATCOL, 8);
+ VMSTATROW + 4, VMSTATCOL + 1, 8 - 1);
+ PUTRATE(v_dfree, VMSTATROW + 5, VMSTATCOL + 2, 8 - 2);
+ PUTRATE(v_pfree, VMSTATROW + 6, VMSTATCOL + 2, 8 - 2);
+ PUTRATE(v_tfree, VMSTATROW + 7, VMSTATCOL, 8);
+ PUTRATE(v_reactivated, VMSTATROW + 8, VMSTATCOL, 8);
+ PUTRATE(v_pdwakeups, VMSTATROW + 9, VMSTATCOL, 8);
+ PUTRATE(v_pdpages, VMSTATROW + 10, VMSTATCOL, 8);
+ PUTRATE(v_intrans, VMSTATROW + 11, VMSTATCOL, 8);
+ putint(pgtokb(s.v_wire_count), VMSTATROW + 12, VMSTATCOL, 8);
+ putint(pgtokb(s.v_active_count), VMSTATROW + 13, VMSTATCOL, 8);
+ putint(pgtokb(s.v_inactive_count), VMSTATROW + 14, VMSTATCOL, 8);
+ putint(pgtokb(s.v_cache_count), VMSTATROW + 15, VMSTATCOL, 8);
+ putint(pgtokb(s.v_free_count), VMSTATROW + 16, VMSTATCOL, 8);
+ if (LINES - 1 > VMSTATROW + 17)
+ putint(s.bufspace / 1024, VMSTATROW + 17, VMSTATCOL, 8);
PUTRATE(v_vnodein, PAGEROW + 2, PAGECOL + 6, 5);
PUTRATE(v_vnodeout, PAGEROW + 2, PAGECOL + 12, 5);
PUTRATE(v_swapin, PAGEROW + 2, PAGECOL + 19, 5);
@@ -751,6 +754,7 @@ getinfo(struct Info *ls)
GETSYSCTL("vm.stats.sys.v_intr", ls->v_intr);
GETSYSCTL("vm.stats.sys.v_soft", ls->v_soft);
GETSYSCTL("vm.stats.vm.v_vm_faults", ls->v_vm_faults);
+ GETSYSCTL("vm.stats.vm.v_io_faults", ls->v_io_faults);
GETSYSCTL("vm.stats.vm.v_cow_faults", ls->v_cow_faults);
GETSYSCTL("vm.stats.vm.v_zfod", ls->v_zfod);
GETSYSCTL("vm.stats.vm.v_ozfod", ls->v_ozfod);
OpenPOWER on IntegriCloud