1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 27c3ab738SAndrew Morton /* 3940389b8SAndrea Righi * task_io_accounting: a structure which is used for recording a single task's 47c3ab738SAndrew Morton * IO statistics. 57c3ab738SAndrew Morton * 67c3ab738SAndrew Morton * Don't include this header file directly - it is designed to be dragged in via 77c3ab738SAndrew Morton * sched.h. 87c3ab738SAndrew Morton * 9e1f8e874SFrancois Cami * Blame Andrew Morton for all this. 107c3ab738SAndrew Morton */ 117c3ab738SAndrew Morton 12940389b8SAndrea Righi struct task_io_accounting { 135995477aSAndrea Righi #ifdef CONFIG_TASK_XACCT 145995477aSAndrea Righi /* bytes read */ 155995477aSAndrea Righi u64 rchar; 165995477aSAndrea Righi /* bytes written */ 175995477aSAndrea Righi u64 wchar; 185995477aSAndrea Righi /* # of read syscalls */ 195995477aSAndrea Righi u64 syscr; 205995477aSAndrea Righi /* # of write syscalls */ 215995477aSAndrea Righi u64 syscw; 225995477aSAndrea Righi #endif /* CONFIG_TASK_XACCT */ 235995477aSAndrea Righi 247c3ab738SAndrew Morton #ifdef CONFIG_TASK_IO_ACCOUNTING 257c3ab738SAndrew Morton /* 267c3ab738SAndrew Morton * The number of bytes which this task has caused to be read from 277c3ab738SAndrew Morton * storage. 287c3ab738SAndrew Morton */ 297c3ab738SAndrew Morton u64 read_bytes; 307c3ab738SAndrew Morton 317c3ab738SAndrew Morton /* 327c3ab738SAndrew Morton * The number of bytes which this task has caused, or shall cause to be 337c3ab738SAndrew Morton * written to disk. 347c3ab738SAndrew Morton */ 357c3ab738SAndrew Morton u64 write_bytes; 367c3ab738SAndrew Morton 377c3ab738SAndrew Morton /* 387c3ab738SAndrew Morton * A task can cause "negative" IO too. If this task truncates some 397c3ab738SAndrew Morton * dirty pagecache, some IO which another task has been accounted for 407c3ab738SAndrew Morton * (in its write_bytes) will not be happening. We _could_ just 417c3ab738SAndrew Morton * subtract that from the truncating task's write_bytes, but there is 427c3ab738SAndrew Morton * information loss in doing that. 437c3ab738SAndrew Morton */ 447c3ab738SAndrew Morton u64 cancelled_write_bytes; 455995477aSAndrea Righi #endif /* CONFIG_TASK_IO_ACCOUNTING */ 465995477aSAndrea Righi }; 47