I agree with that. Like you and Andrew said, this metric (write block) is just an estimate (quite wrong indeed) of what really occurred in the system because some writings are accounted elsewhere (pdflush or journaling file system).diff -uprN -X dontdiff linux-2.6.8-rc2/drivers/block/ll_rw_blk.c linux-2.6.8-rc2+BSDacct_IO/drivers/block/ll_rw_blk.c
--- linux-2.6.8-rc2/drivers/block/ll_rw_blk.c 2004-07-18 06:57:42.000000000 +0200
+++ linux-2.6.8-rc2+BSDacct_IO/drivers/block/ll_rw_blk.c 2004-07-27 09:17:33.149321480 +0200
@@ -1949,10 +1949,12 @@ void drive_stat_acct(struct request *rq,
if (rw == READ) {
disk_stat_add(rq->rq_disk, read_sectors, nr_sectors);
+ current->rblk += nr_sectors;
This doesn't look very useful, because most writes which
are flushed delayed would get accounted to pdflushd.
Using such inaccurate data for accounting sounds quite dangerous
to me.