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