Skip site navigation (1)Skip section navigation (2)
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-src" 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>