2006-12-10 18:19:19 +08:00
|
|
|
/*
|
2008-07-28 06:48:12 +08:00
|
|
|
* task_io_accounting: a structure which is used for recording a single task's
|
2006-12-10 18:19:19 +08:00
|
|
|
* IO statistics.
|
|
|
|
*
|
|
|
|
* Don't include this header file directly - it is designed to be dragged in via
|
|
|
|
* sched.h.
|
|
|
|
*
|
2008-10-16 13:01:59 +08:00
|
|
|
* Blame Andrew Morton for all this.
|
2006-12-10 18:19:19 +08:00
|
|
|
*/
|
|
|
|
|
2008-07-28 06:48:12 +08:00
|
|
|
struct task_io_accounting {
|
2008-07-27 23:29:15 +08:00
|
|
|
#ifdef CONFIG_TASK_XACCT
|
|
|
|
/* bytes read */
|
|
|
|
u64 rchar;
|
|
|
|
/* bytes written */
|
|
|
|
u64 wchar;
|
|
|
|
/* # of read syscalls */
|
|
|
|
u64 syscr;
|
|
|
|
/* # of write syscalls */
|
|
|
|
u64 syscw;
|
|
|
|
#endif /* CONFIG_TASK_XACCT */
|
|
|
|
|
2006-12-10 18:19:19 +08:00
|
|
|
#ifdef CONFIG_TASK_IO_ACCOUNTING
|
|
|
|
/*
|
|
|
|
* The number of bytes which this task has caused to be read from
|
|
|
|
* storage.
|
|
|
|
*/
|
|
|
|
u64 read_bytes;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* The number of bytes which this task has caused, or shall cause to be
|
|
|
|
* written to disk.
|
|
|
|
*/
|
|
|
|
u64 write_bytes;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* A task can cause "negative" IO too. If this task truncates some
|
|
|
|
* dirty pagecache, some IO which another task has been accounted for
|
|
|
|
* (in its write_bytes) will not be happening. We _could_ just
|
|
|
|
* subtract that from the truncating task's write_bytes, but there is
|
|
|
|
* information loss in doing that.
|
|
|
|
*/
|
|
|
|
u64 cancelled_write_bytes;
|
2008-07-27 23:29:15 +08:00
|
|
|
#endif /* CONFIG_TASK_IO_ACCOUNTING */
|
|
|
|
};
|