On Tue, Dec 13, 2022 at 11:20:46AM -0600, Scott Cheloha wrote:
> In systat(1)'s vmstat view, dinfo() uses the global "naptime" as an
> elapsed time when computing rates.
> 
> The problem is that naptime isn't the actual elapsed time.  For
> example, if you force a view update by hitting the spacebar, the
> actual elapsed time is obviously not naptime.
> 
> The fix is easy.  showkre() calls dinfo(), and showkre() has the real
> elapsed time (etime), so just pass that as argument to dinfo().
> 
> ok?

Ping.

Index: vmstat.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/vmstat.c,v
retrieving revision 1.95
diff -u -p -r1.95 vmstat.c
--- vmstat.c    4 Dec 2022 18:01:57 -0000       1.95
+++ vmstat.c    28 Dec 2022 12:47:02 -0000
@@ -84,7 +84,7 @@ static        enum state { BOOT, TIME, RUN } st
 static void allocinfo(struct Info *);
 static void copyinfo(struct Info *, struct Info *);
 static float cputime(int);
-static void dinfo(int, int);
+static void dinfo(int, int, double);
 static void getinfo(struct Info *);
 void putint(int, int, int, int);
 void putintmk(int, int, int, int);
@@ -443,7 +443,7 @@ showkre(void)
                        mvprintw(DISKROW, DISKCOL + 5 + c,
                            " %*s", l, dr_name[i]);
                        c += 1 + l;
-                       dinfo(i, c);
+                       dinfo(i, c, etime);
                }
        /* and pad the DRIVESPACE */
        l = DRIVESPACE - c;
@@ -666,11 +666,9 @@ copyinfo(struct Info *from, struct Info 
 }
 
 static void
-dinfo(int dn, int c)
+dinfo(int dn, int c, double etime)
 {
-       double words, atime, etime;
-
-       etime = naptime;
+       double words, atime;
 
        c += DISKCOL;
 

Reply via email to