Fix timing computations, increase precision.
[rsc] --rw-rw-r-- M 191333 glenda sys 9669 Sep 22 19:31 sys/src/cmd/iostats/iostats.c
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:144,150 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:144,150
stats->rpc[Twstat].name = "wstat";
for(n = 0; n < Maxrpc; n++)
- stats->rpc[n].loms = 10000000;
+ stats->rpc[n].lo = 10000000000LL;
fmtinstall('F', fcallfmt);
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:191,200 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:191,200
postnote(PNPROC, m->pid, "kill");
rpc = &stats->rpc[Tread];
- brpsec = (float)stats->totread / (((float)rpc->time/1000.0)+.000001);
+ brpsec = (float)stats->totread / (((float)rpc->time/1e9)+.000001);
rpc = &stats->rpc[Twrite];
- bwpsec = (float)stats->totwrite / (((float)rpc->time/1000.0)+.000001);
+ bwpsec = (float)stats->totwrite / (((float)rpc->time/1e9)+.000001);
ttime = 0;
for(n = 0; n < Maxrpc; n++) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:204,210 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:204,210
ttime += rpc->time;
}
- bppsec = (float)stats->nproto / ((ttime/1000.0)+.000001);
+ bppsec = (float)stats->nproto / ((ttime/1e9)+.000001);
fprint(2, "\nread %lud bytes, %g Kb/sec\n", stats->totread, brpsec/1024.0);
fprint(2, "write %lud bytes, %g Kb/sec\n", stats->totwrite, bwpsec/1024.0);
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:211,217 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:211,217
fprint(2, "protocol %lud bytes, %g Kb/sec\n", stats->nproto, bppsec/1024.0);
fprint(2, "rpc %lud count\n\n", stats->nrpc);
- fprint(2, "%-10s %5s %5s %5s %5s %5s in out\n",
+ fprint(2, "%-10s %5s %5s %5s %5s %5s T R\n",
"Message", "Count", "Low", "High", "Time", "Averg");
for(n = 0; n < Maxrpc; n++) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:218,230 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:218,230
rpc = &stats->rpc[n];
if(rpc->count == 0)
continue;
- fprint(2, "%-10s %5lud %5lud %5lud %5lud %5lud ms %8lud %8lud bytes\n",
+ fprint(2, "%-10s %5lud %5llud %5llud %5llud %5llud ms %8lud %8lud bytes\n",
rpc->name,
rpc->count,
- rpc->loms,
- rpc->hims,
- rpc->time,
- rpc->time/rpc->count,
+ rpc->lo/1000000,
+ rpc->hi/1000000,
+ rpc->time/1000000,
+ rpc->time/1000000/rpc->count,
rpc->bin,
rpc->bout);
}
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:524,535 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:524,529
exits("exit");
noted(NDFLT);
- }
-
- ulong
- msec(void)
- {
- return nsec()/1000000;
}
void
[rsc] --rw-rw-r-- M 191333 glenda sys 2617 Sep 22 19:31 sys/src/cmd/iostats/statfs.h
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statfs.h:37,45 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statfs.h:37,45
{
char *name;
ulong count;
- ulong time;
- ulong loms;
- ulong hims;
+ vlong time;
+ vlong lo;
+ vlong hi;
ulong bin;
ulong bout;
};
[rsc] --rw-rw-r-- M 191333 glenda sys 10745 Sep 22 19:31 sys/src/cmd/iostats/statsrv.c
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:32,51 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:32,51
}
void
- update(Rpc *rpc, ulong t)
+ update(Rpc *rpc, vlong t)
{
- ulong t2;
+ vlong t2;
- t2 = msec();
- t -= t2;
- if((long)t < 0)
+ t2 = nsec();
+ t = t2 - t;
+ if(t < 0)
t = 0;
rpc->time += t;
- if(t < rpc->loms)
- rpc->loms = t;
- if(t > rpc->hims)
- rpc->hims = t;
+ if(t < rpc->lo)
+ rpc->lo = t;
+ if(t > rpc->hi)
+ rpc->hi = t;
}
void
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:52,60 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:52,60
Xversion(Fsrpc *r)
{
Fcall thdr;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
if(r->work.msize > IOHDRSZ+Maxfdata)
thdr.msize = IOHDRSZ+Maxfdata;
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:78,86 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:78,86
Xauth(Fsrpc *r)
{
Fcall thdr;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
reply(&r->work, &thdr, Enoauth);
r->busy = 0;
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:120,128 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:120,128
{
Fcall thdr;
Fid *f;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
f = newfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:146,155 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:146,155
Fcall thdr;
Fid *f, *n;
File *nf;
- ulong t;
+ vlong t;
int i;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:217,226 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:217,226
{
Fcall thdr;
Fid *f;
- ulong t;
+ vlong t;
int fid;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:252,260 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:252,260
Fcall thdr;
Fid *f;
int s;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:296,304 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:296,304
Fcall thdr;
Fid *f;
File *nf;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:342,350 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:342,350
char err[ERRMAX], path[128];
Fcall thdr;
Fid *f;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:381,389 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:381,389
Fcall thdr;
Fid *f;
int s;
- ulong t;
+ vlong t;
- t = msec();
+ t = nsec();
f = getfid(r->work.fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:502,512 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:502,512
char err[ERRMAX], path[128];
Fcall *work, thdr;
Fid *f;
- ulong t;
+ vlong t;
work = &p->work;
- t = msec();
+ t = nsec();
f = getfid(work->fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:556,566 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:556,566
Fcall *work, thdr;
Fid *f;
int n, r;
- ulong t;
+ vlong t;
work = &p->work;
- t = msec();
+ t = nsec();
f = getfid(work->fid);
if(f == 0) {
/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:618,628 -
/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:618,628
Fcall *work, thdr;
Fid *f;
int n;
- ulong t;
+ vlong t;
work = &p->work;
- t = msec();
+ t = nsec();
f = getfid(work->fid);
if(f == 0) {
[sys] --rwxrwxr-x M 191333 glenda sys 98431 Sep 22 23:10 386/bin/iostats
/sys/src/cmd/iostats/iostats.c:catcher
/sys/src/cmd/iostats/iostats.c:fatal
/sys/src/cmd/iostats/iostats.c:fidreport
/sys/src/cmd/iostats/iostats.c:file
/sys/src/cmd/iostats/iostats.c:getsbuf
/sys/src/cmd/iostats/iostats.c:initroot
/sys/src/cmd/iostats/iostats.c:main
/sys/src/cmd/iostats/iostats.c:makepath
/sys/src/cmd/iostats/iostats.c:msec
/sys/src/cmd/iostats/iostats.c:newfid
/sys/src/cmd/iostats/iostats.c:reply
/sys/src/cmd/iostats/iostats.c:runprog
/sys/src/cmd/iostats/iostats.c:strcatalloc
/sys/src/cmd/iostats/statsrv.c:Xattach
/sys/src/cmd/iostats/statsrv.c:Xauth
/sys/src/cmd/iostats/statsrv.c:Xclunk
/sys/src/cmd/iostats/statsrv.c:Xcreate
/sys/src/cmd/iostats/statsrv.c:Xremove
/sys/src/cmd/iostats/statsrv.c:Xstat
/sys/src/cmd/iostats/statsrv.c:Xversion
/sys/src/cmd/iostats/statsrv.c:Xwalk
/sys/src/cmd/iostats/statsrv.c:Xwstat
/sys/src/cmd/iostats/statsrv.c:slaveopen
/sys/src/cmd/iostats/statsrv.c:slaveread
/sys/src/cmd/iostats/statsrv.c:slavewrite
/sys/src/cmd/iostats/statsrv.c:update
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/fmt/sprint.c:sprint
/sys/src/libc/port/pool.c:blocksetdsize
/sys/src/libc/port/pool.c:trim
/sys/src/libc/port/rune.c:chartorune
|