[lkml]   [2008]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
SubjectRe: [RFC patch 0/4] TSC calibration improvements

* Linus Torvalds <> wrote:

> "expect" is an unsigned char. There are absolutely _zero_ issues with
> overflow, underflow, random phases of the moon, madness levels or
> anything else. But yes, it does look like Ingo screwed up when adding
> that final check, since expect was already decremented at the end of
> the loop.
> Ingo? Did you actually test it?

hm, yes, that's my brown paper bag fault, sorry.

I did that addition in tip/x86/tsc and posted it to you and i did test
it immediately - and i noticed that i never saw the fast-calibration
message i expected to see. I even pasted the boot log over irc yesterday
and i still have it:

*> [ 0.000] TSC: PIT calibration deviates from PMTIMER: 738839 846296.
*> [ 0.000] TSC: Using PIT calibration value
*> [ 0.000] Detected 738.839 MHz processor.
*> does not seem to trigger anywhere

i wanted to debug that problem straight after i worked down my 800+
mails post-vacation mbox :-/ Which state i reached about 2 hours ago so
i'm now free - the fix is below.

i _think_ that the quality of calibration should now be pretty OK with
latest -git. The clever fast calibration stuff could be .28 material.

And/or we could change the 5x 50msec calibration to 3x 30msec right now,
the precision is still plenty and the 90 msec is then replaced with your
fast-calibrate method anyway on proper boxes. Hm?


From 5df45515512436a808d3476a90e83f2efb022422 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <>
Date: Sat, 6 Sep 2008 23:55:40 +0200
Subject: [PATCH] x86, tsc calibration: fix

my brown paperbag day ...

Signed-off-by: Ingo Molnar <>
arch/x86/kernel/tsc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 6dab90f..4847a92 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -319,7 +319,7 @@ static unsigned long quick_pit_calibrate(void)
* Make sure we can rely on the second TSC timestamp:
- if (!pit_expect_msb(--expect))
+ if (!pit_expect_msb(expect))
goto failed;


 \ /
  Last update: 2008-09-07 00:43    [W:0.071 / U:3.112 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site