[BACK]Return to vmstat.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / systat

Diff for /src/usr.bin/systat/vmstat.c between version 1.23 and 1.24

version 1.23, 2001/06/22 14:57:21 version 1.24, 2001/06/27 06:16:49
Line 56 
Line 56 
 #include <sys/sysctl.h>  #include <sys/sysctl.h>
 #include <vm/vm.h>  #include <vm/vm.h>
   
 #if defined(UVM)  
 #include <uvm/uvm_extern.h>  #include <uvm/uvm_extern.h>
 #endif  
   
 #include <ctype.h>  #include <ctype.h>
 #include <err.h>  #include <err.h>
Line 81 
Line 79 
   
 static struct Info {  static struct Info {
         long    time[CPUSTATES];          long    time[CPUSTATES];
 #if defined(UVM)  
         struct  uvmexp uvmexp;          struct  uvmexp uvmexp;
 #else  
         struct  vmmeter Cnt;  
 #endif  
         struct  vmtotal Total;          struct  vmtotal Total;
         struct  nchstats nchstats;          struct  nchstats nchstats;
         long    nchcount;          long    nchcount;
Line 152 
Line 146 
 static struct nlist namelist[] = {  static struct nlist namelist[] = {
 #define X_CPTIME        0  #define X_CPTIME        0
         { "_cp_time" },          { "_cp_time" },
 #if defined(UVM)  
 #define X_UVMEXP        1  #define X_UVMEXP        1
         { "_uvmexp" },          { "_uvmexp" },
 #else  
 #define X_CNT           1  
         { "_cnt" },  
 #endif  
 #define X_NCHSTATS      2  #define X_NCHSTATS      2
         { "_nchstats" },          { "_nchstats" },
 #define X_INTRNAMES     3  #define X_INTRNAMES     3
Line 321 
Line 310 
   
         clear();          clear();
         mvprintw(STATROW, STATCOL + 4, "users    Load");          mvprintw(STATROW, STATCOL + 4, "users    Load");
 #if defined(UVM)  
         mvprintw(MEMROW, MEMCOL,     "          memory totals (in KB)");          mvprintw(MEMROW, MEMCOL,     "          memory totals (in KB)");
         mvprintw(MEMROW + 1, MEMCOL, "         real   virtual    free");          mvprintw(MEMROW + 1, MEMCOL, "         real   virtual    free");
         mvprintw(MEMROW + 2, MEMCOL, "Active");          mvprintw(MEMROW + 2, MEMCOL, "Active");
Line 331 
Line 319 
         mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");          mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");
         mvprintw(PAGEROW + 2, PAGECOL, "ops");          mvprintw(PAGEROW + 2, PAGECOL, "ops");
         mvprintw(PAGEROW + 3, PAGECOL, "pages");          mvprintw(PAGEROW + 3, PAGECOL, "pages");
 #else  
   
         mvprintw(MEMROW, MEMCOL, "Mem:KB  REAL        VIRTUAL");  
         mvprintw(MEMROW + 1, MEMCOL, "      Tot Share    Tot  Share");  
         mvprintw(MEMROW + 2, MEMCOL, "Act");  
         mvprintw(MEMROW + 3, MEMCOL, "All");  
   
         mvprintw(MEMROW + 1, MEMCOL + 32, "Free");  
   
         mvprintw(PAGEROW, PAGECOL,     "        PAGING   SWAPPING ");  
         mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");  
         mvprintw(PAGEROW + 2, PAGECOL, "count");  
         mvprintw(PAGEROW + 3, PAGECOL, "pages");  
 #endif  
   
         mvprintw(INTSROW, INTSCOL + 3, " Interrupts");          mvprintw(INTSROW, INTSCOL + 3, " Interrupts");
         mvprintw(INTSROW + 1, INTSCOL + 9, "total");          mvprintw(INTSROW + 1, INTSCOL + 9, "total");
   
 #if defined(UVM)  
         mvprintw(VMSTATROW + 0, VMSTATCOL + 10, "forks");          mvprintw(VMSTATROW + 0, VMSTATCOL + 10, "forks");
         mvprintw(VMSTATROW + 1, VMSTATCOL + 10, "fkppw");          mvprintw(VMSTATROW + 1, VMSTATCOL + 10, "fkppw");
         mvprintw(VMSTATROW + 2, VMSTATCOL + 10, "fksvm");          mvprintw(VMSTATROW + 2, VMSTATCOL + 10, "fksvm");
Line 368 
Line 341 
         mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "pdfre");          mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "pdfre");
         if (LINES - 1 > VMSTATROW + 16)          if (LINES - 1 > VMSTATROW + 16)
                 mvprintw(VMSTATROW + 16, VMSTATCOL + 10, "pdscn");                  mvprintw(VMSTATROW + 16, VMSTATCOL + 10, "pdscn");
 #else  
         mvprintw(VMSTATROW + 0, VMSTATCOL + 10, "cow");  
         mvprintw(VMSTATROW + 1, VMSTATCOL + 10, "objlk");  
         mvprintw(VMSTATROW + 2, VMSTATCOL + 10, "objht");  
         mvprintw(VMSTATROW + 3, VMSTATCOL + 10, "zfod");  
         mvprintw(VMSTATROW + 4, VMSTATCOL + 10, "nzfod");  
         mvprintw(VMSTATROW + 5, VMSTATCOL + 10, "%%zfod");  
         mvprintw(VMSTATROW + 6, VMSTATCOL + 10, "kern");  
         mvprintw(VMSTATROW + 7, VMSTATCOL + 10, "wire");  
         mvprintw(VMSTATROW + 8, VMSTATCOL + 10, "act");  
         mvprintw(VMSTATROW + 9, VMSTATCOL + 10, "inact");  
         mvprintw(VMSTATROW + 10, VMSTATCOL + 10, "free");  
         mvprintw(VMSTATROW + 11, VMSTATCOL + 10, "daefr");  
         mvprintw(VMSTATROW + 12, VMSTATCOL + 10, "prcfr");  
         mvprintw(VMSTATROW + 13, VMSTATCOL + 10, "react");  
         mvprintw(VMSTATROW + 14, VMSTATCOL + 10, "scan");  
         mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "hdrev");  
         if (LINES - 1 > VMSTATROW + 16)  
                 mvprintw(VMSTATROW + 16, VMSTATCOL + 10, "intrn");  
 #endif  
   
         mvprintw(GENSTATROW, GENSTATCOL, "  Csw  Trp  Sys  Int  Sof  Flt");          mvprintw(GENSTATROW, GENSTATCOL, "  Csw  Trp  Sys  Int  Sof  Flt");
   
         mvprintw(GRAPHROW, GRAPHCOL,          mvprintw(GRAPHROW, GRAPHCOL,
                 "    . %% Sys    . %% User    . %% Nice    . %% Idle");                  "    . %% Sys    . %% User    . %% Nice    . %% Idle");
 #if defined(UVM)  
         mvprintw(PROCSROW, PROCSCOL, "Proc:r  d  s  w");          mvprintw(PROCSROW, PROCSCOL, "Proc:r  d  s  w");
 #else  
         mvprintw(PROCSROW, PROCSCOL, "Proc:r  d  s  w  p");  
 #endif  
         mvprintw(GRAPHROW + 1, GRAPHCOL,          mvprintw(GRAPHROW + 1, GRAPHCOL,
                 "|    |    |    |    |    |    |    |    |    |    |");                  "|    |    |    |    |    |    |    |    |    |    |");
   
Line 527 
Line 476 
         putfloat(avenrun[1], STATROW, STATCOL + 23, 6, 2, 0);          putfloat(avenrun[1], STATROW, STATCOL + 23, 6, 2, 0);
         putfloat(avenrun[2], STATROW, STATCOL + 29, 6, 2, 0);          putfloat(avenrun[2], STATROW, STATCOL + 29, 6, 2, 0);
         mvaddstr(STATROW, STATCOL + 53, buf);          mvaddstr(STATROW, STATCOL + 53, buf);
 #if defined(UVM)  
 #define pgtokb(pg)     ((pg) * s.uvmexp.pagesize / 1024)  #define pgtokb(pg)     ((pg) * s.uvmexp.pagesize / 1024)
 #else  
 #define pgtokb(pg)     ((pg) * cnt.v_page_size / 1024)  
 #endif  
   
 #if defined(UVM)  
         putint(pgtokb(s.uvmexp.active), MEMROW + 2, MEMCOL + 6, 7);          putint(pgtokb(s.uvmexp.active), MEMROW + 2, MEMCOL + 6, 7);
         putint(pgtokb(s.uvmexp.active + s.uvmexp.swpginuse),    /* XXX */          putint(pgtokb(s.uvmexp.active + s.uvmexp.swpginuse),    /* XXX */
             MEMROW + 2, MEMCOL + 16, 7);              MEMROW + 2, MEMCOL + 16, 7);
Line 543 
Line 487 
         putint(pgtokb(s.uvmexp.free), MEMROW + 2, MEMCOL + 24, 7);          putint(pgtokb(s.uvmexp.free), MEMROW + 2, MEMCOL + 24, 7);
         putint(pgtokb(s.uvmexp.free + s.uvmexp.swpages - s.uvmexp.swpginuse),          putint(pgtokb(s.uvmexp.free + s.uvmexp.swpages - s.uvmexp.swpginuse),
             MEMROW + 3, MEMCOL + 24, 7);              MEMROW + 3, MEMCOL + 24, 7);
 #else  
         putint(pgtokb(total.t_arm), MEMROW + 2, MEMCOL + 3, 6);  
         putint(pgtokb(total.t_armshr), MEMROW + 2, MEMCOL + 9, 6);  
         putint(pgtokb(total.t_avm), MEMROW + 2, MEMCOL + 15, 7);  
         putint(pgtokb(total.t_avmshr), MEMROW + 2, MEMCOL + 22, 7);  
         putint(pgtokb(total.t_rm), MEMROW + 3, MEMCOL + 3, 6);  
         putint(pgtokb(total.t_rmshr), MEMROW + 3, MEMCOL + 9, 6);  
         putint(pgtokb(total.t_vm), MEMROW + 3, MEMCOL + 15, 7);  
         putint(pgtokb(total.t_vmshr), MEMROW + 3, MEMCOL + 22, 7);  
         putint(pgtokb(total.t_free), MEMROW + 2, MEMCOL + 30, 6);  
 #endif  
         putint(total.t_rq - 1, PROCSROW + 1, PROCSCOL + 3, 3);          putint(total.t_rq - 1, PROCSROW + 1, PROCSCOL + 3, 3);
   
         putint(total.t_dw, PROCSROW + 1, PROCSCOL + 6, 3);          putint(total.t_dw, PROCSROW + 1, PROCSCOL + 6, 3);
         putint(total.t_sl, PROCSROW + 1, PROCSCOL + 9, 3);          putint(total.t_sl, PROCSROW + 1, PROCSCOL + 9, 3);
         putint(total.t_sw, PROCSROW + 1, PROCSCOL + 12, 3);          putint(total.t_sw, PROCSROW + 1, PROCSCOL + 12, 3);
 #if !defined(UVM)  
         putint(total.t_pw, PROCSROW + 1, PROCSCOL + 15, 3);  
 #endif  
 #if defined(UVM)  
         PUTRATE(uvmexp.forks, VMSTATROW + 0, VMSTATCOL + 3, 6);          PUTRATE(uvmexp.forks, VMSTATROW + 0, VMSTATCOL + 3, 6);
         PUTRATE(uvmexp.forks_ppwait, VMSTATROW + 1, VMSTATCOL + 3, 6);          PUTRATE(uvmexp.forks_ppwait, VMSTATROW + 1, VMSTATCOL + 3, 6);
         PUTRATE(uvmexp.forks_sharevm, VMSTATROW + 2, VMSTATCOL + 3, 6);          PUTRATE(uvmexp.forks_sharevm, VMSTATROW + 2, VMSTATCOL + 3, 6);
Line 595 
Line 524 
         PUTRATE(uvmexp.intrs, GENSTATROW + 1, GENSTATCOL + 15, 5);          PUTRATE(uvmexp.intrs, GENSTATROW + 1, GENSTATCOL + 15, 5);
         PUTRATE(uvmexp.softs, GENSTATROW + 1, GENSTATCOL + 20, 5);          PUTRATE(uvmexp.softs, GENSTATROW + 1, GENSTATCOL + 20, 5);
         PUTRATE(uvmexp.faults, GENSTATROW + 1, GENSTATCOL + 25, 5);          PUTRATE(uvmexp.faults, GENSTATROW + 1, GENSTATCOL + 25, 5);
 #else  
         PUTRATE(Cnt.v_cow_faults, VMSTATROW + 0, VMSTATCOL + 3, 6);  
         PUTRATE(Cnt.v_lookups, VMSTATROW + 1, VMSTATCOL + 3, 6);  
         PUTRATE(Cnt.v_hits, VMSTATROW + 2, VMSTATCOL + 3, 6);  
         PUTRATE(Cnt.v_zfod, VMSTATROW + 3, VMSTATCOL + 4, 5);  
         PUTRATE(Cnt.v_nzfod, VMSTATROW + 4, VMSTATCOL + 3, 6);  
         putfloat(cnt.v_nzfod == 0 ? 0.0 : (100.0 * cnt.v_zfod / cnt.v_nzfod),  
                  VMSTATROW + 5, VMSTATCOL + 2, 7, 2, 1);  
         putint(pgtokb(cnt.v_kernel_pages), VMSTATROW + 6, VMSTATCOL, 9);  
         putint(pgtokb(cnt.v_wire_count), VMSTATROW + 7, VMSTATCOL, 9);  
         putint(pgtokb(cnt.v_active_count), VMSTATROW + 8, VMSTATCOL, 9);  
         putint(pgtokb(cnt.v_inactive_count), VMSTATROW + 9, VMSTATCOL, 9);  
         putint(pgtokb(cnt.v_free_count), VMSTATROW + 10, VMSTATCOL, 9);  
         PUTRATE(Cnt.v_dfree, VMSTATROW + 11, VMSTATCOL, 9);  
         PUTRATE(Cnt.v_pfree, VMSTATROW + 12, VMSTATCOL, 9);  
         PUTRATE(Cnt.v_reactivated, VMSTATROW + 13, VMSTATCOL, 9);  
         PUTRATE(Cnt.v_scan, VMSTATROW + 14, VMSTATCOL, 9);  
         PUTRATE(Cnt.v_rev, VMSTATROW + 15, VMSTATCOL, 9);  
         if (LINES - 1 > VMSTATROW + 16) {  
                 PUTRATE(Cnt.v_intrans, VMSTATROW + 16, VMSTATCOL, 9);  
         }  
         PUTRATE(Cnt.v_pageins, PAGEROW + 2, PAGECOL + 5, 5);  
         PUTRATE(Cnt.v_pageouts, PAGEROW + 2, PAGECOL + 10, 5);  
         PUTRATE(Cnt.v_swpin, PAGEROW + 2, PAGECOL + 15, 5);     /* - */  
         PUTRATE(Cnt.v_swpout, PAGEROW + 2, PAGECOL + 20, 5);    /* - */  
         PUTRATE(Cnt.v_pgpgin, PAGEROW + 3, PAGECOL + 5, 5);     /* ? */  
         PUTRATE(Cnt.v_pgpgout, PAGEROW + 3, PAGECOL + 10, 5);   /* ? */  
         PUTRATE(Cnt.v_pswpin, PAGEROW + 3, PAGECOL + 15, 5);    /* - */  
         PUTRATE(Cnt.v_pswpout, PAGEROW + 3, PAGECOL + 20, 5);   /* - */  
         PUTRATE(Cnt.v_swtch, GENSTATROW + 1, GENSTATCOL, 5);  
         PUTRATE(Cnt.v_trap, GENSTATROW + 1, GENSTATCOL + 5, 5);  
         PUTRATE(Cnt.v_syscall, GENSTATROW + 1, GENSTATCOL + 10, 5);  
         PUTRATE(Cnt.v_intr, GENSTATROW + 1, GENSTATCOL + 15, 5);  
         PUTRATE(Cnt.v_soft, GENSTATROW + 1, GENSTATCOL + 20, 5);  
         PUTRATE(Cnt.v_faults, GENSTATROW + 1, GENSTATCOL + 25, 5);  
 #endif  
         mvprintw(DISKROW, DISKCOL + 5, "                              ");          mvprintw(DISKROW, DISKCOL + 5, "                              ");
         for (i = 0, c = 0; i < dk_ndrive && c < MAXDRIVES; i++)          for (i = 0, c = 0; i < dk_ndrive && c < MAXDRIVES; i++)
                 if (dk_select[i]) {                  if (dk_select[i]) {
Line 765 
Line 658 
   
         dkreadstats();          dkreadstats();
         NREAD(X_CPTIME, s->time, sizeof s->time);          NREAD(X_CPTIME, s->time, sizeof s->time);
 #if defined(UVM)  
         NREAD(X_UVMEXP, &s->uvmexp, sizeof s->uvmexp);          NREAD(X_UVMEXP, &s->uvmexp, sizeof s->uvmexp);
 #else  
         NREAD(X_CNT, &s->Cnt, sizeof s->Cnt);  
 #endif  
         NREAD(X_NCHSTATS, &s->nchstats, sizeof s->nchstats);          NREAD(X_NCHSTATS, &s->nchstats, sizeof s->nchstats);
 #if defined(__i386__)  #if defined(__i386__)
         NREAD(X_INTRHAND, intrhand, sizeof(intrhand));          NREAD(X_INTRHAND, intrhand, sizeof(intrhand));

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24