ping
> 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;