]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - include/linux/task_io_accounting.h
UBUNTU: Ubuntu-4.10.0-37.41
[mirror_ubuntu-zesty-kernel.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 Andrew Morton for all this.
9 */
10
11 struct task_io_accounting {
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 };