mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
The presence of the partition reference time enlightenment persuades newer versions of Windows to prefer the TSC as their primary time source. Hence, if rdtsc is not being emulated and is invariant then many vmexits (for alternative time sources such as the HPET or reference counter MSR) can be avoided. The implementation is not yet complete as no attempt is made to prevent emulation of rdtsc if the enlightenment is active and guest and host TSC frequencies differ. To do that requires invasive changes in the core x86 time code and hence a lot more testing. This patch avoids the issue by disabling the enlightenment if rdtsc is being emulated, causing Windows to choose another time source. This is safe, but may cause a big variation in performance of guests migrated between hosts of differing TSC frequency. Thus the enlightenment is not enabled in the default set, but may be enabled to improve guest performance where such migrations are not a concern. See section 15.4 of the Microsoft Hypervisor Top Level Functional Specification v4.0a for details. Signed-off-by: Paul Durrant <paul.durrant@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Christoph Egger <chegger@amazon.de>