Date: Sat, 15 Jan 2000 13:45:39 -0500 (EST) From: jc@irbs.com To: FreeBSD-gnats-submit@freebsd.org Subject: bin/16133: vmstat -i reports negative counts Message-ID: <200001151845.NAA25577@irbs.irbs.com>
next in thread | raw e-mail | index | archive | help
>Number: 16133 >Category: bin >Synopsis: vmstat -i reports negative counts >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jan 15 10:50:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: John Capo >Release: FreeBSD 3.4-STABLE i386 >Organization: IRBS Engineering >Environment: >Description: Bogus column alignment and negative numbers. interrupt total rate clk0 irq0 53984189 99 rtc0 irq8 69100805 127 pci irq12 1075006802 1991 pci irq15 506470437 938 pci irq10 1078679332 1998 pci irq11 141900962 262 fdc0 irq6 1 0 wdc0 irq14 90559 0 Total -1369734209 -2537 >How-To-Repeat: Generate a lot of interrupts from multiple network interfaces. >Fix: Index: vmstat.c =================================================================== RCS file: /usr/cvs/src/usr.bin/vmstat/vmstat.c,v retrieving revision 1.29.2.2 diff -c -r1.29.2.2 vmstat.c *** vmstat.c 1999/08/29 15:34:34 1.29.2.2 --- vmstat.c 2000/01/15 18:43:14 *************** *** 759,765 **** void dointr() { ! register long *intrcnt, inttotal, uptime; register int nintr, inamlen; register char *intrname; --- 759,765 ---- void dointr() { ! register unsigned long *intrcnt, inttotal, uptime; register int nintr, inamlen; register char *intrname; *************** *** 778,789 **** nintr /= sizeof(long); while (--nintr >= 0) { if (*intrcnt) ! (void)printf("%-12s %8ld %8ld\n", intrname, *intrcnt, *intrcnt / uptime); intrname += strlen(intrname) + 1; inttotal += *intrcnt++; } ! (void)printf("Total %8ld %8ld\n", inttotal, inttotal / uptime); } void --- 778,789 ---- nintr /= sizeof(long); while (--nintr >= 0) { if (*intrcnt) ! (void)printf("%-12s %10ld %10ld\n", intrname, *intrcnt, *intrcnt / uptime); intrname += strlen(intrname) + 1; inttotal += *intrcnt++; } ! (void)printf("Total %10lu %10ld\n", inttotal, inttotal / uptime); } void >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001151845.NAA25577>