public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: john stultz <johnstul@us.ibm.com>,
	tglx@linutronix.de, linux-kernel@vger.kernel.org
Subject: Re: Ktimer / -rt9 (+custom) monotonic_clock going backwards.
Date: Thu, 20 Oct 2005 09:34:16 +0200	[thread overview]
Message-ID: <20051020073416.GA28581@elte.hu> (raw)
In-Reply-To: <Pine.LNX.4.58.0510200249080.27683@localhost.localdomain>


* Steven Rostedt <rostedt@goodmis.org> wrote:

> > Last night I just caught a bug I accidentally introduced with the fixed
> > interval math (oh, if only optimizations didn't dirty code so!), where
> > time inconsistencies were possible when clocksources were changed. I'm
> > not sure if that's the issue being seen above, but I'll wrap things up
> > and send out a B8 release today if I can.
> 
> Hmm, I believe that the ktimers use the apic (when available) and let 
> the jiffies still be calculated via PIT/TSC.
> 
> Thomas, is the above correct?
> 
> Would that have triggered your bug?

if the bug is only possible when timesources are changed on the fly, 
then i think it shouldnt happen. We pick our sources at bootup time and 
stick with them.

in the -rt tree we also have clockevents and HRT support, so the clocks 
used should depend on whether you have the APIC enabled in the .config, 
and whether the BIOS has it enabled by default. If the BIOS has the APIC 
disabled then you can force the kernel to enable it by adding "lapic" to 
the boot-line.

without the APIC active, the equation is simple: we use the PIT for both 
jiffies and HRT. We use the TSC for gettimeofday. No interaction between 
the two.

if the APIC is active, then we have both the local APIC timer interrupt 
for and the PIT for HRT timing. The clockevents framework sees both 
hardware clocks and automatically decides which one to use, based on 
their ranking. A typical PIT reprogramming PIO sequence takes 20-30 
usecs, while a typical APIC timer reprogramming takes ~5 nanoseconds on 
my box, so the choice is rather easy ;-) The jiffies interrupt is still 
off the PIT. gettimeofday is off the TSC counter.

i could imagine the following hardware effects to cause time warps:

- the TSC is in fact the 'read counter' method of the local APIC timer 
  hardware. So there can be interactions in theory: programming the APIC 
  timer could impact the TSC and vice versa. There have been CPU 
  erratums in this area in the past.

- powersaving can impact the TSC - and can thus impact the APIC timer 
  too. Errata-land as well.

- the TSC itself could have short, temporary warps. I had a box that
  showed such effects.

besides hardware bugs, another, albeit very small possibility is that 
somewhere in the thousands of lines of shiny-new generic-time-of-day, 
ktimers, clockevents and high-res-timers code, there is a software bug, 
which is causing time warps ;-)

	Ingo

  reply	other threads:[~2005-10-20  7:34 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-19 14:59 Ktimer / -rt9 (+custom) monotonic_clock going backwards Steven Rostedt
2005-10-19 15:10 ` Thomas Gleixner
2005-10-19 18:39   ` john stultz
2005-10-20  6:55     ` Steven Rostedt
2005-10-20  7:34       ` Ingo Molnar [this message]
2005-10-20  7:46         ` Steven Rostedt
2005-10-20  8:01           ` Ingo Molnar
2005-10-20  8:56             ` Steven Rostedt
2005-10-20  8:59               ` Ingo Molnar
2005-10-20  9:04                 ` Steven Rostedt
2005-10-20  9:05                   ` Steven Rostedt
2005-10-20 10:05                   ` Steven Rostedt
2005-10-20 10:05                     ` Steven Rostedt
2005-10-20 15:55                       ` Ingo Molnar
2005-10-20 16:09                         ` Steven Rostedt
2005-10-20 16:45                       ` john stultz
2005-10-20 16:58                         ` Steven Rostedt
2005-10-20 17:05                           ` john stultz
2005-10-20 19:32                         ` Ingo Molnar
2005-10-20 20:05                           ` john stultz
2005-10-20 20:54                             ` Ingo Molnar
2005-10-21  6:03                           ` Steven Rostedt
2005-10-21  7:49                             ` Thomas Gleixner
2005-10-21  7:57                               ` Steven Rostedt
2005-10-21  8:00                               ` ktimer API Steven Rostedt
2005-10-21  8:09                                 ` Thomas Gleixner
2005-10-21 18:09                             ` Ktimer / -rt9 (+custom) monotonic_clock going backwards john stultz
2005-10-21 18:15                               ` Thomas Gleixner
2005-10-20 22:06           ` George Anzinger
2005-10-20  6:19   ` Steven Rostedt
2005-10-20 14:34   ` Steven Rostedt
2005-10-20 15:18     ` Steven Rostedt
2005-10-20 15:23       ` Steven Rostedt
2005-10-20 16:01       ` Steven Rostedt
2005-10-19 15:11 ` Ingo Molnar
2005-10-20  6:38   ` Steven Rostedt
2005-10-20  6:56     ` Ingo Molnar
2005-10-19 15:21 ` Daniel Walker
2005-10-20  6:39   ` Steven Rostedt
2005-10-20 15:02     ` Daniel Walker
2005-10-20 22:19       ` George Anzinger
2005-10-20 23:23         ` john stultz
2005-10-19 16:44 ` Frank Sorenson
2005-10-20  6:43   ` Steven Rostedt

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=20051020073416.GA28581@elte.hu \
    --to=mingo@elte.hu \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /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