diff options
| author | John Stultz <john.stultz@linaro.org> | 2010-12-02 19:47:52 -0500 |
|---|---|---|
| committer | John Stultz <john.stultz@linaro.org> | 2010-12-02 19:47:52 -0500 |
| commit | b0f969009f647cd473c5e559aeec9c4229d12f87 (patch) | |
| tree | 34778ededa7623d811be4ac143a098a5dc11eed5 | |
| parent | 3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (diff) | |
| parent | d3b8f889a220aed825accc28eb64ce283a0d51ac (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.txt | 9 | ||||
| -rw-r--r-- | arch/x86/kernel/tsc.c | 7 |
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 | ||
| 888 | static void __init init_tsc_clocksource(void) | 891 | static void __init init_tsc_clocksource(void) |
