mm: maintain randomization of page free lists
[sfrench/cifs-2.6.git] / include / linux / task_io_accounting.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * task_io_accounting: a structure which is used for recording a single task's
4  * IO statistics.
5  *
6  * Don't include this header file directly - it is designed to be dragged in via
7  * sched.h.
8  *
9  * Blame Andrew Morton for all this.
10  */
11
12 struct task_io_accounting {
13 #ifdef CONFIG_TASK_XACCT
14         /* bytes read */
15         u64 rchar;
16         /*  bytes written */
17         u64 wchar;
18         /* # of read syscalls */
19         u64 syscr;
20         /* # of write syscalls */
21         u64 syscw;
22 #endif /* CONFIG_TASK_XACCT */
23
24 #ifdef CONFIG_TASK_IO_ACCOUNTING
25         /*
26          * The number of bytes which this task has caused to be read from
27          * storage.
28          */
29         u64 read_bytes;
30
31         /*
32          * The number of bytes which this task has caused, or shall cause to be
33          * written to disk.
34          */
35         u64 write_bytes;
36
37         /*
38          * A task can cause "negative" IO too.  If this task truncates some
39          * dirty pagecache, some IO which another task has been accounted for
40          * (in its write_bytes) will not be happening.  We _could_ just
41          * subtract that from the truncating task's write_bytes, but there is
42          * information loss in doing that.
43          */
44         u64 cancelled_write_bytes;
45 #endif /* CONFIG_TASK_IO_ACCOUNTING */
46 };