=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/vmstat/vmstat.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- src/usr.bin/vmstat/vmstat.c 1996/04/21 23:44:44 1.9 +++ src/usr.bin/vmstat/vmstat.c 1996/05/22 11:35:45 1.10 @@ -1,5 +1,4 @@ -/* $OpenBSD: vmstat.c,v 1.9 1996/04/21 23:44:44 deraadt Exp $ */ -/* $NetBSD: vmstat.c,v 1.28 1996/04/04 00:27:50 cgd Exp $ */ +/* $NetBSD: vmstat.c,v 1.29 1996/05/10 23:19:32 thorpej Exp $ */ /* * Copyright (c) 1980, 1986, 1991, 1993 @@ -44,7 +43,7 @@ #if 0 static char sccsid[] = "@(#)vmstat.c 8.1 (Berkeley) 6/6/93"; #else -static char rcsid[] = "$NetBSD: vmstat.c,v 1.28 1996/04/04 00:27:50 cgd Exp $"; +static char rcsid[] = "$NetBSD: vmstat.c,v 1.29 1996/05/10 23:19:32 thorpej Exp $"; #endif #endif /* not lint */ @@ -107,11 +106,11 @@ { "_bucket" }, #define X_ALLEVENTS 14 { "_allevents" }, -#define X_FORKSTAT 15 - { "_forkstat" }, #ifdef notdef -#define X_DEFICIT 16 +#define X_DEFICIT 15 { "_deficit" }, +#define X_FORKSTAT 16 + { "_forkstat" }, #define X_REC 17 { "_rectime" }, #define X_PGIN 18 @@ -120,16 +119,8 @@ { "_xstats" }, #define X_END 20 #else -#define X_END 16 +#define X_END 15 #endif -#if defined(hp300) || defined(luna68k) -#define X_HPDINIT (X_END) - { "_hp_dinit" }, -#endif -#ifdef mips -#define X_SCSI_DINIT (X_END) - { "_scsi_dinit" }, -#endif #ifdef tahoe #define X_VBDINIT (X_END) { "_vbdinit" }, @@ -142,19 +133,13 @@ #define X_IVT (X_END) { "_ivt" }, #endif -#if defined(i386) -#define X_INTRHAND (X_END) - { "_intrhand" }, -#define X_INTRSTRAY (X_END+1) - { "_intrstray" }, -#endif { "" }, }; /* Objects defined in dkstats.c */ extern struct _disk cur; -extern char **dr_name; -extern int *dk_select, dk_ndrive; +extern char **dr_name; +extern int *dk_select, dk_ndrive; struct vmmeter sum, osum; int ndrives; @@ -170,13 +155,24 @@ #define TIMESTAT 0x10 #define VMSTAT 0x20 -void cpustats(), dkstats(), dointr(), domem(), dosum(); -void dovmstat(), kread(), usage(); -void dotimes(), doforkst(); +void cpustats __P((void)); +void dkstats __P((void)); +void dointr __P((void)); +void domem __P((void)); +void dosum __P((void)); +void dovmstat __P((u_int, int)); +void kread __P((int, void *, size_t)); +void usage __P((void)); +#ifdef notdef +void dotimes __P((void)); +void doforkst __P((void)); +#endif -char *nlistf = NULL; -char *memf = NULL; +char **choosedrives __P((char **)); +/* Namelist and memory file names. */ +char *nlistf, *memf; + main(argc, argv) register int argc; register char **argv; @@ -186,7 +182,6 @@ register int c, todo; u_int interval; int reps; - char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; memf = nlistf = NULL; @@ -196,9 +191,11 @@ case 'c': reps = atoi(optarg); break; +#ifndef notdef case 'f': todo |= FORKSTAT; break; +#endif case 'i': todo |= INTRSTAT; break; @@ -214,9 +211,11 @@ case 's': todo |= SUMSTAT; break; +#ifndef notdef case 't': todo |= TIMESTAT; break; +#endif case 'w': interval = atoi(optarg); break; @@ -262,7 +261,6 @@ } if (todo & VMSTAT) { - char **choosedrives(); struct winsize winsize; dkinit(0); /* Initialize disk stats, no disks selected. */ @@ -289,14 +287,18 @@ } else if (reps) interval = 1; +#ifdef notdef if (todo & FORKSTAT) doforkst(); +#endif if (todo & MEMSTAT) domem(); if (todo & SUMSTAT) dosum(); +#ifdef notdef if (todo & TIMESTAT) dotimes(); +#endif if (todo & INTRSTAT) dointr(); if (todo & VMSTAT) @@ -486,28 +488,25 @@ hdrcnt = 1; } +#ifdef notdef void dotimes() { u_int pgintime, rectime; -#ifdef NEWVM - pgintime = 0; - rectime = 0; -#else kread(X_REC, &rectime, sizeof(rectime)); kread(X_PGIN, &pgintime, sizeof(pgintime)); -#endif kread(X_SUM, &sum, sizeof(sum)); - (void)printf("%u reactivates, %u total time (usec)\n", - sum.v_reactivated, rectime); - (void)printf("average: %u usec / reclaim\n", rectime / sum.v_reactivated); + (void)printf("%u reclaims, %u total time (usec)\n", + sum.v_pgrec, rectime); + (void)printf("average: %u usec / reclaim\n", rectime / sum.v_pgrec); (void)printf("\n"); (void)printf("%u page ins, %u total time (msec)\n", - sum.v_pageins, pgintime / 10); + sum.v_pgin, pgintime / 10); (void)printf("average: %8.1f msec / page in\n", - pgintime / (sum.v_pageins * 10.0)); + pgintime / (sum.v_pgin * 10.0)); } +#endif pct(top, bot) long top, bot; @@ -595,7 +594,7 @@ nchstats.ncs_miss + nchstats.ncs_long; (void)printf("%9ld total name lookups\n", nchtotal); (void)printf( - "%9s cache hits (%d%% pos + %d%% neg) system %d%% per-directory\n", + "%9s cache hits (%d%% pos + %d%% neg) system %d%% per-process\n", "", PCT(nchstats.ncs_goodhits, nchtotal), PCT(nchstats.ncs_neghits, nchtotal), PCT(nchstats.ncs_pass2, nchtotal)); @@ -631,6 +630,7 @@ #endif } +#ifdef notdef void doforkst() { @@ -640,10 +640,9 @@ (void)printf("%d forks, %d pages, average %.2f\n", fks.cntfork, fks.sizfork, (double)fks.sizfork / fks.cntfork); (void)printf("%d vforks, %d pages, average %.2f\n", - fks.cntvfork, fks.sizvfork, (double)fks.sizvfork / (fks.cntvfork ? fks.cntvfork : 1)); - (void)printf("%d rforks, %d pages, average %.2f\n", - fks.cntrfork, fks.sizrfork, (double)fks.sizrfork / (fks.cntrfork ? fks.cntrfork : 1)); + fks.cntvfork, fks.sizvfork, (double)fks.sizvfork / fks.cntvfork); } +#endif void dkstats() @@ -721,47 +720,6 @@ (void)printf("Total %8ld %8ld\n", inttotal, inttotal / uptime); } -} -#elif defined(i386) -/* To get struct intrhand */ -#define _KERNEL -#include -#undef _KERNEL -void -dointr() -{ - struct intrhand *intrhand[16], *ihp, ih; - u_long inttotal, uptime; - u_long intrstray[16]; - char iname[17]; - int i; - - iname[16] = '\0'; - uptime = getuptime(); - kread(X_INTRHAND, intrhand, sizeof(intrhand)); - kread(X_INTRSTRAY, intrstray, sizeof(intrstray)); - - (void)printf("interrupt total rate\n"); - inttotal = 0; - for (i = 0; i < 16; i++) { - ihp = intrhand[i]; - while (ihp) { - if (kvm_read(kd, (u_long)ihp, &ih, sizeof(ih)) != sizeof(ih)) - errx(1, "vmstat: ih: %s", kvm_geterr(kd)); - if (kvm_read(kd, (u_long)ih.ih_what, iname, 16) != 16) - errx(1, "vmstat: ih_what: %s", kvm_geterr(kd)); - printf("%-16.16s %8lu %8lu\n", iname, ih.ih_count, ih.ih_count / uptime); - inttotal += ih.ih_count; - ihp = ih.ih_next; - } - } - for (i = 0; i < 16; i++) - if (intrstray[i]) { - printf("Stray irq %-2d %8ld %8ld\n", - i, intrstray[i], intrstray[i] / uptime); - inttotal += intrstray[i]; - } - printf("Total %8lu %8lu\n", inttotal, inttotal / uptime); } #else void