Commit Graph

156 Commits

Author SHA1 Message Date
zont
7429550631 - Show page faults requiring I/O when -s invoked.
Reviewed by:	alc
MFC after:	2 weeks
2013-01-28 12:58:37 +00:00
pluknet
8a86bd1bcc Garbage collect defunct nlist(3) symbols.
MFC after:	1 week
2012-03-22 09:47:14 +00:00
dim
47c51a8625 In usr.bin/vmstat/vmstat.c, cast several printf field widths to int, and
use printf format specifiers from inttypes.h for uint64_t's.

MFC after:	1 week
2011-12-17 19:22:24 +00:00
pluknet
a9ea37dda1 sintrcnt/sintrnames is the address of the size, not the actual size.
Use them appropriately to fetch the actual size.
That fixes vmstat -i with kvm backend.

Submitted by:	peter
Approved by:	re (kib)
2011-07-18 19:42:18 +00:00
attilio
9a6ff5ad37 - Remove the eintrcnt/eintrnames usage and introduce the concept of
sintrcnt/sintrnames which are symbols containing the size of the 2
  tables.
- For amd64/i386 remove the storage of intr* stuff from assembly files.
  This area can be widely improved by applying the same to other
  architectures and likely finding an unified approach among them and
  move the whole code to be MI. More work in this area is expected to
  happen fairly soon.

No MFC is previewed for this patch.

Tested by:	pluknet
Reviewed by:	jhb
Approved by:	re (kib)
2011-07-18 15:19:40 +00:00
kevlo
9304e224e7 Remove duplicated header files 2011-06-24 07:18:44 +00:00
emaste
b5cdb59a0d Remove uptime validity check that hasn't been necessary since r151417
switched to clock_gettime.  vmstat will now not exit with an error
if run on a system with 10 years of uptime.
2011-03-17 01:05:54 +00:00
joel
29af67e52c Remove the advertising clause from UCB copyrighted files in usr.bin. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

Also add $FreeBSD$ to a few files to keep svn happy.

Discussed with:	imp, rwatson
2010-12-11 08:32:16 +00:00
kevlo
951f9264d7 Remove unused variable 2010-11-20 15:22:16 +00:00
uqs
8ae3afcfad mdoc: drop redundant .Pp and .LP calls
They have no effect when coming in pairs, or before .Bl/.Bd
2010-10-08 12:40:16 +00:00
sbruno
3571902304 Add a new column to the output of vmstat -z to indicate the number
of times the system was forced to sleep when requesting a new allocation.

Expand the debugger hook, db_show_uma, to display these results as well.

This has proven to be very useful in out of memory situations when
it is not known why systems have become sluggish or fail in odd ways.

Reviewed by:	rwatson alc
Approved by:	scottl (mentor) peter
Obtained from:	Yahoo Inc.
2010-06-15 19:28:37 +00:00
sbruno
d60c486b88 Allow sub-second interval timings for iostat and vmstat.
e.g.
vmstat -w.5
iostat -w.5

Reviewed by:	jhb
Approved by:	scottl (mentor)
Obtained from:	Yahoo Inc.
MFC after:	2 weeks
2010-05-21 17:10:52 +00:00
ed
9b380e30d4 Build usr.bin/ with WARNS=6 by default.
Also add some missing $FreeBSD$ to keep svn happy.
2010-01-02 10:27:05 +00:00
jhb
2f0c1c2a24 When fetching sum stats (vmstat -s) from a crash dump, fetch per-CPU counts
and sum them to form the total counts.

PR:		bin/135893
Submitted by:	Mikolaj Golub  to my trociny of gmail
MFC after:	1 week
2009-10-29 17:34:02 +00:00
delphij
c36f13a958 Utilize calloc() instead of bzero'ing manually. 2009-02-21 03:43:20 +00:00
keramida
a29fd74e21 Fix comment typo that managed to sneak in when I copy pasted some
comments & code from iostat.
2008-11-04 18:20:54 +00:00
keramida
551b80b676 Repeat vmstat header after window.rows instead of a hardcoded 20.
Use ioctl() to get the window size in vmstat(8), and force a new
header to be prepended to the output every time the current window
size changes.  Change the number of lines before each header to the
current lines of the terminal when the terminal is resized, so that
the full terminal length can be used for output lines.

Inspired by:	svn change 175562 (same feature for iostat)
Reviewed by:	ru (who fixed some of my bugs too)
MFC after:	1 week
2008-11-04 18:02:35 +00:00
jhb
c990b20179 Use kvm_getcptime(3) to fetch the global CPU time stats from a crashdump
since the 'cp_time' symbol doesn't exist in recent kernels.  This fixes
iostat and vmstat on crash dumps.

MFC after:	1 week
2008-08-19 21:33:09 +00:00
ru
1bd86de998 Add forgotten -H, -h, and -P to usage(). 2008-04-10 09:56:57 +00:00
peter
edc23a8104 Fix some boolean logic errors. && vs & and other sillyness. *blush*
This would prevent it from skipping non-present cpus in -P output.

Submitted by:  Pieter de Goeje <pieter@degoeje.nl>
2008-01-18 22:09:44 +00:00
peter
8348a2e294 Add the -H, -h and -P flags to vmstat. -P causes per-cpu output of
user/system/idle stats.  -h feeds the memory column through
humanize_number() to reduce the amount of column overflowing.  -H turns
this off.  -h is turned on by default if stdout is a tty.
2007-12-13 02:36:11 +00:00
alc
215153274b Add a counter for the total number of pages cached and support for
reporting the value of this counter in the program "vmstat".

Approved by:	re (rwatson)
2007-07-27 20:01:22 +00:00
ru
3b8270a3d5 - Revert signedness type changes to "struct vmtotal"; by making
them unsigned I made the possible overflows hard to detect,
  and it only saved 1 bit which isn't principal, even less now
  that the underlying issue with the total of virtual memory has
  been fixed.  (For the record, it will overflow with >=2T of
  VM total, with 32-bit ints used to keep counters in pages.)

- While here, fix printing of other "struct vmtotal" members
  such as t_rq, t_dw, t_pw, and t_sw as they are also signed.

Reviewed by:	bde
MFC after:	3 days
2006-11-28 12:46:02 +00:00
ru
9a3577d01b Oops, fix the format specifier to what was intended. 2006-11-23 11:47:34 +00:00
ru
1ea77e90a7 - Fix types of "struct vmmeter" members so they are unsigned.
- Fix overflow bugs in sysctl(8), systat(1), and vmstat(8)
  when printing values of "struct vmmeter" in kilobytes as
  they don't necessarily fit into 32 bits.  (Fix sysctl(8)
  reporting of a total virtual memory; it's in pages too.)
2006-11-20 16:04:41 +00:00
rwatson
a2444d132b Cross-reference libmemstat(3), malloc(9), uma(9). 2006-11-02 19:53:57 +00:00
ru
95ec5519d6 The vm.zone sysctl has gone; zone stats are now supplied by libmemstat(3). 2006-10-21 10:40:12 +00:00
ru
7b0d9d9885 - Add comma after REQUESTS field missed in previous commit.
- Widen some columns; make width of header columns less cryptic.
2006-10-21 10:16:26 +00:00
glebius
8f073c1e71 Print the number of allocation failures in UMA zones.
PR:	kern/102940
2006-10-21 09:08:35 +00:00
ru
33e34aeeb5 Markup fixes. 2006-09-29 15:20:48 +00:00
obrien
f16c41b4d8 Increase the field widths of flt (total number of page faults), fr (pages
freed), & cs (CPU context switch rate).  'vmstat 1' output is now lined up
for today's typical machines vs. a VAX.  [tested my modest 1.6ghz laptop]
2006-06-03 20:34:56 +00:00
marck
fe1126effe Default number of direct access devices had been changed from three to two.
Reflect this in other paragraphs.

PR:		93201
Submitted by:	Marian Cerny
MFC After:	1 week
2006-02-12 10:30:52 +00:00
andre
74d3ddeb32 Obtain true uptime through clock_gettime(CLOCK_MONOTONIC, struct *timespec)
instead of subtracting 'bootime' from 'now'.

Sponsored by:	TCP/IP Optimization Fundraise 2005
2005-10-17 15:37:22 +00:00
rwatson
f7a5e4f7e2 Use libmemstat(3)'s kvm support for malloc(9) rather than hand-extracting
this information from the core dump.
2005-08-06 13:56:21 +00:00
rwatson
548e1b7d84 Teach vmstat's domemstat_zone() to use memstat_kvm_uma() when the kvm
descriptor is non-NULL, restoring vmstat -z support for core dumps and
kmem access.  These were broken with the introduction of UMA.
2005-08-01 21:33:17 +00:00
rwatson
180ae3e7ba Minor syntax tweaks:
- Remove some extra blank lines.
- Remove comments that don't contribute to understanding.
- Remove additional blank lines in output added to maximize compatibility
  with older vmstat output, but that is actually somewhat gratuitous.

Submitted by:	bde
MFC with:	other vmstat libmemstat(3) changes
2005-07-28 09:45:08 +00:00
rwatson
4bf88ad842 Teach vmstat -m and vmstat -z to use libmemstat(3). Certain
statistics from -z are now a bit different due to changes in the
way statistics are now measured.  Reproduce with some amount of
accuracy the slightly obscure layouts adopted by the two kernel
sysctls.  In the future, we might want to normalize them.

GC dosysctl(), which is now no longer used.

MFC after:	1 week
2005-07-25 22:35:10 +00:00
rwatson
f5b0199972 Modify vmstat(8)'s domem() routine, which is responsible for extracting
malloc(9) statistics from kernel memory or a kernel coredump, to catch
up with recent changes to adopt per-CPU malloc(9) statistics.  The new
routines walk the per-CPU statistics pools and coalesce them for
presentation to the user.
2005-05-29 13:40:00 +00:00
keramida
dd13f28b17 Interlink systat(1), iostat(8) and vmstat(8) through their SEE ALSO
sections, so that users of one can learn about the others easily.
2005-05-26 17:54:16 +00:00
ru
0491ba1f63 Sync program's usage() with manpage's SYNOPSIS. 2005-05-21 09:55:10 +00:00
ps
c9d616766c Fix an overflow when calculating the number of kilobytes from the
number of pages.

Obtained from:	Yahoo!
2005-02-21 14:35:00 +00:00
ru
7f3c7f0d46 Sort sections. 2005-01-18 13:43:56 +00:00
ru
fb1d8b3724 Mechanically kill hard sentence breaks. 2004-07-02 22:22:35 +00:00
green
b09ea0c305 Make vmstat -m work with -M/-N again. Note that making vmstat -z work
is much harder, and -m is grossly using unexported interfaces (that is,
the array of malloc zones/sizes does not have an exported type).
2004-06-30 01:34:26 +00:00
ru
4c01ec9500 Bumped the document date. 2004-05-19 09:54:14 +00:00
tjr
82d781d1b5 Print fork statistics with %u as they are unsigned quantities.
PR:		65889
Submitted by:	Ken Stailey
2004-04-23 13:10:29 +00:00
ru
a05bd8e51a Properly document the -M and -N options. 2004-03-26 11:01:45 +00:00
bde
0f0e6e75d4 Fixed a misspelling of 0 as NULL.
Fixed a nearby bug.  The "play it safe" code in dosysctl() was unsafe
because it overran the buffer by 1 if sysctl() filled all of the buffer.

Fixed a nearby style bug in output.  Not just 1, but 2 extra newlines
were printed at the end by "vmstat -m" and "vmstat -z".  Don't print
any newlines explicitly.  This depends on 2 of the many formatting
bugs in the corresponding sysctls.  First, the sysctls return an extra
newline at the end of the strings.  This also messes up output from
sysctl(8).  Second, the sysctls return an extra newline at the beginning
of the strings.  This is good for separating the 2 tables output by
"vmstat -mz" and for starting the header on a new line in plain sysctl
output, but gives a bogus extra newline at the beginning for "vm -[m | z]"
and "sysctl -n [kern.malloc | vm.zone]".

Fixed some nearby style bugs in the source code:
- the same line that misspelled 0 as NULL also spelled NULL as 0.
- the size was doubled twice in the realloc loop.
- the "play it safe" comment was misleading.  Terminating the buffer
  is bogus because dosysctl() is only meant to work with sysctls that
  return strings and the terminator is part of a string.  However, the
  kern.malloc sysctl has more than style bugs.  It also doesn't return
  a string.  Termination is needed to work around this bug.
2004-03-11 11:30:57 +00:00
ru
7e3a5665be Put libdevstat before libkvm, because the former depends on the latter. 2004-02-04 10:20:43 +00:00
dwmalone
088a25112c Remove an unused variable.
Add some missing constness.
2003-12-25 01:32:55 +00:00