Commit Graph

93 Commits

Author SHA1 Message Date
tjr
aeaf2b9583 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
tjr
bcfbb22ad9 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
mux
0c6ec2557f 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
phk
cce6017a6a 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
phk
6a201ff1ce Update to use current rev of devstat API. 2003-03-15 21:25:44 +00:00
phk
53bdb48b93 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
phk
674c779422 Remove #include <sys/dkstat.h> 2003-02-16 14:13:23 +00:00
dillon
11174e75cf 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
tmm
ec63f2e555 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
charnier
31f74328c4 The .Nm utility 2002-07-14 15:12:00 +00:00
joe
5d6d64b108 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
15c38344e0 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
asmodai
be66db4991 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
asmodai
05e2982a7a Cast totreq to unsigned long long, as needed on 64-bit machines.
Pointed out by:	jeff
2002-04-08 21:06:14 +00:00
asmodai
5495cb03e6 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
imp
6b8e9d623c remove __P 2002-03-22 01:42:45 +00:00
jeff
70915aa432 Remove the kmembuckets stats in preparation for the UMA commit. 2002-03-19 08:45:55 +00:00
markm
fcaa25d991 Remove NO_WERRORs and WARNS=n's. To be revisited after GCC3. 2002-02-08 23:07:37 +00:00
markm
e58836452a 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
ru
5ee2a44e4d SECURITY: Drop `setgid kmem' bit as early as possible. 2001-08-31 16:26:37 +00:00
ken
9cd33dbc68 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
tmm
0e146246a7 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
dd
7d1013753f Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
ru
ecbb298b07 mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 14:16:33 +00:00
schweikh
231e002137 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
schweikh
ff542d61ad 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
schweikh
2a08fb224a 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
schweikh
21d4d39e4b 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
schweikh
0fd2ddfe9b 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
ru
136b4e514b Removed -I${.CURDIR}/.../sys from CFLAGS. 2001-05-18 13:41:42 +00:00
ru
8ec47de9c3 MAN[1-9] -> MAN. 2001-03-27 10:52:19 +00:00
alfred
6bc193cf24 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
ru
b1c3961564 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
ume
247d9e1859 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
des
bd338a88c7 Document that the -z option is equivalent to 'sysctl vm.zone'. 2001-01-23 00:37:54 +00:00
des
fbecf1f5a4 Use the vm.zone sysctl rather that grope through the zone allocator's
internal data structures.
2001-01-23 00:31:56 +00:00
mjacob
09b6c57c5f 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
ru
655e7db87e Prepare for mdoc(7)NG. 2000-12-19 16:00:12 +00:00
ru
0957874304 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 19:21:22 +00:00
phk
8416275eed Remove unneeded #include <sys/buf.h> 2000-05-05 16:07:10 +00:00
phk
de0c54597a unifdef -Uvax -Uhp300 -Uluna68k -Umips -Utahoe 1999-09-01 11:25:25 +00:00
peter
e4b04a2b21 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
n_hibma
39d6abc10f 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
fd58402d0d 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
bde
c82c6570a3 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
imp
25eb539039 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
c80be589b5 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
bde
10dcd94aff 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
bde
8a88563e32 Fixed disordering of options in previous commit. 1999-02-15 13:57:18 +00:00
dillon
b784d9407a Add -z option to vmstat to dump data from the zone allocator 1999-02-13 09:59:24 +00:00