blocks read/written counters

From: Marlys Kohnke (kohnke@sgi.com)
Date: Mon Nov 13 2000 - 15:31:37 EST


     As part of the new resource counters I'm adding for our job
accounting feature, I'm trying to gather blocks read and written
on a per task basis (which will get rolled into a per job statistic
outside of the kernel). I added task struct counters which get
incremented in drivers/block/ll_rw_blk.c in the drive_stat_acct() procedure,
which is where the kernel stats are gathered for blocks read/written.

     What I noticed, though, was that some system daemons would be
the current task when going through drive_stat_acct() for writes, but
usually it was kupdate. In doing some searching, I now see that kupdate
is the kernel thread responsible to flush the dirty buffers out to disk.
I need to capture this blocks read/written information for user
processes, not kupdate.

     We were able to get this block info on the Cray systems (which
have separate direct IO and buffered IO) and somewhat on the IRIX
systems (where whichever process is running when the buffers get flushed
is the process which gets charged for those buffers). Apparently, this
information is useful for capacity planning and in cache thrashing
situations. It's not used for billing purposes.

     Is there a reasonable way on Linux to get any blocks read and
written information on a per task basis? Thanks for any help.

----
Marlys Kohnke			Silicon Graphics Inc.
kohnke@sgi.com			655F Lone Oak Drive
(651)683-5324			Eagan, MN 55121
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Nov 15 2000 - 21:00:24 EST