diff options
| -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 7936b801fe6a..4c6b4150266d 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -2484,12 +2484,13 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 2484 | Format: | 2484 | Format: |
| 2485 | <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> | 2485 | <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> |
| 2486 | 2486 | ||
| 2487 | tsc= Disable clocksource-must-verify flag for TSC. | 2487 | tsc= Disable clocksource stability checks for TSC. |
| 2488 | Format: <string> | 2488 | Format: <string> |
| 2489 | [x86] reliable: mark tsc clocksource as reliable, this | 2489 | [x86] reliable: mark tsc clocksource as reliable, this |
| 2490 | disables clocksource verification at runtime. | 2490 | disables clocksource verification at runtime, as well |
| 2491 | Used to enable high-resolution timer mode on older | 2491 | as the stability checks done at bootup. Used to enable |
| 2492 | hardware, and in virtualized environment. | 2492 | high-resolution timer mode on older hardware, and in |
| 2493 | virtualized environment. | ||
| 2493 | 2494 | ||
| 2494 | turbografx.map[2|3]= [HW,JOY] | 2495 | turbografx.map[2|3]= [HW,JOY] |
| 2495 | TurboGraFX parallel port interface | 2496 | TurboGraFX parallel port interface |
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 71f4368b357e..648fb269e5d1 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c | |||
| @@ -825,6 +825,9 @@ __cpuinit int unsynchronized_tsc(void) | |||
| 825 | 825 | ||
| 826 | if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) | 826 | if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) |
| 827 | return 0; | 827 | return 0; |
| 828 | |||
| 829 | if (tsc_clocksource_reliable) | ||
| 830 | return 0; | ||
| 828 | /* | 831 | /* |
| 829 | * Intel systems are normally all synchronized. | 832 | * Intel systems are normally all synchronized. |
| 830 | * Exceptions must mark TSC as unstable: | 833 | * Exceptions must mark TSC as unstable: |
| @@ -832,10 +835,10 @@ __cpuinit int unsynchronized_tsc(void) | |||
| 832 | if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) { | 835 | if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) { |
| 833 | /* assume multi socket systems are not synchronized: */ | 836 | /* assume multi socket systems are not synchronized: */ |
| 834 | if (num_possible_cpus() > 1) | 837 | if (num_possible_cpus() > 1) |
| 835 | tsc_unstable = 1; | 838 | return 1; |
| 836 | } | 839 | } |
| 837 | 840 | ||
| 838 | return tsc_unstable; | 841 | return 0; |
| 839 | } | 842 | } |
| 840 | 843 | ||
| 841 | static void __init init_tsc_clocksource(void) | 844 | static void __init init_tsc_clocksource(void) |
