Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
task_io_accounting.h
Go to the documentation of this file.
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 Andrew Morton for all this.
9  */
10 
12 #ifdef CONFIG_TASK_XACCT
13  /* bytes read */
14  u64 rchar;
15  /* bytes written */
16  u64 wchar;
17  /* # of read syscalls */
18  u64 syscr;
19  /* # of write syscalls */
20  u64 syscw;
21 #endif /* CONFIG_TASK_XACCT */
22 
23 #ifdef CONFIG_TASK_IO_ACCOUNTING
24  /*
25  * The number of bytes which this task has caused to be read from
26  * storage.
27  */
28  u64 read_bytes;
29 
30  /*
31  * The number of bytes which this task has caused, or shall cause to be
32  * written to disk.
33  */
34  u64 write_bytes;
35 
36  /*
37  * A task can cause "negative" IO too. If this task truncates some
38  * dirty pagecache, some IO which another task has been accounted for
39  * (in its write_bytes) will not be happening. We _could_ just
40  * subtract that from the truncating task's write_bytes, but there is
41  * information loss in doing that.
42  */
43  u64 cancelled_write_bytes;
44 #endif /* CONFIG_TASK_IO_ACCOUNTING */
45 };