## Description
Windows has support for several paravirt features that it will use when running 
on Hyper-V, Microsoft's hypervisor. These features are called enlightenments. 
Many of the features are similar to paravirt functionality that exists with 
Linux on KVM (virtio, kvmclock, PV EOI, etc.)

Nowadays QEMU/KVM can also enable support for several Hyper-V enlightenments. 
When enabled, Windows VMs running on KVM will use many of the same paravirt 
optimizations they would use when running on Hyper-V. 

A number of years ago, a PR was introduced that added a good portion of the 
code to enable this feature set, but it was never completed. This PR enables 
the existing features. The previous patch set detailed in 
https://github.com/apache/cloudstack/pull/1013 also included the tests.

By selecting Windows PV, the enlightenment additions will be applied to the 
libvirt configuration. This is support on Windows Server 2008 and beyond, so 
all currently supported versions of Windows Server.

In our testing, we've seen benchmark improvements of around 20-25% running on 
Centos 7 hosts and it is also supported on Centos/RHEL 6.5 and later. Testing 
on Ubuntu would be appreciated.

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the 
boxes that apply: -->
- [ ] Breaking change (fix or feature that would cause existing functionality 
to change)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] Enhancement (improves an existing feature and functionality)
- [ ] Cleanup (Code refactoring and cleanup, that may add test cases)

## How Has This Been Tested?

We've tested this in a lab and QA environment. I'll post some screenshots 
related to the libvirt xml changes and also provide some performance metric 
information over the next 24 hours.

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that 
apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to 
help! -->
- [x] I have read the 
[CONTRIBUTING](https://github.com/apache/cloudstack/blob/master/CONTRIBUTING.md)
 document.
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
##Testing:
- [ ] I have added tests to cover my changes. (not required as the previous PR 
included the tests)
- [ ] All relevant new and existing integration tests have passed.
- [ ] A full integration testsuite with all test that can run on my environment 
has passed.



[ Full content available at: https://github.com/apache/cloudstack/pull/2870 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to