From owner-freebsd-bugs@FreeBSD.ORG Sun Apr 13 21:00:28 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8EEB137B401 for ; Sun, 13 Apr 2003 21:00:28 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 822F143F75 for ; Sun, 13 Apr 2003 21:00:26 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h3E40QUp068948 for ; Sun, 13 Apr 2003 21:00:26 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h3E40QPa068943; Sun, 13 Apr 2003 21:00:26 -0700 (PDT) Resent-Date: Sun, 13 Apr 2003 21:00:26 -0700 (PDT) Resent-Message-Id: <200304140400.h3E40QPa068943@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Ken Stailey Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9439D37B401; Sun, 13 Apr 2003 20:52:27 -0700 (PDT) Received: from bsdlab.tf-md.net (64-93-1-35.client.dsl.net [64.93.1.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6119D43F3F; Sun, 13 Apr 2003 20:52:26 -0700 (PDT) (envelope-from kstailey@bsdlab.tf-md.net) Received: from bsdlab.tf-md.net (localhost.tf-md.net [127.0.0.1]) by bsdlab.tf-md.net (8.12.6p2/8.12.6) with ESMTP id h3E3loYq047604; Sun, 13 Apr 2003 23:47:51 -0400 (EDT) (envelope-from kstailey@bsdlab.tf-md.net) Received: (from kstailey@localhost) by bsdlab.tf-md.net (8.12.6p2/8.12.6/Submit) id h3E3loXC047603; Sun, 13 Apr 2003 23:47:50 -0400 (EDT) Message-Id: <200304140347.h3E3loXC047603@bsdlab.tf-md.net> Date: Sun, 13 Apr 2003 23:47:50 -0400 (EDT) From: Ken Stailey To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: tjr@FreeBSD.org Subject: bin/50924: "vmstat -f" says "unimplemented" but data is at hand X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Ken Stailey List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Apr 2003 04:00:29 -0000 >Number: 50924 >Category: bin >Synopsis: "vmstat -f" says "unimplemented" but data is at hand >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: Sun Apr 13 21:00:26 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Ken Stailey >Release: FreeBSD 5.0-RELEASE-p7 i386 >Organization: Thomson Financial >Environment: System: FreeBSD bsdlab.tf-md.net 5.0-RELEASE-p7 FreeBSD 5.0-RELEASE-p7 #6: Mon Mar 31 12:31:18 EST 2003 kstailey@bsdlab.tf-md.net:/usr/obj/usr/src/sys/BSDLAB i386 >Description: "vmstat -f" says it's not implimented but "vmstat -s" produces the goods. How ironic. >How-To-Repeat: Run "vmstat -f" and then "vmstat -s | grep fork" >Fix: Index: vmstat.c =================================================================== RCS file: /home/ncvs/src/usr.bin/vmstat/vmstat.c,v retrieving revision 1.59 diff -u -r1.59 vmstat.c --- vmstat.c 2002/08/09 15:47:43 1.59 +++ vmstat.c 2003/04/14 03:46:29 @@ -101,8 +101,6 @@ #ifdef notyet #define X_DEFICIT 10 { "_deficit" }, -#define X_FORKSTAT 11 - { "_forkstat" }, #define X_REC 12 { "_rectime" }, #define X_PGIN 13 @@ -149,6 +147,7 @@ static void domem(void); static void dointr(void); static void dosum(void); +static void doforkst(void); static void dovmstat(u_int, int); static void dozmem(void); static void kread(int, void *, size_t); @@ -181,7 +180,7 @@ reps = atoi(optarg); break; case 'f': - errx(EX_USAGE, "sorry, -f is not (re)implemented yet"); + todo |= FORKSTAT; break; case 'i': todo |= INTRSTAT; @@ -295,10 +294,8 @@ } else if (reps) interval = 1; -#ifdef notyet if (todo & FORKSTAT) doforkst(); -#endif if (todo & MEMSTAT) domem(); if (todo & ZMEMSTAT) @@ -652,19 +649,27 @@ PCT(lnchstats.ncs_long, nchtotal)); } -#ifdef notyet void doforkst() { - struct forkstat fks; + struct nchstats lnchstats; + long nchtotal; + + kread(X_SUM, &sum, sizeof(sum)); - kread(X_FORKSTAT, &fks, sizeof(struct forkstat)); (void)printf("%d forks, %d pages, average %.2f\n", - fks.cntfork, fks.sizfork, (double)fks.sizfork / fks.cntfork); + sum.v_forks, sum.v_forkpages, + sum.v_forks == 0 ? 0 : + (double)sum.v_forkpages / sum.v_forks); (void)printf("%d vforks, %d pages, average %.2f\n", - fks.cntvfork, fks.sizvfork, (double)fks.sizvfork / fks.cntvfork); + sum.v_vforks, sum.v_vforkpages, + sum.v_vforks == 0 ? 0 : + (double)sum.v_vforkpages / sum.v_vforks); + (void)printf("%d rforks, %d pages, average %.2f\n", + sum.v_rforks, sum.v_rforkpages, + sum.v_rforks == 0 ? 0 : + (double)sum.v_rforkpages / sum.v_rforks); } -#endif static void devstats() >Release-Note: >Audit-Trail: >Unformatted: