mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
task IO accounting: improve code readability
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. This also reduces the kernel size as following (with CONFIG_TASK_XACCT=y and CONFIG_TASK_IO_ACCOUNTING=y). text data bss dec hex filename 11651 0 0 11651 2d83 kernel/exit.o.before 11619 0 0 11619 2d63 kernel/exit.o.after 10886 132 136 11154 2b92 kernel/fork.o.before 10758 132 136 11026 2b12 kernel/fork.o.after 3082029 807968 4818600 8708597 84e1f5 vmlinux.o.before 3081869 807968 4818600 8708437 84e155 vmlinux.o.after Signed-off-by: Andrea Righi <righi.andrea@gmail.com> Acked-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
605ccb73f6
commit
5995477ab7
7 changed files with 101 additions and 111 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* task_io_accounting: a structure which is used for recording a single task's
|
||||
* proc_io_accounting: a structure which is used for recording a single task's
|
||||
* IO statistics.
|
||||
*
|
||||
* Don't include this header file directly - it is designed to be dragged in via
|
||||
|
@ -8,6 +8,22 @@
|
|||
* Blame akpm@osdl.org for all this.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_TASK_XACCT
|
||||
struct task_chr_io_accounting {
|
||||
/* bytes read */
|
||||
u64 rchar;
|
||||
/* bytes written */
|
||||
u64 wchar;
|
||||
/* # of read syscalls */
|
||||
u64 syscr;
|
||||
/* # of write syscalls */
|
||||
u64 syscw;
|
||||
};
|
||||
#else /* CONFIG_TASK_XACCT */
|
||||
struct task_chr_io_accounting {
|
||||
};
|
||||
#endif /* CONFIG_TASK_XACCT */
|
||||
|
||||
#ifdef CONFIG_TASK_IO_ACCOUNTING
|
||||
struct task_io_accounting {
|
||||
/*
|
||||
|
@ -31,7 +47,12 @@ struct task_io_accounting {
|
|||
*/
|
||||
u64 cancelled_write_bytes;
|
||||
};
|
||||
#else
|
||||
#else /* CONFIG_TASK_IO_ACCOUNTING */
|
||||
struct task_io_accounting {
|
||||
};
|
||||
#endif
|
||||
#endif /* CONFIG_TASK_IO_ACCOUNTING */
|
||||
|
||||
struct proc_io_accounting {
|
||||
struct task_chr_io_accounting chr;
|
||||
struct task_io_accounting blk;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue