linux/include/linux/task_io_accounting.h
<<
>>
Prefs
   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
  12struct 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};
  47