Re: [PATCH] Use boot based time for process start time and boot time in /proc

Tomas Janousek
2007-05-11T23:37:26Z

Hi,

On Fri, May 11, 2007 at 12:51:32PM -0700, Andrew Morton wrote:
> On Fri, 11 May 2007 10:45:31 +0200
> Tomas Janousek <tjanouse@redhat.com> wrote:
>
> > Hello,
> >
> > On Thu, May 10, 2007 at 04:40:47PM -0700, Andrew Morton wrote:
> > > Tomas Janousek <tjanouse@redhat.com> wrote:
> > > > @@ -445,12 +445,14 @@ static int show_stat(struct seq_file *p, void *v)
> > > > unsigned long jif;
> > > > cputime64_t user, nice, system, idle, iowait, irq, softirq, steal;
> > > > u64 sum = 0;
> > > > + struct timespec boottime;
> > > >
> > > > user = nice = system = idle = iowait =
> > > > irq = softirq = steal = cputime64_zero;
> > > > - jif = - wall_to_monotonic.tv_sec;
> > > > - if (wall_to_monotonic.tv_nsec)
> > > > - --jif;
> > > > + getboottime(&boottime);
> > > > + jif = boottime.tv_sec;
> > > > + if (boottime.tv_nsec)
> > > > + ++jif;
> > > >
> > >

> > getboottime(&boottime);
> > jif = boottime.tv_sec;
> > - if (boottime.tv_nsec)
> > - ++jif;
> >

> So we've gone from --jif to ++jif to no change at all.
>
> Are you sure that this net removal of --jif is correct?

Yes.

Let's say wall_to_monotonic = { -10, 500000 } (which is { -9, -500000 }, and
the original code would result in - (- 10) - 1 == 9).

The getboottime calls set_normalized_timespec on { - (-10), - (500000) } which
results to { 10 - 1, - 500000 + 1000000 } = { 9, 500000 }.
tv_sec == 9 => correct.

--
TJ. (Brno, CZ), BaseOS, Red Hat