Date: Sat, 15 Mar 2003 13:59:06 -0800 (PST) From: Poul-Henning Kamp <phk@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/lib/libdevstat Makefile devstat.c devstat.h src/libexec/rpc.rstatd rstat_proc.c src/sys/cam cam_periph.c src/sys/kern subr_devstat.c src/sys/sys devicestat.h param.h src/usr.bin/systat iostat.c vmstat.c src/usr.bin/vmstat vmstat.c ... Message-ID: <200303152159.h2FLx6K1008286@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
phk 2003/03/15 13:59:06 PST
FreeBSD src repository
Modified files:
lib/libdevstat Makefile devstat.c devstat.h
libexec/rpc.rstatd rstat_proc.c
sys/cam cam_periph.c
sys/kern subr_devstat.c
sys/sys devicestat.h param.h
usr.bin/systat iostat.c vmstat.c
usr.bin/vmstat vmstat.c
usr.sbin/iostat iostat.c
Log:
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
Revision Changes Path
1.10 +2 -1 src/lib/libdevstat/Makefile
1.17 +32 -94 src/lib/libdevstat/devstat.c
1.7 +14 -28 src/lib/libdevstat/devstat.h
1.24 +5 -4 src/libexec/rpc.rstatd/rstat_proc.c
1.47 +2 -2 src/sys/cam/cam_periph.c
1.36 +57 -40 src/sys/kern/subr_devstat.c
1.22 +30 -71 src/sys/sys/devicestat.h
1.149 +1 -1 src/sys/sys/param.h
1.20 +1 -3 src/usr.bin/systat/iostat.c
1.56 +14 -12 src/usr.bin/systat/vmstat.c
1.64 +2 -2 src/usr.bin/vmstat/vmstat.c
1.28 +5 -7 src/usr.sbin/iostat/iostat.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303152159.h2FLx6K1008286>
