blkparse: account PC block requests for stats

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When trying to analyze I/O data for SCSI tape drives (with the patch
to enable tracing on sg devices), i found that blkparse does not
include the requests in the stats summary at the end.

The requests i am looking at are passed from scsi_execute_async() (in
drivers/scsi/scsi_lib.c) to the block layer and are marked as
REQ_TYPE_BLOCK_PC. In blkparse, these requests are only logged, but
not included in the overall accounting. I added some calls to log the
data in the draft patch below. But then i am wondering what is the
difference between dump_trace_pc() and dump_trace_fs(). Could these
functions be merged to get the same data for fs and pc requests?

Christof Schmitt

---
 blkparse.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/blkparse.c	2007-11-01 17:28:23.000000000 +0100
+++ b/blkparse.c	2007-12-14 09:04:55.000000000 +0100
@@ -1350,9 +1350,11 @@ static void log_pc(struct per_cpu_info *
 static void dump_trace_pc(struct blk_io_trace *t, struct per_cpu_info *pci)
 {
 	int act = t->action & 0xffff;
+	int w = (t->action & BLK_TC_ACT(BLK_TC_WRITE)) != 0;
 
 	switch (act) {
 		case __BLK_TA_QUEUE:
+			account_queue(t, pci, w);
 			log_generic(pci, t, "Q");
 			break;
 		case __BLK_TA_GETRQ:
@@ -1362,12 +1364,15 @@ static void dump_trace_pc(struct blk_io_
 			log_generic(pci, t, "S");
 			break;
 		case __BLK_TA_REQUEUE:
+			account_requeue(t, pci, w);
 			log_generic(pci, t, "R");
 			break;
 		case __BLK_TA_ISSUE:
+			account_issue(t, pci, w);
 			log_pc(pci, t, "D");
 			break;
 		case __BLK_TA_COMPLETE:
+			account_c(t, pci, w, t->bytes);
 			log_pc(pci, t, "C");
 			break;
 		case __BLK_TA_INSERT:
-
To unsubscribe from this list: send the line "unsubscribe linux-btrace" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux