[PATCH] io-accounting: core statistics
[linux-3.10.git] / include / linux / task_io_accounting.h
1 /*
2  * task_io_accounting: a structure which is used for recording a single task's
3  * IO statistics.
4  *
5  * Don't include this header file directly - it is designed to be dragged in via
6  * sched.h.
7  *
8  * Blame akpm@osdl.org for all this.
9  */
10
11 #ifdef CONFIG_TASK_IO_ACCOUNTING
12 struct task_io_accounting {
13         /*
14          * The number of bytes which this task has caused to be read from
15          * storage.
16          */
17         u64 read_bytes;
18
19         /*
20          * The number of bytes which this task has caused, or shall cause to be
21          * written to disk.
22          */
23         u64 write_bytes;
24
25         /*
26          * A task can cause "negative" IO too.  If this task truncates some
27          * dirty pagecache, some IO which another task has been accounted for
28          * (in its write_bytes) will not be happening.  We _could_ just
29          * subtract that from the truncating task's write_bytes, but there is
30          * information loss in doing that.
31          */
32         u64 cancelled_write_bytes;
33 };
34 #else
35 struct task_io_accounting {
36 };
37 #endif