commit 7252036fe876f522b5549f1d97c79528ca1be7ff from: rsc date: Wed Nov 02 19:08:43 2005 UTC Better logging in vtrpc, publish cache statistics. commit - f51bf048784abd642dea4f033bc95acbd4468b6a commit + 7252036fe876f522b5549f1d97c79528ca1be7ff blob - e1bb23259c244b912f555d4cb74bf0576762fc29 blob + e09ad177183789a2257fe18b3dd809542d7f1031 --- include/venti.h +++ include/venti.h @@ -369,6 +369,7 @@ void vtrespond(VtReq*); /* client */ Packet *vtrpc(VtConn*, Packet*); +Packet *_vtrpc(VtConn*, Packet*, VtFcall*); void vtrecvproc(void*); /* VtConn* */ void vtsendproc(void*); /* VtConn* */ @@ -428,6 +429,8 @@ int vtblockwrite(VtBlock*); VtBlock *vtblockcopy(VtBlock*); void vtblockduplock(VtBlock*); +extern int vtcachencopy, vtcachenread, vtcachenwrite; + /* * Hash tree file tree. */ blob - 71bdb62c84a5b3b6e5a1eb9687ca3f9f5a23b934 blob + 8dcb52f51d6dfb0a420d8a8fa7ffeecff8aaefc5 --- src/libventi/cache.c +++ src/libventi/cache.c @@ -12,7 +12,9 @@ #include #include -int nread, ncopy, nwrite; +int vtcachenread; +int vtcachencopy; +int vtcachenwrite; enum { BioLocal = 1, @@ -419,6 +421,7 @@ vtcacheglobal(VtCache *c, uchar score[VtScoreSize], in b->nlock = 1; qunlock(&c->lk); + vtcachenread++; n = vtread(c->z, score, type, b->data, c->blocksize); if(n < 0){ werrstr("vtread %V: %r", score); @@ -512,6 +515,7 @@ vtblockwrite(VtBlock *b) c = b->c; n = vtzerotruncate(b->type, b->data, c->blocksize); + vtcachenwrite++; if(c->write(c->z, score, b->type, b->data, n) < 0) return -1; @@ -540,7 +544,7 @@ vtblockcopy(VtBlock *b) { VtBlock *bb; -ncopy++; + vtcachencopy++; bb = vtcacheallocblock(b->c, b->type); if(bb == nil){ vtblockput(b); blob - bb102c9ffea43b4c09b9b6843b664881b5590fd1 blob + 3396386086e6f05b1ac1370eee4f7fc7a8da72e1 --- src/libventi/client.c +++ src/libventi/client.c @@ -9,12 +9,10 @@ vtfcallrpc(VtConn *z, VtFcall *ou, VtFcall *in) { Packet *p; - if(chattyventi) - fprint(2, "%s -> %F\n", argv0, ou); p = vtfcallpack(ou); if(p == nil) return -1; - if((p = vtrpc(z, p)) == nil) + if((p = _vtrpc(z, p, ou)) == nil) return -1; if(vtfcallunpack(in, p) < 0){ packetfree(p); blob - 0cd9410a7f0380bbec11d73780bcf553b2f6b2a6 blob + faf806293e1c1d21639f9c24f4b0cfc9a767d64c --- src/libventi/rpc.c +++ src/libventi/rpc.c @@ -29,10 +29,9 @@ struct Rwait static int gettag(VtConn*, Rwait*); static void puttag(VtConn*, Rwait*, int); static void muxrpc(VtConn*, Packet*); -Packet *vtrpc(VtConn*, Packet*); Packet* -vtrpc(VtConn *z, Packet *p) +_vtrpc(VtConn *z, Packet *p, VtFcall *tx) { int i; uchar tag, buf[2], *top; @@ -44,6 +43,12 @@ vtrpc(VtConn *z, Packet *p) qlock(&z->lk); r->r.l = &z->lk; tag = gettag(z, r); + if(tx){ + /* vtfcallrpc can't print packet because it doesn't have tag */ + tx->tag = tag; + if(chattyventi) + fprint(2, "%s -> %F\n", argv0, tx); + } /* slam tag into packet */ top = packetpeek(p, buf, 0, 2); @@ -104,6 +109,12 @@ vtrpc(VtConn *z, Packet *p) return p; } +Packet* +vtrpc(VtConn *z, Packet *p) +{ + return _vtrpc(z, p, nil); +} + static int gettag(VtConn *z, Rwait *r) {