1
0
Fork 0
alistair23-linux/fs/proc
Andrea Righi 297c5d9263 task IO accounting: provide distinct tgid/tid I/O statistics
Report per-thread I/O statistics in /proc/pid/task/tid/io and aggregate
parent I/O statistics in /proc/pid/io.  This approach follows the same
model used to account per-process and per-thread CPU times.

As a practial application, this allows for example to quickly find the top
I/O consumer when a process spawns many child threads that perform the
actual I/O work, because the aggregated I/O statistics can always be found
in /proc/pid/io.

[ Oleg Nesterov points out that we should check that the task is still
  alive before we iterate over the threads, but also says that we can do
  that fixup on top of this later.  - Linus ]

Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: Andrea Righi <righi.andrea@gmail.com>
Cc: Matt Heaton <matt@hostmonster.com>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Acked-by-with-comments: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-25 10:53:47 -07:00
..
Kconfig proc: move Kconfig to fs/proc/Kconfig 2008-07-25 10:53:45 -07:00
Makefile [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
array.c capabilities: remain source compatible with 32-bit raw legacy capability support. 2008-05-31 16:36:16 -07:00
base.c task IO accounting: provide distinct tgid/tid I/O statistics 2008-07-25 10:53:47 -07:00
generic.c proc: always do ->release 2008-07-25 10:53:44 -07:00
inode-alloc.txt
inode.c proc: remove pathetic remount code 2008-07-25 10:53:45 -07:00
internal.h proc: always do ->release 2008-07-25 10:53:44 -07:00
kcore.c elf: use ELF_CORE_EFLAGS for kcore ELF header flags 2008-07-25 10:53:42 -07:00
kmsg.c move proc_kmsg_operations to fs/proc/internal.h 2008-07-25 10:53:44 -07:00
mmu.c fs/proc/mmu.c: headers butchery 2007-10-17 08:42:48 -07:00
nommu.c proc: switch to proc_create() 2008-04-29 08:06:17 -07:00
proc_devtree.c [POWERPC] Make struct property's value a void * 2007-04-13 03:55:18 +10:00
proc_misc.c vmallocinfo: add NUMA information 2008-07-24 10:47:17 -07:00
proc_net.c netns: make get_proc_net() static 2008-07-22 14:19:19 -07:00
proc_sysctl.c sysctl: add the ->permissions callback on the ctl_table_root 2008-04-29 08:06:23 -07:00
proc_tty.c tty: Ldisc revamp 2008-07-20 17:12:34 -07:00
root.c proc: introduce proc_create_data to setup de->data 2008-04-29 08:06:20 -07:00
task_mmu.c proc: fix /proc/*/pagemap some more 2008-07-22 09:59:41 -07:00
task_nommu.c Security: split proc ptrace checking into read vs. attach 2008-07-14 15:01:47 +10:00
vmcore.c aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00