=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/vmstat/vmstat.c,v retrieving revision 1.9 retrieving revision 1.10 diff -c -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 **** ! /* $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 $ */ /* * Copyright (c) 1980, 1986, 1991, 1993 --- 1,4 ---- ! /* $NetBSD: vmstat.c,v 1.29 1996/05/10 23:19:32 thorpej Exp $ */ /* * Copyright (c) 1980, 1986, 1991, 1993 *************** *** 44,50 **** #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 $"; #endif #endif /* not lint */ --- 43,49 ---- #if 0 static char sccsid[] = "@(#)vmstat.c 8.1 (Berkeley) 6/6/93"; #else ! static char rcsid[] = "$NetBSD: vmstat.c,v 1.29 1996/05/10 23:19:32 thorpej Exp $"; #endif #endif /* not lint */ *************** *** 107,117 **** { "_bucket" }, #define X_ALLEVENTS 14 { "_allevents" }, - #define X_FORKSTAT 15 - { "_forkstat" }, #ifdef notdef ! #define X_DEFICIT 16 { "_deficit" }, #define X_REC 17 { "_rectime" }, #define X_PGIN 18 --- 106,116 ---- { "_bucket" }, #define X_ALLEVENTS 14 { "_allevents" }, #ifdef notdef ! #define X_DEFICIT 15 { "_deficit" }, + #define X_FORKSTAT 16 + { "_forkstat" }, #define X_REC 17 { "_rectime" }, #define X_PGIN 18 *************** *** 120,135 **** { "_xstats" }, #define X_END 20 #else ! #define X_END 16 #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" }, --- 119,126 ---- { "_xstats" }, #define X_END 20 #else ! #define X_END 15 #endif #ifdef tahoe #define X_VBDINIT (X_END) { "_vbdinit" }, *************** *** 142,160 **** #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; struct vmmeter sum, osum; int ndrives; --- 133,145 ---- #define X_IVT (X_END) { "_ivt" }, #endif { "" }, }; /* Objects defined in dkstats.c */ extern struct _disk cur; ! extern char **dr_name; ! extern int *dk_select, dk_ndrive; struct vmmeter sum, osum; int ndrives; *************** *** 170,182 **** #define TIMESTAT 0x10 #define VMSTAT 0x20 ! void cpustats(), dkstats(), dointr(), domem(), dosum(); ! void dovmstat(), kread(), usage(); ! void dotimes(), doforkst(); ! char *nlistf = NULL; ! char *memf = NULL; main(argc, argv) register int argc; register char **argv; --- 155,178 ---- #define TIMESTAT 0x10 #define VMSTAT 0x20 ! 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 **choosedrives __P((char **)); + /* Namelist and memory file names. */ + char *nlistf, *memf; + main(argc, argv) register int argc; register char **argv; *************** *** 186,192 **** register int c, todo; u_int interval; int reps; - char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; memf = nlistf = NULL; --- 182,187 ---- *************** *** 196,204 **** --- 191,201 ---- case 'c': reps = atoi(optarg); break; + #ifndef notdef case 'f': todo |= FORKSTAT; break; + #endif case 'i': todo |= INTRSTAT; break; *************** *** 214,222 **** --- 211,221 ---- case 's': todo |= SUMSTAT; break; + #ifndef notdef case 't': todo |= TIMESTAT; break; + #endif case 'w': interval = atoi(optarg); break; *************** *** 262,268 **** } if (todo & VMSTAT) { - char **choosedrives(); struct winsize winsize; dkinit(0); /* Initialize disk stats, no disks selected. */ --- 261,266 ---- *************** *** 289,302 **** --- 287,304 ---- } 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,513 **** hdrcnt = 1; } 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("\n"); (void)printf("%u page ins, %u total time (msec)\n", ! sum.v_pageins, pgintime / 10); (void)printf("average: %8.1f msec / page in\n", ! pgintime / (sum.v_pageins * 10.0)); } pct(top, bot) long top, bot; --- 488,512 ---- hdrcnt = 1; } + #ifdef notdef void dotimes() { u_int pgintime, rectime; kread(X_REC, &rectime, sizeof(rectime)); kread(X_PGIN, &pgintime, sizeof(pgintime)); kread(X_SUM, &sum, sizeof(sum)); ! (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_pgin, pgintime / 10); (void)printf("average: %8.1f msec / page in\n", ! pgintime / (sum.v_pgin * 10.0)); } + #endif pct(top, bot) long top, bot; *************** *** 595,601 **** 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", "", PCT(nchstats.ncs_goodhits, nchtotal), PCT(nchstats.ncs_neghits, nchtotal), PCT(nchstats.ncs_pass2, nchtotal)); --- 594,600 ---- 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-process\n", "", PCT(nchstats.ncs_goodhits, nchtotal), PCT(nchstats.ncs_neghits, nchtotal), PCT(nchstats.ncs_pass2, nchtotal)); *************** *** 631,636 **** --- 630,636 ---- #endif } + #ifdef notdef void doforkst() { *************** *** 640,649 **** (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)); } void dkstats() --- 640,648 ---- (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); } + #endif void dkstats() *************** *** 721,767 **** (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 --- 720,725 ----