Date: Wed, 21 Feb 2001 15:21:50 -0800 From: Eugene Aleynikov <eugenea@infospace.com> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/25267: vmstat bug Message-ID: <3A944D8E.866BB02C@infospace.com>
next in thread | raw e-mail | index | archive | help
>Number: 25267
>Category: bin
>Synopsis: vmstat displays some parameters incorrectly
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Feb 21 15:30:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Eugene Aleynikov
>Release: FreeBSD 4.2-RELEASE i386
>Organization:
Go2net
>Environment:
4.2-RELEASE
>Description:
vmstat displays avm and fre alltogether:
# vmstat
procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr da0 da1 in sy cs us
sy id
0 0 0 5404197860 1 0 0 0 1 0 0 0 152 10 3 0
0 100
this makes some monitoring programs go crazy
>How-To-Repeat:
type vmstat in a command prompt, look at the output
>Fix:
possible fix is:
*** vmstat.c.orig Thu Feb 15 14:58:46 2001
--- vmstat.c Thu Feb 15 15:00:42 2001
***************
*** 482,488 ****
total.t_rq - 1, total.t_dw + total.t_pw,
total.t_sw);
#define pgtok(a) ((a) * sum.v_page_size >> 10)
#define rate(x) (((x) + halfuptime) / uptime) /* round */
! (void)printf("%8ld%6ld ",
(long)pgtok(total.t_avm),
(long)pgtok(total.t_free));
(void)printf("%4lu ",
(u_long)rate(sum.v_vm_faults - osum.v_vm_faults));
--- 482,488 ----
total.t_rq - 1, total.t_dw + total.t_pw,
total.t_sw);
#define pgtok(a) ((a) * sum.v_page_size >> 10)
#define rate(x) (((x) + halfuptime) / uptime) /* round */
! (void)printf("%8ld %6ld ",
(long)pgtok(total.t_avm),
(long)pgtok(total.t_free));
(void)printf("%4lu ",
(u_long)rate(sum.v_vm_faults - osum.v_vm_faults));
***************
*** 534,540 ****
else if (num_shown == 1)
(void)printf("disk");
(void)printf(" faults cpu\n");
! (void)printf(" r b w avm fre flt re pi po fr sr ");
for (i = 0; i < num_devices; i++)
if ((dev_select[i].selected)
&& (dev_select[i].selected <= maxshowdevs))
--- 534,540 ----
else if (num_shown == 1)
(void)printf("disk");
(void)printf(" faults cpu\n");
! (void)printf(" r b w avm fre flt re pi po fr sr ");
for (i = 0; i < num_devices; i++)
if ((dev_select[i].selected)
&& (dev_select[i].selected <= maxshowdevs))
>Release-Note:
>Audit-Trail:
>Unformatted:
X-send-pr-version: 3.2
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?3A944D8E.866BB02C>
