aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorAlok Kataria <akataria@vmware.com>2008-10-24 20:22:01 -0400
committerH. Peter Anvin <hpa@zytor.com>2008-11-01 21:59:03 -0400
commit395628ef4ea12ff0748099f145363b5e33c69acb (patch)
treeacc192f65338af801f20a2688366ac5c66dcbc09 /Documentation
parenteca0cd028bdf0f6aaceb0d023e9c7501079a7dda (diff)
x86: Skip verification by the watchdog for TSC clocksource.
Impact: Changes timekeeping on Vmware (or with tsc=reliable). This is achieved by resetting the CLOCKSOURCE_MUST_VERIFY flag. We add a tsc=reliable commandline option to enable this. This enables legacy hardware without HPET, LAPIC, or ACPI timers to enter high-resolution timer mode. Along with that have extended this to be used in virtualization environement too. Now we also set this flag if the X86_FEATURE_TSC_RELIABLE bit is set. This is important since there is a wrap-around problem with the acpi_pm timer. The acpi_pm counter is just 24bits and this can overflow in ~4 seconds. With the NO_HZ kernels in virtualized environment, there can be situations when the guest is descheduled for longer duration, as a result we may miss the wrap of the acpi counter. When TSC is used as a clocksource and acpi_pm timer is being used as the watchdog clocksource this error in acpi_pm results in TSC being marked as unstable, and essentially results in time dropping in chunks of 4 seconds whenever this wrap is missed. Since the virtualized TSC is reliable on VMware, we should always use the TSCs clocksource on VMware, so we skip the verfication at runtime, by checking for the feature bit. Since we reset the flag for mgeode systems too, i have combined the mgeode case with the feature bit check. Signed-off-by: Jeff Hansen <jhansen@cardaccess-inc.com> Signed-off-by: Alok N Kataria <akataria@vmware.com> Signed-off-by: Dan Hecht <dhecht@vmware.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/kernel-parameters.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 1bbcaa8982b6..dc6b06f67fca 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2267,6 +2267,13 @@ and is between 256 and 4096 characters. It is defined in the file
2267 Format: 2267 Format:
2268 <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> 2268 <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
2269 2269
2270 tsc= Disable clocksource-must-verify flag for TSC.
2271 Format: <string>
2272 [x86] reliable: mark tsc clocksource as reliable, this
2273 disables clocksource verification at runtime.
2274 Used to enable high-resolution timer mode on older
2275 hardware, and in virtualized environment.
2276
2270 turbografx.map[2|3]= [HW,JOY] 2277 turbografx.map[2|3]= [HW,JOY]
2271 TurboGraFX parallel port interface 2278 TurboGraFX parallel port interface
2272 Format: 2279 Format: