Messages in this thread | | | Date | Fri, 16 May 2008 09:19:59 +0530 | From | Balbir Singh <> | Subject | Re: taskstats and /proc/.../io asymmetry? |
| |
Mark Seger wrote: > If you look at /proc/pid/stat, you can get the total CPU consumed by a > process. If you look at /proc/pid/task/tid/stat you can get the cpu > consumed by a thread and if the tid is that of the parent you only gets > its consumption as opposed to all its children. > > I was surprised to see that the way process I/O is reported doesn't > follow this model. There are no /prod/pid/task/tid/io entries but > rather you need to look in /proc/tid/io. While I view this as a minor > inconvenience, I can certainly live with it. However, /proc/pid/io does > not show the aggregate I/O numbers for the whole process and that both > surprises and disappoints. This means if I have a process that starts a > bunch of worker threads that do the real work and I want to find the top > I/O consumers I can't simply walk the /proc/pid tree but rather have to > look at all the threads of each process and add them up. > > Or am I missing something? >
I looked through the code and your argument seems to be correct. The behaviour is inconsistent w.r.t. other statistics like utime and stime. We currently accumulate tgid information in signal_struct, we need to do something similar for io as well. If nobody gets to it by the time I finish my backlog, I'll try and get to it.
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
| |