Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1586731

Re: [GIT pull] x86/timers for 4.10

From Mike Galbraith <efault@gmx.de>
Newsgroups linux.kernel
Subject Re: [GIT pull] x86/timers for 4.10
Date 2017-02-23 09:30 +0100
Message-ID <tdWWK-76D-9@gated-at.bofh.it> (permalink)
References <sPPWp-6rQ-1@gated-at.bofh.it> <t82Vb-4qF-5@gated-at.bofh.it> <t8yV4-8fB-21@gated-at.bofh.it> <t8Aau-Kl-15@gated-at.bofh.it> <t8Ywa-7IY-29@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, 2017-02-09 at 16:07 +0100, Thomas Gleixner wrote:
> On Wed, 8 Feb 2017, Mike Galbraith wrote:
> > On Wed, 2017-02-08 at 12:44 +0100, Thomas Gleixner wrote:
> > > On Mon, 6 Feb 2017, Olof Johansson wrote:
> > > > [    0.177102] [Firmware Bug]: TSC ADJUST differs: Reference
> > > > CPU0:
> > > > -6495898515190607 CPU1: -6495898517158354
> > > 
> > > Yay, another "clever" BIOS ....
> > 
> > Oh yeah, that reminds me...
> > 
> > I met one such box, and the adjustment code did salvage it, but I
> > had
> > to cheat a little for it to do so reliably, as it would sometimes
> > still
> > see a delta of 1 or 2 whole cycles, and hand me a useless wreck
> > instead
> > quick like bunny big box.
> 
> Can you share your cheatery ?

I can do better than that... sorta ;-)

x86/tsc: Fix unreliable tsc adjust

On a 4 socket BIOS challenged box (4x18), the magic number '3' does
not work reliably, resulting in TSC being disabled more often than not.

Replace defective magic number '3' with functional magic number '5',
derived via scientific method number sockets in afflicted box, plus
one for good luck, and reboot box a lot to validate (poke 'n' hope).

Signed-off-by: Mike Galbraith <efault@gmx.de>
---
 arch/x86/kernel/tsc_sync.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -294,7 +294,7 @@ void check_tsc_sync_source(int cpu)
 	if (!boot_cpu_has(X86_FEATURE_TSC_ADJUST))
 		atomic_set(&test_runs, 1);
 	else
-		atomic_set(&test_runs, 3);
+		atomic_set(&test_runs, 5);
 retry:
 	/*
 	 * Wait for the target to start or to skip the test:

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: [GIT pull] x86/timers for 4.10 Mike Galbraith <efault@gmx.de> - 2017-02-23 09:30 +0100
  Re: [GIT pull] x86/timers for 4.10 Peter Zijlstra <peterz@infradead.org> - 2017-02-23 10:20 +0100
  Re: [GIT pull] x86/timers for 4.10 Borislav Petkov <bp@suse.de> - 2017-02-23 11:30 +0100
    Re: [GIT pull] x86/timers for 4.10 Mike Galbraith <efault@gmx.de> - 2017-02-23 14:40 +0100

csiph-web