Merge remote branch 'tip/x86/tsc' into fortglx/2.6.38/tip/x86/tsc

Conflicts:
Documentation/kernel-parameters.txt

+10 -6
+5 -4
Documentation/kernel-parameters.txt
··· 2467 2467 to facilitate early boot debugging. 2468 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 2471 Format: <string> 2472 2472 [x86] reliable: mark tsc clocksource as reliable, this 2473 - disables clocksource verification at runtime. 2474 - Used to enable high-resolution timer mode on older 2475 - hardware, and in virtualized environment. 2473 + disables clocksource verification at runtime, as well 2474 + as the stability checks done at bootup. Used to enable 2475 + high-resolution timer mode on older hardware, and in 2476 + virtualized environment. 2476 2477 [x86] noirqtime: Do not use TSC to do irq accounting. 2477 2478 Used to run time disable IRQ_TIME_ACCOUNTING on any 2478 2479 platforms where RDTSC is slow and this accounting
+5 -2
arch/x86/kernel/tsc.c
··· 872 872 873 873 if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) 874 874 return 0; 875 + 876 + if (tsc_clocksource_reliable) 877 + return 0; 875 878 /* 876 879 * Intel systems are normally all synchronized. 877 880 * Exceptions must mark TSC as unstable: ··· 882 879 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) { 883 880 /* assume multi socket systems are not synchronized: */ 884 881 if (num_possible_cpus() > 1) 885 - tsc_unstable = 1; 882 + return 1; 886 883 } 887 884 888 - return tsc_unstable; 885 + return 0; 889 886 } 890 887 891 888 static void __init init_tsc_clocksource(void)