Re: [patch] x86, tsc: fix SMI induced variation in quick_pit_calibrate()
[Posted January 18, 2012 by corbet]
From: |
| Linus Torvalds <torvalds-AT-linux-foundation.org> |
To: |
| Suresh Siddha <suresh.b.siddha-AT-intel.com> |
Subject: |
| Re: [patch] x86, tsc: fix SMI induced variation in quick_pit_calibrate() |
Date: |
| Mon, 16 Jan 2012 16:52:07 -0800 |
Message-ID: |
| <CA+55aFzGN59W5zhmc-kicQrpomAKLiwX4yBUsNcagwmM=Z8jxw@mail.gmail.com> |
Cc: |
| Ingo Molnar <mingo-AT-elte.hu>, Thomas Gleixner <tglx-AT-linutronix.de>,
"H. Peter Anvin" <hpa-AT-zytor.com>,
linux-kernel <linux-kernel-AT-vger.kernel.org>,
asit.k.mallick-AT-intel.com |
Archive‑link: | |
Article |
On Mon, Jan 16, 2012 at 4:41 PM, Suresh Siddha
<suresh.b.siddha@intel.com> wrote:
>
> also may be we should change the correction
>
> from: delta += (long)(d2 - d1)/2;
> to: delta += (long)(d2 - d1)/4;
>
> I will give this patch a try.
Hmm. I get the feeling that we should remove that line entirely.
I think it actually makes the 'delta' less precise - the "d2-d1" thing
is how much of a difference there was in the first and last PIT MSB
differences, but while that difference might give some kind of error
estimate for how close we can expect 'delta' to be from correct, I
don't think we can really *add* that error to 'delta'. We might as
well subtract it (and we do - the sign is random and depends on which
one happened to be longer).
So I think that line should go away entirely. It doesn't have any
meaning. Yes, 'delta' may not be exact, but we don't know which
direction to correct into, so..
I realize that I wrote it, and that it as such must be bug-free, but I
suspect that removing that line is even *more* bug-free.
Linus