[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.18 and 1.19

version 1.18, 1999/06/16 10:18:30 version 1.19, 1999/10/26 15:13:54
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>
   #endif
   
 #include <ctype.h>  #include <ctype.h>
 #include <err.h>  #include <err.h>
 #include <nlist.h>  #include <nlist.h>
Line 77 
Line 81 
   
 static struct Info {  static struct Info {
         long    time[CPUSTATES];          long    time[CPUSTATES];
   #if defined(UVM)
           struct  uvmexp uvmexp;
   #else
         struct  vmmeter Cnt;          struct  vmmeter Cnt;
   #endif
         struct  vmtotal Total;          struct  vmtotal Total;
         struct  nchstats nchstats;          struct  nchstats nchstats;
         long    nchcount;          long    nchcount;
Line 144 
Line 152 
 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
           { "_uvmexp" },
   #else
 #define X_CNT           1  #define X_CNT           1
         { "_cnt" },          { "_cnt" },
   #endif
 #define X_TOTAL         2  #define X_TOTAL         2
         { "_total" },          { "_total" },
 #define X_NCHSTATS      3  #define X_NCHSTATS      3
Line 311 
Line 324 
   
         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 + 1, MEMCOL, "         real   virtual    free");
           mvprintw(MEMROW + 2, MEMCOL, "Active");
           mvprintw(MEMROW + 3, MEMCOL, "All");
   
           mvprintw(PAGEROW, PAGECOL, "        PAGING   SWAPPING ");
           mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");
           mvprintw(PAGEROW + 2, PAGECOL, "ops");
           mvprintw(PAGEROW + 3, PAGECOL, "pages");
   #else
   
         mvprintw(MEMROW, MEMCOL, "Mem:KB  REAL        VIRTUAL");          mvprintw(MEMROW, MEMCOL, "Mem:KB  REAL        VIRTUAL");
         mvprintw(MEMROW + 1, MEMCOL, "      Tot Share    Tot  Share");          mvprintw(MEMROW + 1, MEMCOL, "      Tot Share    Tot  Share");
         mvprintw(MEMROW + 2, MEMCOL, "Act");          mvprintw(MEMROW + 2, MEMCOL, "Act");
Line 322 
Line 347 
         mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");          mvprintw(PAGEROW + 1, PAGECOL, "        in  out   in  out ");
         mvprintw(PAGEROW + 2, PAGECOL, "count");          mvprintw(PAGEROW + 2, PAGECOL, "count");
         mvprintw(PAGEROW + 3, PAGECOL, "pages");          mvprintw(PAGEROW + 3, PAGECOL, "pages");
   #endif
   
   #if defined(UVM)
           mvprintw(VMSTATROW + 0, VMSTATCOL + 10, "forks");
           mvprintw(VMSTATROW + 1, VMSTATCOL + 10, "fkppw");
           mvprintw(VMSTATROW + 2, VMSTATCOL + 10, "fksvm");
           mvprintw(VMSTATROW + 3, VMSTATCOL + 10, "pwait");
           mvprintw(VMSTATROW + 4, VMSTATCOL + 10, "relck");
           mvprintw(VMSTATROW + 5, VMSTATCOL + 10, "rlkok");
           mvprintw(VMSTATROW + 6, VMSTATCOL + 10, "noram");
           mvprintw(VMSTATROW + 7, VMSTATCOL + 10, "ndcpy");
           mvprintw(VMSTATROW + 8, VMSTATCOL + 10, "fltcp");
           mvprintw(VMSTATROW + 9, VMSTATCOL + 10, "zfod");
           mvprintw(VMSTATROW + 10, VMSTATCOL + 10, "cow");
           mvprintw(VMSTATROW + 11, VMSTATCOL + 10, "fmin");
           mvprintw(VMSTATROW + 12, VMSTATCOL + 10, "ftarg");
           mvprintw(VMSTATROW + 13, VMSTATCOL + 10, "itarg");
           mvprintw(VMSTATROW + 14, VMSTATCOL + 10, "wired");
           mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "pdfre");
           if (LINES - 1 > VMSTATROW + 16)
                   mvprintw(VMSTATROW + 16, VMSTATCOL + 10, "pdscn");
   #else
         mvprintw(INTSROW, INTSCOL + 3, " Interrupts");          mvprintw(INTSROW, INTSCOL + 3, " Interrupts");
         mvprintw(INTSROW + 1, INTSCOL + 9, "total");          mvprintw(INTSROW + 1, INTSCOL + 9, "total");
   
Line 344 
Line 390 
         mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "hdrev");          mvprintw(VMSTATROW + 15, VMSTATCOL + 10, "hdrev");
         if (LINES - 1 > VMSTATROW + 16)          if (LINES - 1 > VMSTATROW + 16)
                 mvprintw(VMSTATROW + 16, VMSTATCOL + 10, "intrn");                  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");
         mvprintw(PROCSROW, PROCSCOL, "Proc:r  p  d  s  w");  #if defined(UVM)
           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 479 
Line 530 
         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);
 #define pgtokb(pg)      ((pg) * cnt.v_page_size / 1024)  #if defined(UVM)
   #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 + s.uvmexp.swpginuse),    /* XXX */
               MEMROW + 2, MEMCOL + 16, 7);
           putint(pgtokb(s.uvmexp.npages - s.uvmexp.free), MEMROW + 3, MEMCOL + 6, 7);
           putint(pgtokb(s.uvmexp.npages - s.uvmexp.free + s.uvmexp.swpginuse),
               MEMROW + 3, MEMCOL + 16, 7);
           putint(pgtokb(s.uvmexp.free), MEMROW + 2, MEMCOL + 24, 7);
           putint(pgtokb(s.uvmexp.free + s.uvmexp.swpages - s.uvmexp.swpginuse),
               MEMROW + 3, MEMCOL + 24, 7);
   #else
         putint(pgtokb(total.t_arm), MEMROW + 2, MEMCOL + 3, 6);          putint(pgtokb(total.t_arm), MEMROW + 2, MEMCOL + 3, 6);
         putint(pgtokb(total.t_armshr), MEMROW + 2, MEMCOL + 9, 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_avm), MEMROW + 2, MEMCOL + 15, 7);
Line 489 
Line 556 
         putint(pgtokb(total.t_vm), MEMROW + 3, MEMCOL + 15, 7);          putint(pgtokb(total.t_vm), MEMROW + 3, MEMCOL + 15, 7);
         putint(pgtokb(total.t_vmshr), MEMROW + 3, MEMCOL + 22, 7);          putint(pgtokb(total.t_vmshr), MEMROW + 3, MEMCOL + 22, 7);
         putint(pgtokb(total.t_free), MEMROW + 2, MEMCOL + 30, 6);          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_pw, PROCSROW + 1, PROCSCOL + 6, 3);  
         putint(total.t_dw, PROCSROW + 1, PROCSCOL + 9, 3);          putint(total.t_dw, PROCSROW + 1, PROCSCOL + 6, 3);
         putint(total.t_sl, PROCSROW + 1, PROCSCOL + 12, 3);          putint(total.t_sl, PROCSROW + 1, PROCSCOL + 9, 3);
         putint(total.t_sw, PROCSROW + 1, PROCSCOL + 15, 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_ppwait, VMSTATROW + 1, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.forks_sharevm, VMSTATROW + 2, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.fltpgwait, VMSTATROW + 3, VMSTATCOL + 4, 5);
           PUTRATE(uvmexp.fltrelck, VMSTATROW + 4, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.fltrelckok, VMSTATROW + 5, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.fltnoram, VMSTATROW + 6, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.fltamcopy, VMSTATROW + 7, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.flt_prcopy, VMSTATROW + 8, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.flt_przero, VMSTATROW + 9, VMSTATCOL + 3, 6);
           PUTRATE(uvmexp.flt_acow, VMSTATROW + 10, VMSTATCOL, 9);
           putint(s.uvmexp.freemin, VMSTATROW + 11, VMSTATCOL, 9);
           putint(s.uvmexp.freetarg, VMSTATROW + 12, VMSTATCOL, 9);
           putint(s.uvmexp.inactarg, VMSTATROW + 13, VMSTATCOL, 9);
           putint(s.uvmexp.wired, VMSTATROW + 14, VMSTATCOL, 9);
           PUTRATE(uvmexp.pdfreed, VMSTATROW + 15, VMSTATCOL, 9);
           if (LINES - 1 > VMSTATROW + 16)
                   PUTRATE(uvmexp.pdscans, VMSTATROW + 16, VMSTATCOL, 9);
   
           PUTRATE(uvmexp.pageins, PAGEROW + 2, PAGECOL + 5, 5);
           PUTRATE(uvmexp.pdpageouts, PAGEROW + 2, PAGECOL + 10, 5);
           PUTRATE(uvmexp.swapins, PAGEROW + 2, PAGECOL + 15, 5);
           PUTRATE(uvmexp.swapouts, PAGEROW + 2, PAGECOL + 20, 5);
           PUTRATE(uvmexp.pgswapin, PAGEROW + 3, PAGECOL + 5, 5);
           PUTRATE(uvmexp.pgswapout, PAGEROW + 3, PAGECOL + 10, 5);
   
           PUTRATE(uvmexp.swtch, GENSTATROW + 1, GENSTATCOL, 5);
           PUTRATE(uvmexp.traps, GENSTATROW + 1, GENSTATCOL + 5, 5);
           PUTRATE(uvmexp.syscalls, GENSTATROW + 1, GENSTATCOL + 10, 5);
           PUTRATE(uvmexp.intrs, GENSTATROW + 1, GENSTATCOL + 15, 5);
           PUTRATE(uvmexp.softs, GENSTATROW + 1, GENSTATCOL + 20, 5);
           PUTRATE(uvmexp.faults, GENSTATROW + 1, GENSTATCOL + 25, 5);
   #else
         PUTRATE(Cnt.v_cow_faults, VMSTATROW + 0, VMSTATCOL + 3, 6);          PUTRATE(Cnt.v_cow_faults, VMSTATROW + 0, VMSTATCOL + 3, 6);
         PUTRATE(Cnt.v_lookups, VMSTATROW + 1, VMSTATCOL + 3, 6);          PUTRATE(Cnt.v_lookups, VMSTATROW + 1, VMSTATCOL + 3, 6);
         PUTRATE(Cnt.v_hits, VMSTATROW + 2, VMSTATCOL + 3, 6);          PUTRATE(Cnt.v_hits, VMSTATROW + 2, VMSTATCOL + 3, 6);
Line 528 
Line 633 
         PUTRATE(Cnt.v_intr, GENSTATROW + 1, GENSTATCOL + 15, 5);          PUTRATE(Cnt.v_intr, GENSTATROW + 1, GENSTATCOL + 15, 5);
         PUTRATE(Cnt.v_soft, GENSTATROW + 1, GENSTATCOL + 20, 5);          PUTRATE(Cnt.v_soft, GENSTATROW + 1, GENSTATCOL + 20, 5);
         PUTRATE(Cnt.v_faults, GENSTATROW + 1, GENSTATCOL + 25, 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 662 
Line 768 
   
         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);
   #else
         NREAD(X_CNT, &s->Cnt, sizeof s->Cnt);          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.18  
changed lines
  Added in v.1.19