-
Notifications
You must be signed in to change notification settings - Fork 1.2k
[KVM] CPU Features for System VMs #10964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
@blueorangutan package |
@bernardodemarco a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #10964 +/- ##
======================================
Coverage 3.93% 3.93%
======================================
Files 412 412
Lines 33447 33447
Branches 6020 6020
======================================
Hits 1317 1317
Misses 31975 31975
Partials 155 155
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 13638 |
@blueorangutan test |
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
@bernardodemarco , as per your description, would it not make sense to always apply |
@DaanHoogland, the backwards incompatibility lies in the fact that the
Yes, it would. I can update the PR tomorrow to reflect this. What are your thoughts? |
[SF] Trillian test result (tid-13482)
|
I do not know what would be wisdom here.
intiutively, I’d just apply the user VM settings to systemVMs as well. |
+1 |
Ok, nice. ASAP I'll change the PR to address that |
e36ea22
to
84148e6
Compare
@DaanHoogland, @weizhouapache, done! |
@blueorangutan package |
@bernardodemarco a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 13770 |
@blueorangutan test |
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
[SF] Trillian test result (tid-13522)
|
@DaanHoogland, thanks for running the integration tests! I've taken a quick look at the errors and the Management Server logs. It seems that they are related to environment issues:
Could we rerun the tests? |
Let’s first try the healtcheck PR. |
Description
Currently, when defining the CPU configuration of VMs with KVM, the Apache CloudStack Agent executes the following workflow:
cloudstack/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
Lines 2980 to 2993 in 41b4f0a
As can be noticed, the CPU features are only considered for end-user VMs; they are completely ignored for system VMs. This can lead to system VMs deployment inconsistencies and errors. For instance, when it is required to disable CPU flags for a given CPU model, because the host CPU does not support such flags, an error similar to the following will be returned by Libvirt when trying to deploy system VMs:
Error while deploying VM. org.libvirt.LibvirtException: the CPU is incompatible with host CPU: Host CPU does not provide required features: hle, rtm, avx512-bf16, taa-no
Therefore, this PR proposes to add a new property, calledsystemvm.guest.cpu.features
, to define CPU features for system VMs.(Edit) Therefore, this PR proposes to consider the CPU features defined in the
guest.cpu.features
property when provisioning system VMs.Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Screenshots (if appropriate):
How Has This Been Tested?
agent.properties
of the KVM hosts:virsh dumpxml --domain r-15-VM
virsh dumpxml --domain i-2-14-VM