Messages in this thread | | | Date | Tue, 20 Sep 2011 09:58:48 -0300 | From | Glauber Costa <> | Subject | Re: [PATCH 6/9] Include idle and iowait fields in cpuacct |
| |
On 09/20/2011 09:58 AM, Peter Zijlstra wrote: > On Tue, 2011-09-20 at 09:36 -0300, Glauber Costa wrote: >> On 09/20/2011 06:21 AM, Peter Zijlstra wrote: >>> On Wed, 2011-09-14 at 17:04 -0300, Glauber Costa wrote: >>>> These are slightly different from the others though: >>>> (note to reviewers: might be better to put those in a separate >>>> array?) >>>> >>>> Since idle/iowait are a property of the system - by definition, >>>> no process from any cgroup is running when the system is idle, >>>> they are system wide. So what these fields really mean, are baselines >>>> for when the cgroup was created. It allows the cgroup to start >>>> counting idle/iowait from 0. >>> >>> Alternatively you can make iowait based on nr_uninterruptible per cgroup >>> and count all ticks _this_ cgroup was idle. >> You think? >> >> Humm,humm... maybe... >> iowait can indeed be seen as a process group characteristic. I was >> mainly concerned about overhead here, specially for the idle case: > > The overhead of accounting per cgroup nr_uninterruptible is the worst I > think, that's in the sleep/wakeup paths. > >> If we are idle, there is no task context we can draw from, since the >> task in the cpu is the idle task. So we end up having to touch all >> cgroups... Or am I missing something? >> >> Sounds expensive. > > Count the total number of ticks on the cpu (I think we already have > that) and subtract the number of ticks in this cgroup (I think we also > already have that), which should yield: number of ticks not in this > cgroup, aka number of ticks this cgroup was idle. No , no... remember steal time.
| |