Re: [RFC patch 0/4] TSC calibration improvements

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Alok Kataria
Date: Friday, September 5, 2008 - 3:18 pm

On Thu, 2008-09-04 at 14:33 -0700, Ingo Molnar wrote:

Hi, 
I ran the current tree with these patches on my VM setup for both 32 &
64bit around 200 reboots each. 
The system entered the FAST calibration mode more often this time,
around 25% of time.
And i had an interesting case where in the frequency that was calibrated
was 1875Mhz compared to actual ~1866Mhz, leaving an error of 0.5%.

Now, looking at the code.
Even with this last pit_expect_msb check, i think there can be a case
when a error spanning 114usec can slip in the TSC calculation. 

This can happen if, 
in the pit_expect_msb (the one just before the second read_tsc),
we hit an SMI/virtualization event *after* doing the 50 iterations of
PIT read loop, this allows the pit_expect_msb to succeed when the SMI
returns.

If this SMI/Virtualization event spans across the next PIT MSB increment
interval leaving sufficient time (100us) for the last pit_expect_msb to
succeed.
We can have a error of 1MSB tick increment - time taken for the last
pit_expect_msb to succeed, in the read TSC value.

i.e. a error of (214us - 100us) in the 15msec period, i.e. error of
7600PPM ??

And, in order for the TSC clocksource to keep correct time (on systems
where the TSC clocksource is usable), the TSC frequency estimate must be
within 500 ppm of its true frequency, otherwise NTP will not be able to
correct it.

So, IMHO we should not use this algorithm. 

I don't know if increasing the count threshold will help too, since that
threshold value may fail for some system which perform better than our
assumption of "we take 2us to do the 2 PIT reads". Atleast in
virtualized environment I can make no such guarantees. 

Thanks,
Alok


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Thu Sep 4, 8:18 am)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 8:36 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 8:45 am)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 9:00 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 9:21 am)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 9:36 am)
Re: [RFC patch 0/4] TSC calibration improvements, Alok Kataria, (Thu Sep 4, 10:39 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 10:41 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 10:53 am)
Re: [RFC patch 0/4] TSC calibration improvements, Alan Cox, (Thu Sep 4, 11:07 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 11:26 am)
Re: [RFC patch 0/4] TSC calibration improvements, H. Peter Anvin, (Thu Sep 4, 11:30 am)
Re: [RFC patch 0/4] TSC calibration improvements, Alok Kataria, (Thu Sep 4, 11:31 am)
Re: [RFC patch 0/4] TSC calibration improvements, H. Peter Anvin, (Thu Sep 4, 11:34 am)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 1:09 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 1:43 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 1:52 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 1:53 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Valdis.Kletnieks, (Thu Sep 4, 2:00 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 2:09 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 2:21 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 2:30 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 2:33 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 2:34 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Alok Kataria, (Thu Sep 4, 2:38 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Thu Sep 4, 2:39 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Thu Sep 4, 2:52 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Alok Kataria, (Thu Sep 4, 3:09 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Alok Kataria, (Fri Sep 5, 3:18 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Fri Sep 5, 3:34 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 1:03 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 1:29 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 1:37 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 1:50 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 1:52 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 1:55 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 1:58 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 1:59 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 2:07 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 2:10 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 2:15 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 2:15 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 2:22 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 2:26 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Thomas Gleixner, (Sat Sep 6, 2:30 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Linus Torvalds, (Sat Sep 6, 2:32 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Ingo Molnar, (Sat Sep 6, 3:40 pm)
Re: [RFC patch 0/4] TSC calibration improvements, Willy Tarreau, (Sat Sep 6, 11:01 pm)