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