[PATCH] Fix booting pentium+ with dodgy TSC

Previous thread: [patch] checkpatch: relax spacing and line length by Jan Engelhardt on Sunday, April 6, 2008 - 12:54 am. (33 messages)

Next thread: Re: + acpi-fix-bug-10124.patch added to -mm tree by Yinghai Lu on Sunday, April 6, 2008 - 3:26 am. (4 messages)
To: Linus Torvalds <torvalds@...>
Cc: Andi Kleen <ak@...>, H. Anvin <hpa@...>, <linux-kernel@...>, Ingo Molnar <mingo@...>, lguest <lguest@...>
Date: Sunday, April 6, 2008 - 3:23 am

Linus please apply. Almost by definition this patch can't make things worse.

We handle a broken tsc these days, so no need to panic. We clear the TSC bit
when tsc_init decides it's unreliable (eg. under lguest w/ bad host TSC),
leading to bogus panic.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff -r 5e0a39f4d07b arch/x86/kernel/cpu/bugs.c
--- a/arch/x86/kernel/cpu/bugs.c Sun Apr 06 13:40:39 2008 +1000
+++ b/arch/x86/kernel/cpu/bugs.c Sun Apr 06 17:14:12 2008 +1000
@@ -143,14 +143,6 @@ static void __init check_config(void)
#endif

/*
- * If we configured ourselves for a TSC, we'd better have one!
- */
-#ifdef CONFIG_X86_TSC
- if (!cpu_has_tsc)
- panic("Kernel compiled for Pentium+, requires TSC feature!");
-#endif
-
-/*
* If we were told we had a good local APIC, check for buggy Pentia,
* i.e. all B steppings and the C2 stepping of P54C when using their
* integrated APIC (see 11AP erratum in "Pentium Processor
--

To: Rusty Russell <rusty@...>
Cc: Linus Torvalds <torvalds@...>, Andi Kleen <ak@...>, H. Anvin <hpa@...>, <linux-kernel@...>, Ingo Molnar <mingo@...>, lguest <lguest@...>
Date: Friday, April 11, 2008 - 11:43 am

CONFIG_X86_TSC means 'cpu has _some_ tsc, rdmsr will work'. If you are
confident noone will read broken tsc, please also remove the config
option. It is meaningless after your patch.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--

To: Rusty Russell <rusty@...>
Cc: Linus Torvalds <torvalds@...>, Andi Kleen <ak@...>, H. Anvin <hpa@...>, <linux-kernel@...>, lguest <lguest@...>, Thomas Gleixner <tglx@...>
Date: Sunday, April 6, 2008 - 7:22 am

well, while i agree with the patch it could make things worse. In this
case it can cause code that has been compiled to rely on TSC to
malfunction. For if sched_clock() was using cpu_has_tsc it could return
0 all the time, breaking the scheduler without the user having a clear
idea why it broke. It isnt, and sched_clock() will work fine, but still,
your "this cant make things worse" statement is not completely correct.

In any case:

Acked-by: Ingo Molnar <mingo@elte.hu>

and i've also queued it up into the for-.25 queue of x86.git.

Ingo
--

To: Ingo Molnar <mingo@...>
Cc: Linus Torvalds <torvalds@...>, Andi Kleen <ak@...>, H. Anvin <hpa@...>, <linux-kernel@...>, lguest <lguest@...>, Thomas Gleixner <tglx@...>
Date: Sunday, April 6, 2008 - 4:29 pm

Hence the "almost". It can't break machines, but it could make the problem
harder to diagnose. Given that it will unbreak at least one machine, I'm

Thanks!
Rusty.
--

Previous thread: [patch] checkpatch: relax spacing and line length by Jan Engelhardt on Sunday, April 6, 2008 - 12:54 am. (33 messages)

Next thread: Re: + acpi-fix-bug-10124.patch added to -mm tree by Yinghai Lu on Sunday, April 6, 2008 - 3:26 am. (4 messages)