Re: 2.4.20: problem with "ps -olstart"

Eyal Lebedinsky (eyal@eyal.emu.id.au)
Sun, 30 Mar 2003 00:38:50 +1100


Andries Brouwer wrote:
>
> On Sat, Mar 29, 2003 at 01:08:58PM +1100, Eyal Lebedinsky wrote:
>
> > I see a different start time returned on different calls. An example
> > is attached below. This is a show stopper for me. Is this a known
> > problem? Does it have a solution?
> >
> > This is vanilla (my build) 2.4.20 on i386.
> >
> > $ while true ; do ps --pid "3026" -olstart,cmd --no-headers ; done
> > Thu Mar 27 22:03:11 2003 sh
> > Thu Mar 27 22:03:11 2003 sh
> > Thu Mar 27 22:03:12 2003 sh
> > Thu Mar 27 22:03:11 2003 sh
>
> Look at your ps source. There are many incarnations of ps,
> but perhaps you'll find something like
>
> seconds_since_boot = uptime(0,0);
> seconds_since_1970 = time(NULL);
> time_of_boot = seconds_since_1970 - seconds_since_boot;
> start = time_of_boot + pp->start_time/Hertz;
>
> The interplay of rounding and truncating you see here
> results in what you see. Instead of using ps you might try
> a tiny utility that reads the start time directly.

OK, I can see how ps may be doing a bad job there. It can do
better, e.g. from I can identify a process using something like:
grep btime /proc/stat
time machine booted (secs since 1970 probably)
cut -d' ' -f22 </proc/$pid/stat
process start time (jiffies since boot)
and if I really want I can convert start_time to seconds and have
a value (the sum of the two) that does not change.

how I can access the kernel 'xtime' and 'task->start_time'.

--
Eyal Lebedinsky (eyal@eyal.emu.id.au) <http://samba.org/eyal/>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/