diff options
-rw-r--r-- | usr.bin/systat/main.c | 5 | ||||
-rw-r--r-- | usr.bin/systat/systat.h | 4 | ||||
-rw-r--r-- | usr.bin/systat/vmstat.c | 27 |
3 files changed, 13 insertions, 23 deletions
diff --git a/usr.bin/systat/main.c b/usr.bin/systat/main.c index 7a4225cc490..ce7851d8bd2 100644 --- a/usr.bin/systat/main.c +++ b/usr.bin/systat/main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: main.c,v 1.76 2021/07/12 15:09:20 beck Exp $ */ +/* $OpenBSD: main.c,v 1.77 2022/12/04 18:01:57 cheloha Exp $ */ /* * Copyright (c) 2001, 2007 Can Erkin Acar * Copyright (c) 2001 Daniel Hartmeier @@ -65,7 +65,7 @@ double avenrun[3]; double naptime = 5.0; int verbose = 1; /* to report kvm read errs */ int nflag = 1; -int ut, hz, stathz; +int ut, hz; char hostname[HOST_NAME_MAX+1]; WINDOW *wnd; int CMDLINE; @@ -414,7 +414,6 @@ gethz(void) mib[1] = KERN_CLOCKRATE; if (sysctl(mib, 2, &cinf, &size, NULL, 0) == -1) return; - stathz = cinf.stathz; hz = cinf.hz; } diff --git a/usr.bin/systat/systat.h b/usr.bin/systat/systat.h index e7d20070541..776be5a2d51 100644 --- a/usr.bin/systat/systat.h +++ b/usr.bin/systat/systat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: systat.h,v 1.24 2021/01/18 00:49:09 mortimer Exp $ */ +/* $OpenBSD: systat.h,v 1.25 2022/12/04 18:01:57 cheloha Exp $ */ /* $NetBSD: systat.h,v 1.2 1995/01/20 08:52:14 jtc Exp $ */ /*- @@ -58,7 +58,7 @@ extern kvm_t *kd; extern long ntext; extern int *dk_select; extern int dk_ndrive; -extern int hz, stathz; +extern int hz; extern double naptime; extern size_t nhosts; extern size_t nports; diff --git a/usr.bin/systat/vmstat.c b/usr.bin/systat/vmstat.c index ce22f73d9c8..9cb43279199 100644 --- a/usr.bin/systat/vmstat.c +++ b/usr.bin/systat/vmstat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vmstat.c,v 1.94 2022/02/22 17:35:01 deraadt Exp $ */ +/* $OpenBSD: vmstat.c,v 1.95 2022/12/04 18:01:57 cheloha Exp $ */ /* $NetBSD: vmstat.c,v 1.5 1996/05/10 23:16:40 thorpej Exp $ */ /*- @@ -98,7 +98,6 @@ int select_vm(void); int vm_keyboard_callback(int); static time_t t; -static float hertz; static int nintr; static long *intrloc; static char **intrname; @@ -170,7 +169,6 @@ initvmstat(void) int mib[4], i; size_t size; - hertz = stathz; if (!dkinit(1)) return(0); @@ -323,7 +321,6 @@ labelkre(void) Y(fld); \ putint((int)((float)s.fld/etime + 0.5), l, c, w); \ } while (0) -#define MAXFAIL 5 static char cpuchar[] = { '|', '@', '=', '>', ' ' }; static char cpuorder[] = { CP_INTR, CP_SPIN, CP_SYS, CP_USER, CP_IDLE }; @@ -331,33 +328,27 @@ static char cpuorder[] = { CP_INTR, CP_SPIN, CP_SYS, CP_USER, CP_IDLE }; void showkre(void) { + static struct timespec prev; + struct timespec elapsed, now; float f1, f2; int psiz; u_int64_t inttotal, intcnt; int i, l, c; - static int failcnt = 0, first_run = 0; + static int first_run = 0; double etime; + clock_gettime(CLOCK_UPTIME, &now); + timespecsub(&now, &prev, &elapsed); + prev = now; if (state == TIME) { if (!first_run) { first_run = 1; return; } } - etime = 0; - for (i = 0; i < CPUSTATES; i++) { + etime = elapsed.tv_sec + elapsed.tv_nsec / 1000000000.0; + for (i = 0; i < CPUSTATES; i++) X(cpustats.cs_time); - etime += s.cpustats.cs_time[i]; - } - if (etime < 5.0) { /* < 5 ticks - ignore this trash */ - if (failcnt++ >= MAXFAIL) { - error("The alternate system clock has died!"); - failcnt = 0; - } - return; - } - failcnt = 0; - etime /= hertz; inttotal = 0; for (i = 0; i < nintr; i++) { t = intcnt = s.intrcnt[i]; |