ANDROID: sched: add a counter to track fsync
[firefly-linux-kernel-4.4.55.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         /* # of fsync syscalls */
22         u64 syscfs;
23 #endif /* CONFIG_TASK_XACCT */
24
25 #ifdef CONFIG_TASK_IO_ACCOUNTING
26         /*
27          * The number of bytes which this task has caused to be read from
28          * storage.
29          */
30         u64 read_bytes;
31
32         /*
33          * The number of bytes which this task has caused, or shall cause to be
34          * written to disk.
35          */
36         u64 write_bytes;
37
38         /*
39          * A task can cause "negative" IO too.  If this task truncates some
40          * dirty pagecache, some IO which another task has been accounted for
41          * (in its write_bytes) will not be happening.  We _could_ just
42          * subtract that from the truncating task's write_bytes, but there is
43          * information loss in doing that.
44          */
45         u64 cancelled_write_bytes;
46 #endif /* CONFIG_TASK_IO_ACCOUNTING */
47 };