summaryrefslogtreecommitdiffstats
path: root/usr.bin/vmstat
Commit message (Collapse)AuthorAgeFilesLines
* Use kvm_getcptime(3) to fetch the global CPU time stats from a crashdumpjhb2008-08-191-15/+14
| | | | | | | since the 'cp_time' symbol doesn't exist in recent kernels. This fixes iostat and vmstat on crash dumps. MFC after: 1 week
* Add forgotten -H, -h, and -P to usage().ru2008-04-101-1/+1
|
* Fix some boolean logic errors. && vs & and other sillyness. *blush*peter2008-01-181-3/+3
| | | | | | This would prevent it from skipping non-present cpus in -P output. Submitted by: Pieter de Goeje <pieter@degoeje.nl>
* Add the -H, -h and -P flags to vmstat. -P causes per-cpu output ofpeter2007-12-133-20/+207
| | | | | | 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.
* Add a counter for the total number of pages cached and support foralc2007-07-271-0/+2
| | | | | | reporting the value of this counter in the program "vmstat". Approved by: re (rwatson)
* - Revert signedness type changes to "struct vmtotal"; by makingru2006-11-281-4/+3
| | | | | | | | | | | | | | 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
* Oops, fix the format specifier to what was intended.ru2006-11-231-2/+1
|
* - Fix types of "struct vmmeter" members so they are unsigned.ru2006-11-201-4/+6
| | | | | | | - 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.)
* Cross-reference libmemstat(3), malloc(9), uma(9).rwatson2006-11-021-4/+10
|
* The vm.zone sysctl has gone; zone stats are now supplied by libmemstat(3).ru2006-10-211-4/+1
|
* - Add comma after REQUESTS field missed in previous commit.ru2006-10-211-2/+2
| | | | - Widen some columns; make width of header columns less cryptic.
* Print the number of allocation failures in UMA zones.glebius2006-10-211-4/+4
| | | | PR: kern/102940
* Markup fixes.ru2006-09-291-1/+1
|
* Increase the field widths of flt (total number of page faults), fr (pagesobrien2006-06-031-5/+5
| | | | | 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]
* Default number of direct access devices had been changed from three to two.marck2006-02-121-6/+6
| | | | | | | | Reflect this in other paragraphs. PR: 93201 Submitted by: Marian Cerny MFC After: 1 week
* Obtain true uptime through clock_gettime(CLOCK_MONOTONIC, struct *timespec)andre2005-10-171-16/+4
| | | | | | instead of subtracting 'bootime' from 'now'. Sponsored by: TCP/IP Optimization Fundraise 2005
* Use libmemstat(3)'s kvm support for malloc(9) rather than hand-extractingrwatson2005-08-061-96/+19
| | | | this information from the core dump.
* Teach vmstat's domemstat_zone() to use memstat_kvm_uma() when the kvmrwatson2005-08-011-14/+19
| | | | | descriptor is non-NULL, restoring vmstat -z support for core dumps and kmem access. These were broken with the introduction of UMA.
* Minor syntax tweaks:rwatson2005-07-281-17/+0
| | | | | | | | | | - 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
* Teach vmstat -m and vmstat -z to use libmemstat(3). Certainrwatson2005-07-252-23/+96
| | | | | | | | | | | 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
* Modify vmstat(8)'s domem() routine, which is responsible for extractingrwatson2005-05-291-7/+38
| | | | | | | 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.
* Interlink systat(1), iostat(8) and vmstat(8) through their SEE ALSOkeramida2005-05-261-0/+1
| | | | sections, so that users of one can learn about the others easily.
* Sync program's usage() with manpage's SYNOPSIS.ru2005-05-211-2/+2
|
* Fix an overflow when calculating the number of kilobytes from theps2005-02-211-1/+1
| | | | | | number of pages. Obtained from: Yahoo!
* Sort sections.ru2005-01-181-7/+7
|
* Mechanically kill hard sentence breaks.ru2004-07-021-6/+12
|
* Make vmstat -m work with -M/-N again. Note that making vmstat -z workgreen2004-06-301-11/+93
| | | | | is much harder, and -m is grossly using unexported interfaces (that is, the array of malloc zones/sizes does not have an exported type).
* Bumped the document date.ru2004-05-191-1/+1
|
* Print fork statistics with %u as they are unsigned quantities.tjr2004-04-231-3/+3
| | | | | PR: 65889 Submitted by: Ken Stailey
* Properly document the -M and -N options.ru2004-03-262-9/+19
|
* Fixed a misspelling of 0 as NULL.bde2004-03-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Put libdevstat before libkvm, because the former depends on the latter.ru2004-02-041-2/+2
|
* Remove an unused variable.dwmalone2003-12-251-2/+1
| | | | Add some missing constness.
* Fixed misplacement of __FBSDID(). Backed out editing of vendor id lines.bde2003-12-111-6/+7
| | | | Just wrap them in #if 0...#endif.
* Revert part of revision 1.74 after bde reminded me of a detail I'ddes2003-12-111-4/+7
| | | | | forgotten about how sysctl works. This removes a potential (though not very likely) race that 1.74 introduced.
* Whitespace cleanup.des2003-12-101-36/+36
|
* Remove debugging printfdes2003-12-101-1/+0
|
* Document the simpler -a semantics.des2003-12-101-3/+0
|
* Fix a couple of issues in the interrupt code:des2003-12-101-21/+13
| | | | | | | | | | | | | | | - 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
* s/u_(int|long)\>/unsigned \1/des2003-12-101-15/+15
|
* Fix a couple of warnings (const a function parameter and change somedwmalone2003-12-101-4/+3
| | | | | | | ints to size_ts to better match the types of variables they are used with). Glanced at by: des
* Unbreak vmstat -i on ia64:marcel2003-12-081-9/+12
| | | | | | | 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.
* Finish the transition from libkvm to sysctl that I started a while ago.des2003-12-073-118/+249
| | | | | | | | | 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.
* make minimum column size for interrupt name be the heading (depends uponjmg2003-11-091-1/+1
| | | | | | Total being shorter than interrupt).. Pointed out by: bde
* fix an overflow bug when scanning for length of names that I introduced injmg2003-11-081-6/+6
| | | | | | | | the last commit... include some minor style changes and fixes that bde sent me Submitted by: bde
* take mux's fix to the next level, scan the names and make the field largerjmg2003-10-281-4/+15
| | | | | | as necessary... on sparcs where: atapci0 vec1996 is a bit too long
* Uncomment the description of the -f option. Add rfork() to the list oftjr2003-04-141-9/+10
| | | | | | system calls it displays stats about. PR: 50924
* Reimplement the vmstat -f option (display fork statistics).tjr2003-04-141-15/+17
| | | | | PR: 50924 Submitted by: Ken Stailey (with a few changes)
* Slightly rework formatting in vmstat -i so that it doesn'tmux2003-04-101-3/+3
| | | | break with "fooX irqY" lines that are a bit bigger.
* Run a revision of the devstat interface:phk2003-03-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud