summaryrefslogtreecommitdiff
path: root/lib/libdevstat/devstat.c
Commit message (Collapse)AuthorAgeFilesLines
* Add prototype for compute_stats() so that libdevstat is WARNS=4 clean.Poul-Henning Kamp2003-04-191-0/+8
| | | | | | | Spotted by: kris Notes: svn path=/head/; revision=113710
* If rounding results in -epsilon device busy %, set it to zero.Poul-Henning Kamp2003-04-091-0/+2
| | | | Notes: svn path=/head/; revision=113281
* typoPoul-Henning Kamp2003-03-191-1/+1
| | | | Notes: svn path=/head/; revision=112406
* Further unbreak devstat: sort the index array in correct order too.Poul-Henning Kamp2003-03-191-10/+10
| | | | Notes: svn path=/head/; revision=112405
* Add more devstat calculations, mostly filling in holes, but also addingPoul-Henning Kamp2003-03-181-25/+117
| | | | | | | | | | | | | a couple of reqests: DSM_BUSY_PCT and DSM_QUEUE_LENGTH. I have no further plans for mutilating this API at this point in time, and will update the man-page to reflect current reality as the next thing. Reviewed by: ken Notes: svn path=/head/; revision=112373
* And I managed to make a regression here too.Poul-Henning Kamp2003-03-151-5/+5
| | | | | | | I have too many source trees :-( Notes: svn path=/head/; revision=112293
* Run a revision of the devstat interface:Poul-Henning Kamp2003-03-151-94/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=112288
* Remove include of <sys/dkstat.h>Poul-Henning Kamp2003-02-161-1/+0
| | | | Notes: svn path=/head/; revision=111000
* Premptively include <sys/resource.h> to get the cp_time[CPUSTATES].Poul-Henning Kamp2003-02-161-0/+1
| | | | Notes: svn path=/head/; revision=110998
* Remove 'register' keyword.David E. O'Brien2002-03-211-2/+2
| | | | Notes: svn path=/head/; revision=92913
* Turn on WARNS?= 2 for libdevstat.Kenneth D. Merry2001-09-231-23/+27
| | | | | | | Submitted by: "Sergey A. Osokin" <osa@freebsd.org.ru> Notes: svn path=/head/; revision=83868
* Implement __FBSDID()Matthew Dillon2001-09-161-2/+3
| | | | Notes: svn path=/head/; revision=83551
* Fix some style inconsistencies introduced in rev 1.10, as well as someKenneth D. Merry2001-08-211-34/+36
| | | | | | | | other inconsistencies that I missed in my review of rev 1.7. Also fix a cut-n-paste error from an earlier revision. Notes: svn path=/head/; revision=82028
* Better snprintf() handling.Brian Somers2001-08-201-38/+23
| | | | | | | Prompted by: bde Notes: svn path=/head/; revision=81984
* Handle snprintf() returning -1.Brian Somers2001-08-201-2/+4
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=81972
* Implement compute_stats() in terms of devstat_compute_statistics(). ThisKenneth D. Merry2001-08-181-104/+28
| | | | | | | | | | | | | | gets rid of the duplicated code in compute_stats(). Add a new DSM_SKIP statistic type for devstat_compute_statistics() that causes the subsequent variable argument to be skipped. Thanks to Sergey Osokin for coding up my idea/code fragment. Submitted by: "Sergey A. Osokin" <osa@freebsd.org.ru> Notes: svn path=/head/; revision=81883
* Add some features to libdevstat, and overhaul the interface a bit:Thomas Moestl2001-08-041-102/+657
| | | | | | | | | | | | | | | | | | | | | | | | 1.) prefix all functions in the library with devstat_ (compatability functions are available for all functions that were chaned in an incompatible way, but are deprecated). 2.) Add a pointer to a kvm_t as the first argument to functions that used to get their information via sysctl; they behave the same as before when NULL is passed as this argument, otherwise, the information is obtained via libkvm using the supplied handle. 3.) Add a new function, devstat_compute_statistics(), that is intended to replace the old compute_stats() function. It offers more statistics data, and has a more flexible interface. libdevstat does now require libkvm; a library depedency is added, so that libkvm only needs to be explicitely specified for statically linked programs. The library major version number is bumped. Submitted by: Sergey A. Osokin <osa@freebsd.org.ru>, ken (3) Reviewed by: ken Notes: svn path=/head/; revision=81133
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50476
* Address our users in a civilized manner. (They may know better, but probablyPoul-Henning Kamp1999-03-221-11/+5
| | | | | | | just forgot it, it is certainly no reason to don't insult them.) Notes: svn path=/head/; revision=44936
* Fix a couple of potential buffer overrun cases.Kenneth D. Merry1998-10-141-4/+8
| | | | | | | Submitted by: imp Notes: svn path=/head/; revision=40364
* Change the devstat generation number from an int to a long. The int-sizedKenneth D. Merry1998-09-201-13/+14
| | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=39498
* Fix some error message format problems in checkversion() and getversion().Kenneth D. Merry1998-09-181-8/+35
| | | | | | | Reported By: bde Notes: svn path=/head/; revision=39451
* Device statistics library. Used by iostat, vmstat, and systat toJustin T. Gibbs1998-09-151-0/+1102
format and analyze the output of the new device statistics sysctls. Submitted by: "Kenneth D. Merry" <ken@FreeBSD.org> Notes: svn path=/head/; revision=39211