summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/vmstat/vmstat.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/usr.bin/vmstat/vmstat.c b/usr.bin/vmstat/vmstat.c
index d17941f0257..9ddc65b27fe 100644
--- a/usr.bin/vmstat/vmstat.c
+++ b/usr.bin/vmstat/vmstat.c
@@ -1,5 +1,5 @@
/* $NetBSD: vmstat.c,v 1.29.4.1 1996/06/05 00:21:05 cgd Exp $ */
-/* $OpenBSD: vmstat.c,v 1.83 2004/06/11 05:54:55 deraadt Exp $ */
+/* $OpenBSD: vmstat.c,v 1.84 2004/06/11 16:09:08 deraadt Exp $ */
/*
* Copyright (c) 1980, 1986, 1991, 1993
@@ -40,7 +40,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "@(#)vmstat.c 8.1 (Berkeley) 6/6/93";
#else
-static const char rcsid[] = "$OpenBSD: vmstat.c,v 1.83 2004/06/11 05:54:55 deraadt Exp $";
+static const char rcsid[] = "$OpenBSD: vmstat.c,v 1.84 2004/06/11 16:09:08 deraadt Exp $";
#endif
#endif /* not lint */
@@ -155,11 +155,15 @@ extern char *__progname;
int verbose = 0;
+int ncpu;
+
int
main(int argc, char *argv[])
{
extern int optind;
extern char *optarg;
+ int mib[2];
+ size_t size;
int c, todo;
u_int interval;
int reps;
@@ -250,6 +254,11 @@ main(int argc, char *argv[])
setegid(getegid());
setgid(getgid());
+ mib[0] = CTL_HW;
+ mib[1] = HW_NCPU;
+ size = sizeof(ncpu);
+ (void) sysctl(mib, 2, &ncpu, &size, NULL, 0);
+
if (todo & VMSTAT) {
struct winsize winsize;
@@ -671,6 +680,7 @@ dkstats(void)
if (etime == 0)
etime = 1;
etime /= hz;
+ etime /= ncpu;
for (dn = 0; dn < dk_ndrive; ++dn) {
if (!dk_select[dn])
continue;