| Andrew Morton | 7c3ab73 | 2006-12-10 02:19:19 -0800 | [diff] [blame] | 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 akpm@osdl.org for all this. | 
|  | 9 | */ | 
|  | 10 |  | 
|  | 11 | #ifdef CONFIG_TASK_IO_ACCOUNTING | 
|  | 12 | struct task_io_accounting { | 
|  | 13 | /* | 
|  | 14 | * The number of bytes which this task has caused to be read from | 
|  | 15 | * storage. | 
|  | 16 | */ | 
|  | 17 | u64 read_bytes; | 
|  | 18 |  | 
|  | 19 | /* | 
|  | 20 | * The number of bytes which this task has caused, or shall cause to be | 
|  | 21 | * written to disk. | 
|  | 22 | */ | 
|  | 23 | u64 write_bytes; | 
|  | 24 |  | 
|  | 25 | /* | 
|  | 26 | * A task can cause "negative" IO too.  If this task truncates some | 
|  | 27 | * dirty pagecache, some IO which another task has been accounted for | 
|  | 28 | * (in its write_bytes) will not be happening.  We _could_ just | 
|  | 29 | * subtract that from the truncating task's write_bytes, but there is | 
|  | 30 | * information loss in doing that. | 
|  | 31 | */ | 
|  | 32 | u64 cancelled_write_bytes; | 
|  | 33 | }; | 
|  | 34 | #else | 
|  | 35 | struct task_io_accounting { | 
|  | 36 | }; | 
|  | 37 | #endif |