cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Harshman (JIRA)" <>
Subject [jira] [Commented] (CLOUDSTACK-8978) Make use of Hyper-V clock on KVM node
Date Mon, 26 Oct 2015 20:35:27 GMT


Josh Harshman commented on CLOUDSTACK-8978:

Just a rough outline,

Looks like to solve this we can make use of LibvirtVMDef.HyperVEnlightenmentFeatureDef.
This will make it simpler to set the following Libvirt XML
   <relaxed state='on'/>  
   <vapic state='on'/>  
   <spinlocks state='on' retries='8191'/>  

After that is set, we can simply detect on windows server 2008 and set the clock to the hyperV

> Make use of Hyper-V clock on KVM node
> -------------------------------------
>                 Key: CLOUDSTACK-8978
>                 URL:
>             Project: CloudStack
>          Issue Type: Improvement
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: KVM
>    Affects Versions: 4.5.2
>         Environment: Ubuntu 14.04 LTS
>            Reporter: Josh Harshman
>            Priority: Minor
>              Labels: patch, performance, windows
> Currently, for any windows guest OS, we set RTC for the clock source.  This seems to
contribute to clock-drift issues leading to BSODs on Windows Server 2008 R2 Guests.
> I believe a possible improvement would be to set Windows guests to use the hyper-v clock.
 To do this we will need CloudStack to generate the appropriate Libvirt XML which would look
somewhat like the following:
>  <features>  
>   <hyperv>  
>    <relaxed state='on'/>  
>    <vapic state='on'/>  
>    <spinlocks state='on' retries='8191'/>  
>   </hyperv>  
>  <features/>  
>  <clock ...>  
>   <timer name='hypervclock' present='yes'/>  
>  </clock>  
> I believe the following code snippet from could be a starting
place to implement this.
>         if (vmTO.getOs().startsWith("Windows")) {
>             clock.setClockOffset(ClockDef.ClockOffset.LOCALTIME);
>             clock.setTimer("rtc", "catchup", null);
> Let me know what you all think about this change.
> Is there a better place / way to implement this?

This message was sent by Atlassian JIRA

View raw message