aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Stultz <john.stultz@linaro.org>2010-12-02 19:47:52 -0500
committerJohn Stultz <john.stultz@linaro.org>2010-12-02 19:47:52 -0500
commitb0f969009f647cd473c5e559aeec9c4229d12f87 (patch)
tree34778ededa7623d811be4ac143a098a5dc11eed5
parent3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (diff)
parentd3b8f889a220aed825accc28eb64ce283a0d51ac (diff)
Merge remote branch 'tip/x86/tsc' into fortglx/2.6.38/tip/x86/tsc
Conflicts: Documentation/kernel-parameters.txt
-rw-r--r--Documentation/kernel-parameters.txt9
-rw-r--r--arch/x86/kernel/tsc.c7
2 files changed, 10 insertions, 6 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 92e83e53148f..c7c8eca5b2b3 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2467,12 +2467,13 @@ and is between 256 and 4096 characters. It is defined in the file
2467 to facilitate early boot debugging. 2467 to facilitate early boot debugging.
2468 See also Documentation/trace/events.txt 2468 See also Documentation/trace/events.txt
2469 2469
2470 tsc= Disable clocksource-must-verify flag for TSC. 2470 tsc= Disable clocksource stability checks for TSC.
2471 Format: <string> 2471 Format: <string>
2472 [x86] reliable: mark tsc clocksource as reliable, this 2472 [x86] reliable: mark tsc clocksource as reliable, this
2473 disables clocksource verification at runtime. 2473 disables clocksource verification at runtime, as well
2474 Used to enable high-resolution timer mode on older 2474 as the stability checks done at bootup. Used to enable
2475 hardware, and in virtualized environment. 2475 high-resolution timer mode on older hardware, and in
2476 virtualized environment.
2476 [x86] noirqtime: Do not use TSC to do irq accounting. 2477 [x86] noirqtime: Do not use TSC to do irq accounting.
2477 Used to run time disable IRQ_TIME_ACCOUNTING on any 2478 Used to run time disable IRQ_TIME_ACCOUNTING on any
2478 platforms where RDTSC is slow and this accounting 2479 platforms where RDTSC is slow and this accounting
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 0c40d8b72416..bb64beb301d9 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -872,6 +872,9 @@ __cpuinit int unsynchronized_tsc(void)
872 872
873 if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) 873 if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
874 return 0; 874 return 0;
875
876 if (tsc_clocksource_reliable)
877 return 0;
875 /* 878 /*
876 * Intel systems are normally all synchronized. 879 * Intel systems are normally all synchronized.
877 * Exceptions must mark TSC as unstable: 880 * Exceptions must mark TSC as unstable:
@@ -879,10 +882,10 @@ __cpuinit int unsynchronized_tsc(void)
879 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) { 882 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) {
880 /* assume multi socket systems are not synchronized: */ 883 /* assume multi socket systems are not synchronized: */
881 if (num_possible_cpus() > 1) 884 if (num_possible_cpus() > 1)
882 tsc_unstable = 1; 885 return 1;
883 } 886 }
884 887
885 return tsc_unstable; 888 return 0;
886} 889}
887 890
888static void __init init_tsc_clocksource(void) 891static void __init init_tsc_clocksource(void)