Bug 840939 - Incorrect/incomplete information in "Using the Real-Time Clock with Windows Vista, Windows Server 2008 and Windows 7 guests"
Incorrect/incomplete information in "Using the Real-Time Clock with Windows V...
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: doc-Virtualization_Host_Configuration_and_Guest_Installation_Gui (Show other bugs)
6.3
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Tahlia Richardson
ecs-bugs
: Documentation
Depends On:
Blocks: 907269 907270
  Show dependency treegraph
 
Reported: 2012-07-17 12:40 EDT by Marcelo Tosatti
Modified: 2015-09-27 22:22 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 907269 907270 (view as bug list)
Environment:
Last Closed: 2013-02-25 00:24:08 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Marcelo Tosatti 2012-07-17 12:40:56 EDT
Description of problem:

Guest timekeeping section recommends use of bcdedit to enable useplatformclock:

"The boot.ini file is no longer used from Windows Vista and newer. Windows Vista, Windows Server 2008 and Windows 7 use the Boot Configuration Data Editor (bcdedit.exe) to modify the Windows boot parameters.

...

C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK on
The operation completed successfully"

However, this information is incomplete and potentially incorrect (see (1) below), because  newer Windows versions check the HV bit in CPUID and avoid TSC in that case.

Vadim mentioned that W2K8R2/Win7/Win8 certainly do it, but was unsure about W2K8. Have to check with him.

So for Windows 2008(after confirmed with Vadim), 2008R2 and Windows 7, it should be something like:

"These versions of Windows do use TSC as a timesource if the hypervisor-present flag (bit 31 of ECX of CPUID leaf 0x1). RHEL6 KVM hypervisor enables this CPUID bit by default,
therefore bcdedit is not necessary".

(this is terrible english, please rewrite).

(1) http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/e5cbfcc9-4dea-4076-9905-37b14a981bce/ contains a report containing

"According to the virtual machine vendor (It is RedHat KVM), the recommended workaround is to set the USEPLATFORMCLOCK BCD option to avoid using the TSC timer, and then use W32Time or another NTP client to automatically adjust the clock speed.
Unfortunately, when I try this on 2008 (NT 6.0.6002), I get the following error message:

<code>C:\Windows\system32>bcdedit /set {default} useplatformclock true
The element data type specified is not recognized, or does not apply to the
specified entry.
Run "bcdedit /?" for command line assistance.</code>

So what is the proper way to make Server 2008 (not R2) not use the TSC counter as a time source?"
Comment 2 Marcelo Tosatti 2012-07-17 12:48:09 EDT
(In reply to comment #0)

> (1)
> http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/
> e5cbfcc9-4dea-4076-9905-37b14a981bce/ contains a report containing

Another one:

http://forum.proxmox.com/archive/index.php/t-5112.html
Comment 4 Marcelo Tosatti 2012-07-17 16:15:30 EDT
(In reply to comment #0)
> Description of problem:
> 
> Guest timekeeping section recommends use of bcdedit to enable
> useplatformclock:
> 
> "The boot.ini file is no longer used from Windows Vista and newer. Windows
> Vista, Windows Server 2008 and Windows 7 use the Boot Configuration Data
> Editor (bcdedit.exe) to modify the Windows boot parameters.
> 
> ...
> 
> C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK on
> The operation completed successfully"
> 
> However, this information is incomplete and potentially incorrect (see (1)
> below), because  newer Windows versions check the HV bit in CPUID and avoid
> TSC in that case.
> 
> Vadim mentioned that W2K8R2/Win7/Win8 certainly do it, but was unsure about
> W2K8. Have to check with him.
> 
> So for Windows 2008(after confirmed with Vadim), 2008R2 and Windows 7, it
> should be something like:
> 
> "These versions of Windows do use TSC as a timesource if the

Correction: These versions of Windows DO NOT use TSC as a timesource...

> hypervisor-present flag (bit 31 of ECX of CPUID leaf 0x1). RHEL6 KVM
> hypervisor enables this CPUID bit by default,
> therefore bcdedit is not necessary".

> (this is terrible english, please rewrite).

Not only the english, the structuring of the sentence is terrible.
Comment 5 Marcelo Tosatti 2012-08-20 15:15:28 EDT
The corrections to the present documentation would be:

1) Remove any mention to "Windows Vista" (it is not officially supported).
2) Remove "Windows 2008" from the recommendation to use BCDedit, and instead
mention:

"Windows 2008 does not use the TSC as a timesource if the hypervisor-present flag (bit 31 of ECX of CPUID leaf 0x1) is set. RHEL6 KVM hypervisor enables this CPUID bit by default".

Note You need to log in before you can comment on or make changes to this bug.