Messages in this thread | | | Subject | Re: [PATCH 8/9] per-cgroup boot time | From | Peter Zijlstra <> | Date | Tue, 20 Sep 2011 15:31:08 +0200 |
| |
On Tue, 2011-09-20 at 10:06 -0300, Glauber Costa wrote: > On 09/20/2011 10:04 AM, Peter Zijlstra wrote: > > On Tue, 2011-09-20 at 09:37 -0300, Glauber Costa wrote: > > > >>>> + getboottime(&boottime); > >>>> + ts = timespec_add(boottime, ca->start_time); > >>>> + jif = ts.tv_sec; > >>>> > >>>> for_each_possible_cpu(i) { > >>>> cpustat = per_cpu_ptr(ca->cpustat, i); > >>> > >>> > >>> I'm confused, what does it do? You take a boot time timestamp at cgroup > >>> creation, add that to all boot-time readings and print the result. How > >>> does that make sense? Subtracting the start_time, maybe, that would make > >>> the cgroup creation time 0, adding, not so much. > >> > >> Boot time represent at which times the machine was booted. In this > >> context, at which time the container/cgroup was created. So it have to > >> be an addition.... don't really understand your question > > > > I think we're all properly confused now :-) > > > > getboottime() gives a time since boot, right? > > > > You take stamp at cgroup creation: say 50s after boot. > > > > Then on usage you take a new getboottime() reading (which per definition > > is> 50s) and add your 50s that you read previous. This results in the > > cgroup having 50s of boot-time _MORE_ than the machine. Say you read at > > 123s, you then add your 50s timestamp, resulting in 173s to report. > > > > If instead you did a subtraction: 123-50=73, you would have reported the > > time since cgroup creation. > > > no. > > /** > * getboottime - Return the real time of system boot. > * @ts: pointer to the timespec to be set > * > * Returns the wall-time of boot in a timespec. > ...
Argh,. ok.
| |