Re: Regression in 2.6.27 caused by commit bfc0f59

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Tuesday, September 2, 2008 - 3:21 pm

On Tue, 2 Sep 2008, Thomas Gleixner wrote:

Ok, so I actually think I know how to resolve the problem once and for 
all.

The solution is actually fairly simple: we use the HPET algorithm. The 
reason the HPET algorithm is so robust is that

 - we can actually read the frequency from the HPET itself

 - we also simply just read the counter values from the HPET, and so it 
   doesn't really matter how much time has passed between the two reads, 
   it only matters that _some_ time has passed, and that we pick _one_ 
   stable read that we can associate with a TSC value.

But the thing is, the exact same thing is actually true of the old PIT 
timer too - except we simply don't take advantage of it. The PIT timer has 
a very well known frequency value (PIT_TICK_RATE: 1193180 Hz), and we can 
trivially read the counter value too.

But the thing is, that for some forgotten reason, that's not actually what 
we do. Instead of reading the counter value, we wait until it counts down 
to zero, and read the output value instead. So instead of having a nice 
and dependable counter that ticks down (16 bits of precision), we actually 
use a _single_ bit of result, and depend on reading the TSC at the same 
time.

That's kind of sad. 

I'll try to whip up a test-patch to do this in a smarter way.

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

Messages in current thread:
Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Sun Aug 31, 3:54 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 4:14 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Mon Sep 1, 8:37 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Mon Sep 1, 10:44 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 10:49 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 11:31 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 11:42 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 12:08 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 12:10 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Mon Sep 1, 12:36 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 1:07 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 1:09 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Mon Sep 1, 1:23 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 1:45 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 2:30 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 3:02 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 3:16 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 3:33 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 3:56 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 4:16 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Mon Sep 1, 4:24 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 8:18 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Mon Sep 1, 8:35 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Larry Finger, (Mon Sep 1, 9:54 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Andi Kleen, (Mon Sep 1, 11:37 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 5:15 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 5:21 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Tue Sep 2, 8:09 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Bill Davidsen, (Tue Sep 2, 10:17 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 11:14 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Alok Kataria, (Tue Sep 2, 11:41 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Tue Sep 2, 11:42 am)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 2:13 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 2:16 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Tue Sep 2, 3:21 pm)
[PATCH] Fix TSC calibration issues, Thomas Gleixner, (Tue Sep 2, 3:54 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Thomas Gleixner, (Tue Sep 2, 4:10 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Linus Torvalds, (Tue Sep 2, 6:49 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Tue Sep 2, 7:14 pm)
Re: [PATCH] Fix TSC calibration issues, Larry Finger, (Tue Sep 2, 7:51 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Tue Sep 2, 9:00 pm)
Re: [PATCH] Fix TSC calibration issues, Larry Finger, (Tue Sep 2, 9:34 pm)
Re: [PATCH] Fix TSC calibration issues, Thomas Gleixner, (Wed Sep 3, 2:11 am)
Re: [PATCH] Fix TSC calibration issues, Alok Kataria, (Wed Sep 3, 6:14 pm)
[PATCH] Change warning message in TSC calibration., Alok Kataria, (Wed Sep 3, 6:18 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Wed Sep 3, 7:56 pm)
Re: [PATCH] Fix TSC calibration issues, Arjan van de Ven, (Wed Sep 3, 8:16 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Wed Sep 3, 8:59 pm)
Re: [PATCH] Fix TSC calibration issues, Arjan van de Ven, (Wed Sep 3, 9:10 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Wed Sep 3, 9:20 pm)
Re: [PATCH] Fix TSC calibration issues, Willy Tarreau, (Wed Sep 3, 9:25 pm)
Re: [PATCH] Fix TSC calibration issues, Arjan van de Ven, (Wed Sep 3, 9:27 pm)
Re: [PATCH] Fix TSC calibration issues, Linus Torvalds, (Wed Sep 3, 9:53 pm)
Re: [PATCH] Fix TSC calibration issues, Willy Tarreau, (Wed Sep 3, 10:09 pm)
Re: Regression in 2.6.27 caused by commit bfc0f59, Mark Lord, (Fri Sep 5, 6:45 am)