Hi, While running systat(1)'s iostat view in cumulative mode (activated by pressing 'b') I noticed that it divides the results by the refresh interval. This is because the cumulative mode is implemented by setting last = 0, and then it does (current - last) / etime, thereby giving wrong cumulative results. This can be verified by comparing with `iostat -dI`. The attached diff fixes this.
ok? Index: usr.bin/systat/iostat.c =================================================================== RCS file: /cvs/src/usr.bin/systat/iostat.c,v retrieving revision 1.49 diff -u -p -r1.49 iostat.c --- usr.bin/systat/iostat.c 28 Jun 2019 13:35:04 -0000 1.49 +++ usr.bin/systat/iostat.c 28 Jul 2021 19:04:41 -0000 @@ -167,9 +167,12 @@ void print_io(void) { int n, count = 0; - int curr; - etime = naptime; + + if (state == BOOT) + etime = 1.0; + else + etime = naptime; /* XXX engine internals: save and restore curr_line for bcache */ curr = curr_line;