summaryrefslogtreecommitdiffstats
path: root/lib/libdevstat/devstat.c
Commit message (Collapse)AuthorAgeFilesLines
* New devstat metrics for devstat_compute_statistics():trociny2012-12-151-8/+39
| | | | | | | | | DSM_TOTAL_DURATION DSM_TOTAL_DURATION_READ DSM_TOTAL_DURATION_WRITE DSM_TOTAL_DURATION_FREE DSM_TOTAL_DURATION_OTHER DSM_TOTAL_BUSY_TIME
* Handle memory allocation failures in devstat_getdevs(), devstat_selectdevs(),ghelmer2012-01-061-10/+30
| | | | | | | and devstat_buildmatch(). PR: bin/83359 Reviewed by: ken
* Do not increment num_args if strsep(3) returned an empty field.pluknet2011-04-041-3/+4
| | | | | | | That fixes devstat_buildmatch(3) crashes with certain strings. Reported by: arundel MFC after: 2 weeks
* Remove an unused variable.stefanf2005-10-041-2/+1
| | | | Reviewed by: ken
* Use __func__ throughout devstat.c instead of defining a func_namemux2005-04-261-31/+21
| | | | variable in each function.
* Make this compile with GCC4 by fixing a signedness issue.mux2005-04-261-1/+1
| | | | Reviewed by: md5(1)
* Remove the use of cast as lvalue. GCC 3.4 isses a deprecation warningkan2004-06-251-1/+1
| | | | for this now.
* Include <nlist.h> for nlist-related declarations instead of depending onbde2003-10-131-0/+1
| | | | namespace pollution in <kvm.h>.
* It is not an error to have no devices.phk2003-08-171-1/+1
|
* Add prototype for compute_stats() so that libdevstat is WARNS=4 clean.phk2003-04-191-0/+8
| | | | Spotted by: kris
* If rounding results in -epsilon device busy %, set it to zero.phk2003-04-091-0/+2
|
* typophk2003-03-191-1/+1
|
* Further unbreak devstat: sort the index array in correct order too.phk2003-03-191-10/+10
|
* Add more devstat calculations, mostly filling in holes, but also addingphk2003-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
* And I managed to make a regression here too.phk2003-03-151-5/+5
| | | | I have too many source trees :-(
* Run a revision of the devstat interface:phk2003-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
* Remove include of <sys/dkstat.h>phk2003-02-161-1/+0
|
* Premptively include <sys/resource.h> to get the cp_time[CPUSTATES].phk2003-02-161-0/+1
|
* Remove 'register' keyword.obrien2002-03-211-2/+2
|
* Turn on WARNS?= 2 for libdevstat.ken2001-09-231-23/+27
| | | | Submitted by: "Sergey A. Osokin" <osa@freebsd.org.ru>
* Implement __FBSDID()dillon2001-09-161-2/+3
|
* Fix some style inconsistencies introduced in rev 1.10, as well as someken2001-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.
* Better snprintf() handling.brian2001-08-201-38/+23
| | | | Prompted by: bde
* Handle snprintf() returning -1.brian2001-08-201-2/+4
| | | | MFC after: 2 weeks
* Implement compute_stats() in terms of devstat_compute_statistics(). Thisken2001-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>
* Add some features to libdevstat, and overhaul the interface a bit:tmm2001-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
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Address our users in a civilized manner. (They may know better, but probablyphk1999-03-221-11/+5
| | | | just forgot it, it is certainly no reason to don't insult them.)
* Fix a couple of potential buffer overrun cases.ken1998-10-141-4/+8
| | | | Submitted by: imp
* Change the devstat generation number from an int to a long. The int-sizedken1998-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>
* Fix some error message format problems in checkversion() and getversion().ken1998-09-181-8/+35
| | | | Reported By: bde
* Device statistics library. Used by iostat, vmstat, and systat togibbs1998-09-151-0/+1102
format and analyze the output of the new device statistics sysctls. Submitted by: "Kenneth D. Merry" <ken@FreeBSD.org>
OpenPOWER on IntegriCloud