File: /Users/paulross/dev/linux/linux-3.13/include/linux/task_io_accounting.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       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: 
      11: struct 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: