mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: george anzinger <george@mvista.com>
Cc: Tim Schmielau <tim@physik3.uni-rostock.de>,
	Andrew Morton <akpm@osdl.org>,
	OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	albert@users.sourceforge.net, lkml <linux-kernel@vger.kernel.org>,
	voland@dmz.com.pl, nicolas.george@ens.fr,
	kaukasoi@elektroni.ee.tut.fi, david+powerix@blue-labs.org
Subject: Re: [PATCH] Re: boot time, process start time, and NOW time
Date: Tue, 17 Aug 2004 15:37:24 -0700	[thread overview]
Message-ID: <1092782243.2429.254.camel@cog.beaverton.ibm.com> (raw)
In-Reply-To: <412285A5.9080003@mvista.com>

On Tue, 2004-08-17 at 15:24, George Anzinger wrote:
> Tim Schmielau wrote:
> > On Mon, 16 Aug 2004, Andrew Morton wrote:
> > 
> > 
> >>OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> wrote:
> >>
> >>>Albert Cahalan <albert@users.sf.net> writes:
> >>>
> >>>
> >>>>Even with the 2.6.7 kernel, I'm still getting reports of process
> >>>>start times wandering. Here is an example:
> >>>>
> >>>>   "About 12 hours since reboot to 2.6.7 there was already a
> >>>>   difference of about 7 seconds between the real start time
> >>>>   and the start time reported by ps. Now, 24 hours since reboot
> >>>>   the difference is 10 seconds."
> >>>>
> >>>>The calculation used is:
> >>>>
> >>>>   now - uptime + time_from_boot_to_process_start
> >>>
> >>>Start-time and uptime is using different source. Looks like the
> >>>jiffies was added bogus lost counts.
> >>>
> >>>quick hack. Does this change the behavior?
> >>
> >>Where did this all end up?  Complaints about wandering start times are
> >>persistent, and it'd be nice to get some fix in place...
> >>
> >>Thanks.
> >>
> > 
> > 
> > Seems my analysis of the problem wasn't perceived as such.
> > 
> > The problem is that in the above calculation 
> > 
> >   now - uptime + time_from_boot_to_process_start
> > 
> > "uptime" currently is an ntp-corrected precise time, while 
> > "time_from_boot_to_process_start" just is the free-running "jiffies"
> > value.
> 
> I see you think you have the solution, but I guess I am just dense here.  May be 
> you could help me to see the error of my ways.  Here is my thinking:
> 
> "now" is from gettimeofday() and as such is ntp corrected.
> "uptime" is also corrected.  In fact it is "now" + "wall_to_monotonic".  And 
> "wall_to_monotonic" is _only_ changed by do_settime() when the clock is set.
> "time_from_boot_to_process_start" is the same as "start_time" restated in 
> seconds, i.e. it is a constant.  So, either one or more of the above assumtions 
> is wrong, or  somebody is twiddling the clock.  Otherwise I don't see how the 
> start time can move at all.

The problem is start time is derived from task->start_time which is the
jiffies value at the time the process started. Thus interval calculated
by: (start_time = p->start_time - INITIAL_JIFFIES) or (run_time =
get_jiffies_64() - p->start_time) is not NTP adjusted. 

So both (uptime - run_time) or (boot_time + start_time) will have
problems. 

What needs to happen is task->start_time is changed to a timespec which
is set at fork time to be do_posix_clock_monotonic_gettime(). Then in
proc_pid_stat() we can calculate the appropriate user-jiffies value.


task->start_time is used at the following lines:

include/linux/sched.h: 460
kernel/fork.c: 964
fs/proc/array.h: 359
kernel/acct.c: 404
mm/oom_kill.c: 64

I'm stuck trying to fix the last two files at the moment. Please let me
know if you see any other uses.

thanks
-john



  reply	other threads:[~2004-08-17 22:38 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-22 23:57 Albert Cahalan
2004-06-28 17:56 ` OGAWA Hirofumi
2004-08-16 19:41   ` Andrew Morton
2004-08-16 21:49     ` john stultz
2004-08-16 23:08     ` Tim Schmielau
2004-08-16 23:56       ` Tim Schmielau
2004-08-17  0:21       ` john stultz
2004-08-17  0:37         ` George Anzinger
2004-08-17  0:49           ` john stultz
2004-08-17  0:31       ` George Anzinger
2004-08-16 22:32         ` Albert Cahalan
2004-08-17  1:26           ` George Anzinger
2004-08-16 23:08             ` Albert Cahalan
2004-08-17  1:54               ` James Courtier-Dutton
2004-08-17  2:03                 ` Lee Revell
2004-08-17 20:52                 ` George Anzinger
2004-08-17  6:56         ` Tim Schmielau
2004-08-17 20:07           ` john stultz
2004-08-17 20:13             ` [RFC] New timeofday implementation proposal john stultz
2004-08-17 20:58               ` [RFC] New timeofday code john stultz
2004-09-01 23:16               ` [RFC] New timeofday implementation proposal Christoph Lameter
2004-08-16 23:24     ` boot time, process start time, and NOW time Albert Cahalan
2004-08-17 19:00       ` john stultz
2004-08-17 17:41         ` Albert Cahalan
2004-08-17 20:58           ` john stultz
2004-08-17 20:25     ` [PATCH] " Tim Schmielau
2004-08-17 22:24       ` George Anzinger
2004-08-17 22:37         ` john stultz [this message]
2004-08-17 23:07           ` Tim Schmielau
2004-08-18  0:11             ` john stultz
2004-08-17 22:19               ` Albert Cahalan
2004-08-18  1:09                 ` john stultz
2004-08-17 22:45                   ` Albert Cahalan
2004-08-18  7:42                   ` Tim Schmielau
2004-08-19 19:15                     ` Petri Kaukasoina
2004-08-26 11:04                       ` Andrew Morton
2004-08-26 12:07                         ` Tim Schmielau
2004-08-30 23:00                           ` Tim Schmielau
2004-08-30 23:38                             ` john stultz
2004-08-31  0:37                               ` Albert Cahalan
2004-08-31  0:49                                 ` Tim Schmielau
2004-08-31  0:45                               ` Tim Schmielau
2004-08-31  1:23                                 ` john stultz
2004-08-31  1:34                             ` john stultz
2004-08-31  6:07                               ` Tim Schmielau
2004-08-31 19:27                                 ` George Anzinger
2004-08-31 20:56                                   ` john stultz
2004-08-31 21:10                                     ` David Ford
2004-09-02 20:39                                     ` George Anzinger
2004-09-01 19:14                                 ` OGAWA Hirofumi
2004-09-02 20:58                                   ` George Anzinger
2004-09-02 21:38                                     ` OGAWA Hirofumi
2004-09-03  0:59                                       ` George Anzinger
2004-09-03  3:35                                         ` OGAWA Hirofumi
2004-09-03  7:31                                           ` George Anzinger
2004-09-03  7:51                                             ` Tim Schmielau
2004-09-03  7:15                                       ` Tim Schmielau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1092782243.2429.254.camel@cog.beaverton.ibm.com \
    --to=johnstul@us.ibm.com \
    --cc=akpm@osdl.org \
    --cc=albert@users.sourceforge.net \
    --cc=david+powerix@blue-labs.org \
    --cc=george@mvista.com \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=kaukasoi@elektroni.ee.tut.fi \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.george@ens.fr \
    --cc=tim@physik3.uni-rostock.de \
    --cc=voland@dmz.com.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®