summaryrefslogtreecommitdiffstats
path: root/usr.sbin/iostat/iostat.c
Commit message (Collapse)AuthorAgeFilesLines
* Run a revision of the devstat interface:phk2003-03-151-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add #include <sys/resource.h>phk2003-02-161-0/+1
| | | | | My apologies for missing these #includes, I must have confused the dependencies with a wrong timestamp or something.
* Remove #include <sys/dkstat.h>phk2003-02-161-1/+0
|
* Use essentially the same formatting of the CPU stats percentages as inbde2002-08-181-1/+1
| | | | | | | | | vmstat so that they never coalesce. Both iostat and vmstat need larger fixes to prevent wide fields from unnecessarily messing up the alignment of all subsequent fields. PR: 41674 MFC-after: 3 days
* Include <nlist.h> for nlist interfaces instead of depending on namespacebde2002-08-181-0/+1
| | | | pollution in <kvm.h>.
* Redo patch in 1.22 such that the header printing is reset when theguido2001-09-261-19/+16
| | | | | | | process gets a SIGCONT Reviewed by: kris@freebs.org MFC after: 2 weeks
* Don't do unsafe activities in the syscall handler.kris2001-09-011-4/+18
| | | | MFC after: 2 weeks
* Bring in some iostat fixes that bde reminded me about. These fixes wereken2001-08-231-92/+123
| | | | | | | | | | | | | | | | originally written in January, 2000, but have been substantially updated. - No longer use hz/stathz and the CPU times in computing the TTY stats, but rather use etime, like the disk stats. - Clean up malloc/realloc failure tests. - Use a new integrated routine to fetch devstat information via sysctl or KVM. - Get rid of the X() macro for calculating CPU stats - Use rint() on the CPU state display to avoid truncation errors. (this requires libm) - Clean up flag usage somewhat. Reviewed by: bde
* Make use of the new features of libdevstat to allow iostat to work ontmm2001-08-041-64/+107
| | | | | | | | | crash dumps, and make it use sysctl for all data retrievals in the "live" case (i.e. when not using iostat on a crash dump). Remove setgid kmem for the iostat executable, it is not needed any more after these changes. Reviewed by: ken
* Properly check malloc(3) return valuesjedgar2000-12-011-3/+8
| | | | Approved by: ken
* Remove bogus include, as per style(9).asmodai2000-04-301-2/+0
| | | | Remove unused variable.
* Back out previous commit minus spelling fixes. Should have asked maintainercharnier2000-01-241-18/+8
| | | | before.
* Rework use of Nm.charnier2000-01-231-9/+19
| | | | | | | Remove -? flag that was not working but documented. Make it work instead but hide it in man page and usage string as others tools do. Spelling. Abort on allocation failure (with errx()).
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Per Ken's request, back out my last change to this file. iostat's manimp1999-06-241-2/+2
| | | | | page documents '?' as a valid option, as does the usage message. None of the other programs' man pages documented '?' as a valid option.
* Two getopts related nits:imp1999-06-241-2/+2
| | | | | | o getopt returns -1 rather than EOF on errors o getopt returns '?' for characters it doesn't know about, so don't include them in the getopt options string.
* Change the devstat generation number from an int to a long. The int-sizedken1998-09-201-4/+5
| | | | | | | | | | 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>
* Fix style bugs introduced by Matt Dillon in his previous, unreviewedken1998-09-161-6/+7
| | | | | | commit. Reviewed by: gibbs
* Fixed segfault when more then four devices are specified (improper free),dillon1998-09-161-11/+21
| | | | | | | | fixed variable so all manually-specified devices are shown rather then cutting the display off at 3, fixed formatting for msps when msps is larger then 100 (it was blowing the columner display output before), added -K option to make blk count (-oIK) force a 1K block size (to conform more closely to systat, vmstat definition of blocksize).
* Update system to new device statistics code.gibbs1998-09-151-260/+525
| | | | Submitted by: "Kenneth D. Merry" <ken@plutotech.com>
* Use err(3).charnier1997-09-191-6/+10
|
* compare return value from getopt against -1 rather than EOF, per the finalimp1997-03-311-1/+1
| | | | posix standard on the topic.
* when you try to run iostat is fails with invalid dk_ndrive 0phk1996-11-061-1/+1
| | | | | Reviewed by: phk Submitted by: John-Mark Gurney <jmg@nike.efn.org>
* Cosmetic fixes for drive names which are 4 chars long.jkh1996-06-111-2/+2
| | | | Submitted-By: Joe Greco <jgreco@ns.sol.net>
* Remove trailing whitespace.rgrimes1995-05-301-1/+1
|
* Fix printout bugache1994-11-101-1/+1
| | | | Submitted by: fredriks@mcs.com
* New way of getting disk drive names.wollman1994-10-161-0/+4
|
* BSD 4.4 Lite usr.sbin Sourcesrgrimes1994-05-261-0/+391
OpenPOWER on IntegriCloud