Commit Diff


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 <libc.h>
 #include <venti.h>
 
-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)
 {