-
Notifications
You must be signed in to change notification settings - Fork 2
fix(vmclass): use qemu64 CPU model for Discovery and Features types to improve AMD compatibility #1446
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
Conversation
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Workflow has started. The target step completed with status: success. |
Co-authored-by: Ivan Mikheykin <[email protected]> Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Signed-off-by: Daniil Loktev <[email protected]>
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR shifts the base CPU model from kvm64 to qemu64 for Discovery and Features VM classes to resolve nested virtualization issues on AMD hosts and adds optional handling for the AMD-specific svm feature, with accompanying documentation updates and a component version bump. Entity relationship diagram for updated CPU model and features in VMClasserDiagram
VIRTUAL_MACHINE_CLASS {
string Spec_CPU_Model
string Spec_CPU_Type
string[] Status_CpuFeatures_Enabled
}
CPU_FEATURE {
string Name
string Policy
}
VIRTUAL_MACHINE_CLASS ||--o{ CPU_FEATURE : has
VIRTUAL_MACHINE_CLASS {
string CPU_Model = "qemu64"
}
CPU_FEATURE {
string Name = "svm"
string Policy = "optional"
}
Class diagram for updated CPU model and feature handling in KVVMclassDiagram
class KVVM {
+SetCPUModel(class: VirtualMachineClass) error
}
class VirtualMachineClass {
Spec: CPU
Status: CpuFeatures
}
class CPU {
Model: string
Type: string
}
class CpuFeatures {
Enabled: []string
}
class CPUFeature {
Name: string
Policy: string
}
KVVM --> VirtualMachineClass
VirtualMachineClass --> CPU
VirtualMachineClass --> CpuFeatures
KVVM ..> CPUFeature : uses
CPUFeature <|-- "svm (optional)"
CPUFeature <|-- "invtsc (optional)"
CPUFeature <|-- "other features (require)"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Description
This PR changes the base CPU model for Discovery and Features CPU types from
kvm64
toqemu64
to improve compatibility with AMD processors and because kvm64 is not recommended by qemu docsAdditionally, the
svm
CPU feature (AMD virtualization extension) is now marked as optional for Intel CPU compatibility (svm
is required by default inqemu64
).Nested virtualization and migrations from
kvm64
toqemu64
were tested on both Intel and AMD proccessors.Why do we need it, and what problem does it solve?
We've encountered an issue where VMs with Nehalem VMClass fail to schedule in nested virtualization environments on AMD hosts. The problem occurs because:
lahf_lm
feature is required by Discovery VMClasskvm64
and AMD CPUWhat is the expected result?
Checklist
Changelog entries
Summary by Sourcery
Use qemu64 as the generic CPU model for Discovery and Features VMClasses and mark svm as an optional feature to improve AMD compatibility and nested virtualization support.
Bug Fixes:
Build:
Documentation: