Re: [PATCH 1/1] task IO accounting: improve code readability

From: Andrea Righi
Date: Sun Jul 27 2008 - 17:53:58 EST


Oleg Nesterov wrote:
> On 07/27, Andrea Righi wrote:
>> Put all i/o statistics in struct proc_io_accounting and use inline functions to
>> initialize and increment statistics, removing a lot of single variable
>> assignments.
>
> Imho, the change like this is obviously good, but can't we simplify
> this a little bit? Just make
>
> struct task_io_accounting
> {
> #ifdef CONFIG_TASK_XACCT
> /* bytes read */
> u64 rchar;
> /* bytes written */
> u64 wchar;
> /* # of read syscalls */
> u64 syscr;
> /* # of write syscalls */
> u64 syscw;
> #endif /* CONFIG_TASK_XACCT */
>
> #ifdef CONFIG_TASK_IO_ACCOUNTING
> /*
> * The number of bytes which this task has caused to be read from
> * storage.
> */
> u64 read_bytes;
>
> /*
> * The number of bytes which this task has caused, or shall cause to be
> * written to disk.
> */
> u64 write_bytes;
>
> /*
> * A task can cause "negative" IO too. If this task truncates some
> * dirty pagecache, some IO which another task has been accounted for
> * (in its write_bytes) will not be happening. We _could_ just
> * subtract that from the truncating task's write_bytes, but there is
> * information loss in doing that.
> */
> u64 cancelled_write_bytes;
> #endif
> };
>
> This should make the patch much smaller with the same effect, no?
>
> Oleg.
>

Sounds good to me. This also makes sense because it merges *all* the i/o
statistics in "struct task_io_accounting", that is a reasonable thing
IMHO. A patch on-top-of the previous one will follow.

-Andrea
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/