Commit graph

236 commits

Author SHA1 Message Date
Peter Wemm 4adb5266e8 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
Alan Cox eaa29f1ce4 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
Ruslan Ermilov bad4d172b4 - 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
Ruslan Ermilov 9623c97258 Oops, fix the format specifier to what was intended. 2006-11-23 11:47:34 +00:00
Ruslan Ermilov 5c88a11e6e - 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
Robert Watson 29a055ac65 Cross-reference libmemstat(3), malloc(9), uma(9). 2006-11-02 19:53:57 +00:00
Ruslan Ermilov e75d2f3694 The vm.zone sysctl has gone; zone stats are now supplied by libmemstat(3). 2006-10-21 10:40:12 +00:00
Ruslan Ermilov ddf3250846 - 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
Gleb Smirnoff d0c8105042 Print the number of allocation failures in UMA zones.
PR:	kern/102940
2006-10-21 09:08:35 +00:00
Ruslan Ermilov cb29445a92 Markup fixes. 2006-09-29 15:20:48 +00:00
David E. O'Brien bb6988aa71 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
Dmitry Morozovsky e3f1789aa0 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 Oppermann a21cbcb876 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
Robert Watson 768528adf6 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
Robert Watson c753d56b39 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
Robert Watson b9dc1340d2 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
Robert Watson 8e73022dda 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
Robert Watson 147819cc85 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
Giorgos Keramidas 26d8ca837e 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
Ruslan Ermilov f682f10c76 Sync program's usage() with manpage's SYNOPSIS. 2005-05-21 09:55:10 +00:00
Paul Saab 043da612df 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
Ruslan Ermilov 6c7216df78 Sort sections. 2005-01-18 13:43:56 +00:00
Ruslan Ermilov 6a3e8b0adc Mechanically kill hard sentence breaks. 2004-07-02 22:22:35 +00:00
Brian Feldman 22ab6be3d4 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
Ruslan Ermilov 79e447559c Bumped the document date. 2004-05-19 09:54:14 +00:00
Tim J. Robbins 6d4ba9cd4e Print fork statistics with %u as they are unsigned quantities.
PR:		65889
Submitted by:	Ken Stailey
2004-04-23 13:10:29 +00:00
Ruslan Ermilov ab82970ed2 Properly document the -M and -N options. 2004-03-26 11:01:45 +00:00
Bruce Evans c044589554 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
Ruslan Ermilov 80c49332e2 Put libdevstat before libkvm, because the former depends on the latter. 2004-02-04 10:20:43 +00:00
David Malone 67206e04f9 Remove an unused variable.
Add some missing constness.
2003-12-25 01:32:55 +00:00
Bruce Evans 06849fd97a Fixed misplacement of __FBSDID(). Backed out editing of vendor id lines.
Just wrap them in #if 0...#endif.
2003-12-11 10:58:29 +00:00
Dag-Erling Smørgrav 56f9b09632 Revert part of revision 1.74 after bde reminded me of a detail I'd
forgotten about how sysctl works.  This removes a potential (though
not very likely) race that 1.74 introduced.
2003-12-11 07:46:08 +00:00
Dag-Erling Smørgrav 1b62c2410d Whitespace cleanup. 2003-12-10 22:19:19 +00:00
Dag-Erling Smørgrav dc4ed4fe11 Remove debugging printf 2003-12-10 22:14:32 +00:00
Dag-Erling Smørgrav eb23b4e6cd Document the simpler -a semantics. 2003-12-10 22:12:06 +00:00
Dag-Erling Smørgrav 7d268144f1 Fix a couple of issues in the interrupt code:
- Replace overly-complicated (and buggy) -a logic with a much simpler
   version: -a causes all interrupts to be displayed, otherwise only
   those that have occurred are displayed.  This removes the need for
   any MD code.

 - Instead of just making sure intrcnt is large enough, figure out the
   exact size it needs to be.  We derive nintr from this number, and we
   don't want to risk printing garbage.  Note that on sparc64, we end up
   printing garbage anyway because the names of non-existent interrupts
   are left uninitialized by the kernel.

Tested on:	alpha, i386, sparc64
2003-12-10 22:11:51 +00:00
Dag-Erling Smørgrav 3c455bcacc s/u_(int|long)\>/unsigned \1/ 2003-12-10 21:43:10 +00:00
David Malone e38926c160 Fix a couple of warnings (const a function parameter and change some
ints to size_ts to better match the types of variables they are used
with).

Glanced at by:	des
2003-12-10 19:24:11 +00:00
Marcel Moolenaar 7e00080caa Unbreak vmstat -i on ia64:
o  nintr and inamlen must by of type size_t, not int,
o  Remove now unnecessary casts,
o  Handle the aflag differently, because the intr. names have a
   fixed width and almost always have trailing spaces.
2003-12-08 07:57:57 +00:00
Dag-Erling Smørgrav c51633823d Finish the transition from libkvm to sysctl that I started a while ago.
The use of libkvm for post-mortem analysis is still supported (though it
could use more testing).  We can now remove vmstat's setgid bit.

While I'm here, hack the interrupt listing code to not display interrupts
that haven't occurred unless the -a option was given on the command line,
and document this change.
2003-12-07 17:46:14 +00:00
John-Mark Gurney 25d136776e make minimum column size for interrupt name be the heading (depends upon
Total being shorter than interrupt)..

Pointed out by:	bde
2003-11-09 20:39:56 +00:00
John-Mark Gurney 2eb7cf1a2b fix an overflow bug when scanning for length of names that I introduced in
the last commit...

include some minor style changes and fixes that bde sent me

Submitted by:	bde
2003-11-08 07:24:03 +00:00
John-Mark Gurney a86e06a60c take mux's fix to the next level, scan the names and make the field larger
as necessary... on sparcs where:
atapci0 vec1996
is a bit too long
2003-10-28 05:02:03 +00:00
Tim J. Robbins bd67e96dbc Uncomment the description of the -f option. Add rfork() to the list of
system calls it displays stats about.

PR:		50924
2003-04-14 07:22:25 +00:00
Tim J. Robbins 3c93cfb510 Reimplement the vmstat -f option (display fork statistics).
PR:		50924
Submitted by:	Ken Stailey (with a few changes)
2003-04-14 07:21:03 +00:00
Maxime Henrion 74d66b34d7 Slightly rework formatting in vmstat -i so that it doesn't
break with "fooX irqY" lines that are a bit bigger.
2003-04-10 00:44:18 +00:00
Poul-Henning Kamp 7194d335cf Run a revision of the devstat interface:
Kernel:

Change statistics to use the *uptime() timescale (ie: relative to
boottime) rather than the UTC aligned timescale.  This makes the
device statistics code oblivious to clock steps.

Change timestamps to bintime format, they are cheaper.

Remove the "busy_count", and replace it with two counter fields:
"start_count" and "end_count", which are updated in the down and
up paths respectively.  This removes the locking constraint on
devstat.

Add a timestamp argument to devstat_start_transaction(), this will
normally be a timestamp set by the *_bio() function in bp->bio_t0.
Use this field to calculate duration of I/O operations.

Add two timestamp arguments to devstat_end_transaction(), one is
the current time, a NULL pointer means "take timestamp yourself",
the other is the timestamp of when this transaction started (see
above).

Change calculation of busy_time to operate on "the salami principle":
Only when we are idle, which we can determine by the start+end
counts being identical, do we update the "busy_from" field in the
down path.  In the up path we accumulate the timeslice in busy_time
and update busy_from.

Change the byte_* and num_* fields into two arrays: bytes[] and
operations[].

Userland:

Change the misleading "busy_time" name to be called "snap_time" and
make the time long double since that is what most users need anyway,
fill it using clock_gettime(CLOCK_MONOTONIC) to put it on the same
timescale as the kernel fields.

Change devstat_compute_etime() to operate on struct bintime.

Remove the version 2 legacy interface: the change to bintime makes
compatibility far too expensive.

Fix a bug in systat's "vm" page where boot relative busy times would
be bogus.

Bump __FreeBSD_version to 500107

Review & Collaboration by:	ken
2003-03-15 21:59:06 +00:00
Poul-Henning Kamp 571d13be84 Update to use current rev of devstat API. 2003-03-15 21:25:44 +00:00
Poul-Henning Kamp 190ff54ebb Add #include <sys/resource.h>
My apologies for missing these #includes, I must have confused the
dependencies with a wrong timestamp or something.
2003-02-16 16:01:52 +00:00
Poul-Henning Kamp f341ca9891 Remove #include <sys/dkstat.h> 2003-02-16 14:13:23 +00:00
Matthew Dillon f7550ecf3f Make 'sysctl vm.vmtotal' work properly using updated patch from Hiten.
(the patch in the PR was stale).

PR:             kern/5689
Submitted by:   Hiten Pandya <hiten@unixdaemons.com>
2003-01-11 07:29:47 +00:00
Thomas Moestl 95ba428ccb The boottime variable in sys/kern/kern_tc.c is a struct timeval, not a
time_t, so do not use the latter as type when retrieving the variable
via libkvm. This should fix vmstat on sparc64.
2002-08-09 15:47:43 +00:00
Philippe Charnier 084e19802d The .Nm utility 2002-07-14 15:12:00 +00:00
Josef Karthauser 1063e12617 Replace /kernel with /boot/kernel/kernel.
PR:		docs/37757
Submitted by:	Hiten Pandya <hiten@uk.FreeBSD.org>
2002-05-09 11:47:42 +00:00
Jeff Roberson 6f2671750e Remove malloc_type's ks_limit.
Updated the kmemzones logic such that the ks_size bitmap can be used as an
index into it to report the size of the zone used.

Create the kern.malloc sysctl which replaces the kvm mechanism to report
similar data.  This will provide an easy place for statistics aggregation if
malloc_type statistics become per cpu data.

Add some code ifdef'd under MALLOC_PROFILING to facilitate a tool for sizing
the malloc buckets.
2002-04-15 04:05:53 +00:00
Jeroen Ruigrok van der Werven e2cf520799 Fix a missed conversion of lld to llu for the uint64_t ks_calls and cast
to unsigned long long.

Don't be too overzealous with the printing of ks_calls in the total
statistics, cut back from 20 to 13 positions to print (which should last
a couple of years easily (20 digits is enough for 3168 years of calls at a
measly billion (10^9) calls per second.)).

Submitted by:	bde
2002-04-13 10:32:36 +00:00
Jeroen Ruigrok van der Werven 9e74ac9de4 Cast totreq to unsigned long long, as needed on 64-bit machines.
Pointed out by:	jeff
2002-04-08 21:06:14 +00:00
Jeroen Ruigrok van der Werven 9333bd2aa6 Change totreq to uint64_t from a long (the PR has an int64_t, which didn't
make sense to me) and change the printf argument from %8ld to %20llu to
accompany the printing of the totals.
Realigned the header printed above it as well.

PR:		32342
Submitted by:	ryan beasley <ryanb@goddamnbastard.org>
Reviewed by:	jeff, Tim J Robbins
2002-04-08 10:39:12 +00:00
Warner Losh 3f330d7d1a remove __P 2002-03-22 01:42:45 +00:00
Jeff Roberson 2294143a5d Remove the kmembuckets stats in preparation for the UMA commit. 2002-03-19 08:45:55 +00:00
Mark Murray e35f9517d6 Remove NO_WERRORs and WARNS=n's. To be revisited after GCC3. 2002-02-08 23:07:37 +00:00
Mark Murray d6bf632706 WARNS=2 fixes, but set NO_WERROR, as there are some HardToFix(tm)
warnings originating in system headers.
2001-12-11 22:59:36 +00:00
Ruslan Ermilov 3b7e5ccc6a SECURITY: Drop `setgid kmem' bit as early as possible. 2001-08-31 16:26:37 +00:00
Kenneth D. Merry 9674f1d43a Change the compute_stats() call to the new devstat_compute_statistics()
interface.

Cast the return of the rest of the printfs in here to void.

Submitted by:	"Sergey A. Osokin" <osa@freebsd.org.ru>
2001-08-11 19:41:56 +00:00
Thomas Moestl 1e543a5075 Correct the old length argument passed to sysctl to be a pointer to a
size_t (not to an int).

MFC after:	2 days
2001-07-29 21:56:14 +00:00
Dima Dorfman f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Ruslan Ermilov 625003720a mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 14:16:33 +00:00
Jens Schweikhardt 9aa042f66c Increase column widths when using -i (they are now wide enough to
hold a 64bit or 32bit ~0 value, i.e. 20 and 10; this anticipates
soon-to-be machines with Exahertz rtc interrupt frequencies. :-)

PR:		bin/16206
Submitted by:	John Capo <jc@irbs.com>
MFC after:	1 week
2001-06-26 18:49:10 +00:00
Jens Schweikhardt f40be3e157 Reduce field width for some columns so that the default output fits in <= 79
columns. 80 columns + newline is a problem for some terminals including syscons.

Requested by:	bde
MFC after:	1 week
2001-06-23 17:52:10 +00:00
Jens Schweikhardt ca513e5e52 Made all fields in default output be space separated. Run-together
columns confuse the heck out of other apps trying to parse vmstat output
(eg sscope). I made sure we're still <= 80 cols per line.
Fixed warnings about unused vars and printf %format mismatches.

Requested by:	Eugene Aleynikov <eugenea@infospace.com>
Reviewed by:	joerg (implicitly)
MFC after:	2 weeks
2001-06-19 17:59:40 +00:00
Jens Schweikhardt 67d9fd5ac4 Avoid the avm field joining the w field when avm is > 9.999.999 pages
which is slightly less than 4GB. To use a quote from someone who shall
remain nameless "No one will ever need more than 4 GB" :-) But FreeBSD
is prepared if we one day will.

Requested by:	Eugene Aleynikov <eugenea@infospace.com>
2001-06-13 18:43:28 +00:00
Jens Schweikhardt b1494cf05a Increase field width by one for 'fre' to accomodate today's memory sizes.
PR:		25267
Submitted by:	Eugene Aleynikov <eugene@infospace.com>
Reviewed by:	joerg
MFC after:	2 weeks
2001-06-12 19:47:40 +00:00
Ruslan Ermilov 3ab9a9d0e0 Removed -I${.CURDIR}/.../sys from CFLAGS. 2001-05-18 13:41:42 +00:00
Ruslan Ermilov dc12be5258 MAN[1-9] -> MAN. 2001-03-27 10:52:19 +00:00
Alfred Perlstein 3cf714fef8 fix usage statement (add missing [-n devs] option)
Submitted by: Maxim Konovalov <maxim@macomnet.ru>

Silence a warning by renaming the 'pgtok' #define to 'vmstat_pgtok' so
as not to conflict with the 'pgtok' #define in sys/param.h
2001-02-22 13:55:12 +00:00
Ruslan Ermilov d0353b836e mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
Hajimu UMEMOTO 5d22597f3a Add mibs to hold the number of forks since boot. New mibs are:
vm.stats.vm.v_forks
	vm.stats.vm.v_vforks
	vm.stats.vm.v_rforks
	vm.stats.vm.v_kthreads
	vm.stats.vm.v_forkpages
	vm.stats.vm.v_vforkpages
	vm.stats.vm.v_rforkpages
	vm.stats.vm.v_kthreadpages

Submitted by:	Paul Herman <pherman@frenchfries.net>
Reviewed by:	alfred
2001-01-23 14:32:01 +00:00
Dag-Erling Smørgrav 0b5c9ae2f3 Document that the -z option is equivalent to 'sysctl vm.zone'. 2001-01-23 00:37:54 +00:00
Dag-Erling Smørgrav bec62dd817 Use the vm.zone sysctl rather that grope through the zone allocator's
internal data structures.
2001-01-23 00:31:56 +00:00
Matt Jacob 97ace1c6ac Update vm zone list traversal for changes made to kernel. Note that this
is ultimately silly because no locks are held in user space while traversing
the list via kvm_reads... really, this should use the sysctl interface
which *is* protected by a lock in the kernel.
2001-01-23 00:09:30 +00:00
Ruslan Ermilov 9b88faecd3 Prepare for mdoc(7)NG. 2000-12-19 16:00:12 +00:00
Ruslan Ermilov 8fe908ef0c mdoc(7) police: use the new features of the Nm macro. 2000-11-20 19:21:22 +00:00
Poul-Henning Kamp 30450ba43e Remove unneeded #include <sys/buf.h> 2000-05-05 16:07:10 +00:00
Poul-Henning Kamp 0e8a43c502 unifdef -Uvax -Uhp300 -Uluna68k -Umips -Utahoe 1999-09-01 11:25:25 +00:00
Peter Wemm c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Nick Hibma e85dc44cd7 Convert interrupt count from signed to unsigned and the total
from signed long to unsigned lon long.

PR:		12808
Submitted by:	Kevin Day toasty@dragondata.com
Reviewed by:	bde
1999-07-26 09:18:26 +00:00
Kris Kennaway 735df1561f Correct description of -c and -w options
Inspired by:	PR docs/11774
Submitted by:	Chad R. Larson <chad@freeway.dcfinc.com>
1999-06-06 14:16:51 +00:00
Bruce Evans 6930c8618b Backed out the previous commit, except for the parts that reduced
the magicness of 200.  Cleaned up the remaining parts.  Circularisation
of the list of malloc types was a kernel bug (now fixed).  Interfering
with applications' definitions of pgtok is a system header bug (not
fixed).
1999-05-12 11:49:47 +00:00
Warner Losh 7cbb70b303 Sometime since this file was written, the list of kernel malloc types
changed from a simple list to a circular one.  We compensate by only
looping until we see the first address again.  Before, things would
terminate because it was limited to 200 iterations.  This lead to
bogus statistics and repeating stats for memory types.

This should be merged into 3.2, as the same bug is there.
1999-05-10 00:33:32 +00:00
Kris Kennaway d662d4b701 Move an option outside of a nested list and up a bit to live free among
its brothers and sisters.
1999-04-26 14:08:04 +00:00
Bruce Evans 91e6422650 Fixed bitrot in usage message and disordering of options in previous commit.
I'm not sure why we have `mvstat -z'.  `sysctl vm.zone' gives more
information.  OTOH, `sysctl vm.zone' shouldn't return ASCII data,
and reporting of memory use should be integrated, at least as an
option.
1999-02-15 14:15:28 +00:00
Bruce Evans 218221f38a Fixed disordering of options in previous commit. 1999-02-15 13:57:18 +00:00
Matthew Dillon 2e8c5eaef8 Add -z option to vmstat to dump data from the zone allocator 1999-02-13 09:59:24 +00:00
Kenneth D. Merry 4faf42f3ae Fix vmstat display problems. The header printout wasn't quite right, and
the display wrapped around.

This decreases the default maximum number of disks shown to 2, so things
don't wrap around so easily.  Also, it fixes the header display issues.

Submitted by:	Bruce Evans <bde@FreeBSD.ORG>
1999-02-10 00:46:27 +00:00
Kenneth D. Merry 2a888f938e Add a prioritization field to the devstat_add_entry() call so that
peripheral drivers can determine where in the devstat(9) list they are
inserted.

This requires recompilation of libdevstat, systat, vmstat, rpc.rstatd, and
any ports that depend on the devstat code, since the size of the devstat
structure has changed.  The devstat version number has been incremented as
well to reflect the change.

This sorts devices in the devstat list in "more interesting" to "less
interesting" order.  So, for instance, da devices are now more important
than floppy drives, and so will appear before floppy drives in the default
output from systat, iostat, vmstat, etc.

The order of devices is, for now, kept in a central table in devicestat.h.
If individual drivers were able to make a meaningful decision on what
priority they should be at attach time, we could consider splitting the
priority information out into the various drivers.  For now, though, they
have no way of knowing that, so it's easier to put them in an easy to find
table.

Also, move the checkversion() call in vmstat(8) to a more logical place.

Thanks to Bruce and David O'Brien for suggestions, for reviewing this, and
for putting up with the long time it has taken me to commit it.  Bruce did
object somewhat to the central priority table (he would rather the
priorities be distributed in each driver), so his objection is duly noted
here.

Reviewed by:	bde, obrien
1999-02-10 00:04:13 +00:00
John Polstra b5e7d1133b Back out previous work-around for "vmstat -i" failing on ELF
kernels.  A better fix is now committed to "src/lib/libc/gen/nlist.c"
and "src/usr.sbin/kvm_mkdb/nlist.c".
1998-10-28 06:41:24 +00:00
Mike Smith e74e8b8b23 Work around some variables having N_UNDF types but valid values; this
makes vmstat work on ELF kernels again.
Submitted by:	Daniel Rock <rock@cs.uni-sb.de>
1998-10-24 23:12:09 +00:00
Kenneth D. Merry bcc6a3da92 Change the devstat generation number from an int to a long. The int-sized
generation was causing unaligned access faults on the Alpha.

I have incremented the devstat version number, since this is an interface
change.  You'll need to recompile libdevstat, systat, iostat, vmstat and
rpc.rstatd along with your kernel.

Partially Submitted by:	Andrew Gallatin <gallatin@cs.duke.edu>
1998-09-20 00:11:23 +00:00
Matthew Dillon 8f82c3ea68 vmstat shows all manually-specified devices rather then just the first
three.
1998-09-16 18:20:23 +00:00
Kenneth D. Merry 8b95823257 Delete unused code. This has been obsoleted by the new devstat code.
Reviewed by:	imp
1998-09-16 00:25:54 +00:00
Justin T. Gibbs 8d2fbde504 Update system to new device statistics code.
Submitted by:	"Kenneth D. Merry" <ken@plutotech.com>
1998-09-15 08:16:45 +00:00
Mike Smith 1717c90cc3 Terminate the defdrives array correctly. (Shame, Rod!)
Submitted by:	Scott Michel <scottm@cs.ucla.edu>
1998-09-09 02:22:28 +00:00
Bruce Evans 22694ebad5 Fixed printf format errors. 1998-07-06 21:01:54 +00:00
John Dyson 4d5459f794 Support a couple of new "-s" stats. 1998-03-07 23:40:23 +00:00
Bruce Evans 188da0efe1 Const poisoning from ks_shortdesc. 1997-12-05 19:28:28 +00:00
Poul-Henning Kamp 8c85509d0a struct kmemstats was renamed. 1997-10-10 18:19:48 +00:00
Poul-Henning Kamp 327af1899a Make vmstat understand the dynamic malloc stuff. There are a number
of ugly hardcoded constants in there.
1997-10-10 14:08:07 +00:00
Dima Ruban fed746a535 Be more specific about -f/-t options (they're not yet implemented),
not just exit with 0 status.

This definitely should go to 2.2.5.
If i won't have any objections - I'll commit it tonight.
1997-10-06 18:52:16 +00:00
Philippe Charnier 495aecea76 Use err(3). Add some %d to %ld changes. 1997-08-25 06:40:05 +00:00
Steve Price aeaa52dbdc Cleanup inconsistencies in the manpage.
PR:		docs/3709
Submitted by:	Takahiro Yugawa <yugawa@orleans.rim.or.jp>
1997-08-23 21:42:46 +00:00
Warner Losh 1c8af87873 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
Marc G. Fournier 54a064002a Slight visual formatting change to the output so that:
procs   memory     page                    disks   faults      cpu
 r b w   avm   fre  flt  re  pi  po  fr  sr w0 w1   in   sy  cs us sy id
 1 0 04135184  6016  180   2   1   0 158 135 10  0  386 1820  77 20  6 74

looks like:

 procs      memory     page                    disks   faults      cpu
 r b w     avm   fre  flt  re  pi  po  fr  sr w0 w1   in   sy  cs us sy id
 1 0 0 4135188  6016  180   2   1   0 158 135 10  0  387 1821  77 20  6 74
1997-03-16 23:11:07 +00:00
Mike Pritchard 9d16a728b6 Make the man page agree with the actual vmstat output
and options.
1997-01-09 06:49:33 +00:00
Bruce Evans 5b963fa12e Fixed DPADD. 1996-09-05 17:16:10 +00:00
Mike Pritchard 33d83c832e Change a stray reference to pstat to vmstat.
Pointed-out-by: bde
1996-08-24 16:12:53 +00:00
Mike Pritchard 1c1f145f2b Convert to mdoc format. 1996-08-23 21:40:59 +00:00
Joerg Wunsch c584e0e88a Correct a typo.
Submitted by:	mbarkah@hemi.com (Ade Barkah)
1996-04-30 05:20:32 +00:00
Jordan K. Hubbard 1d66e218f6 Print number of second-level cache hits as per-directory, not per-process
(since they're per-directory now).
Learned from: Kirk McKusick's OS internals course.. :-)
1996-03-03 09:06:59 +00:00
Bruce Evans d376015efe Reduced vm dependencies. Only `struct vmmeter.h' is required.
Unfortunately, the sysctl number for reading this struct is
bogusly placed in <vm/vm_param.h> instead of with the declaration
of the struct.
1995-12-13 15:01:13 +00:00
Peter Wemm 5141eaa463 add a #include <sys/vmmeter.h> since we are using the vmmeter structures
and this was once (but no longer it seems) included by <vm/vm.h>
It should now compile again.
1995-12-13 11:33:34 +00:00
Rodney W. Grimes 7799f52a32 Remove trailing whitespace. 1995-05-30 06:41:30 +00:00
David Greenman ff93e578a0 Removed object lookup/hit count and changed the order of things a little. 1995-03-25 08:44:48 +00:00
David Greenman 42d825e109 Removed printing of cnt.v_nzfod: we don't implement this in the kernel. 1995-03-25 06:11:43 +00:00
David Greenman 39b3568a26 Added 'pages in VM cache' statistic. 1995-01-10 05:52:59 +00:00
Andreas Schulz ab51dae938 change a .TH VMSTAT 1 to a .TH VMSTAT 8 . 1994-12-12 00:26:08 +00:00
Poul-Henning Kamp d8b4e0d7f5 More absolute paths 1994-11-21 00:17:10 +00:00
David Greenman eb0a76a869 Made zero-fill stats a bit more clear. 1994-10-18 15:17:09 +00:00
David Greenman 204b727408 Updated to changes in struct vmmeter and reorganized -s stats to be more
logical.
1994-10-18 15:00:06 +00:00
David Greenman 8678b0ebb5 Restore all of my changes that Garrett clobbered in the previous commit. 1994-10-17 10:34:42 +00:00
Garrett Wollman 379bb2d779 New way of getting disk drive names. 1994-10-16 04:04:56 +00:00
David Greenman d804109675 Updated to changes in struct vmmeter. Nuked !NEWVM code. Fixed rounding
bug when interval is 1 second.
1994-10-15 13:36:32 +00:00
Poul-Henning Kamp 3d9d72fc59 Realigned the output of "vmstat -m", "MSDOSFS mount" was too wide for the
field.  Saved some space and gained a little clarity by printing "128K"
instead of 131072 (and so on).
1994-10-05 04:52:47 +00:00
Garrett Wollman b35bdc400c More merry makefile munging for man page compatability. 1994-08-05 19:00:04 +00:00
David Greenman b3bfc7199e Converted 'vmunix' to 'kernel'. 1994-08-05 09:14:37 +00:00
Rodney W. Grimes 987df638a9 Add read_names support for i386, based on my original work from FreeBSD
and cleaned up slightly.
1994-05-29 06:19:34 +00:00
Rodney W. Grimes 9b50d90275 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00