fix(host): kvm detect and iommu probe (#16245)

- use lsmod check kvm modules on /dev/kvm exist
- don't check grub params "intel_iommu=on" on kvm_intel not loaded

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
This commit is contained in:
wanyaoqi
2023-03-16 22:21:10 +08:00
committed by GitHub
parent dd5b3083fd
commit 75b498f4e4
2 changed files with 28 additions and 13 deletions

View File

@@ -82,19 +82,31 @@ func isDevKVMExists() bool {
func detectKVMModuleSupport() string {
var km = KVM_MODULE_UNSUPPORT
if ModprobeKvmModule(KVM_MODULE_INTEL, false, false) {
km = KVM_MODULE_INTEL
} else if ModprobeKvmModule(KVM_MODULE_AMD, false, false) {
km = KVM_MODULE_AMD
} else if ModprobeKvmModule(KVM_MODULE, false, false) {
if isDevKVMExists() {
if isDevKVMExists() {
if IsKernelModuleLoaded(KVM_MODULE_INTEL) {
km = KVM_MODULE_INTEL
} else if IsKernelModuleLoaded(KVM_MODULE_AMD) {
km = KVM_MODULE_AMD
} else if IsKernelModuleLoaded(KVM_MODULE) {
km = KVM_MODULE
}
}
if km == KVM_MODULE_UNSUPPORT {
if isDevKVMExists() {
} else {
km = KVM_MODULE_BUILDIN
}
} else {
if ModprobeKvmModule(KVM_MODULE_INTEL, false, false) {
km = KVM_MODULE_INTEL
} else if ModprobeKvmModule(KVM_MODULE_AMD, false, false) {
km = KVM_MODULE_AMD
} else if ModprobeKvmModule(KVM_MODULE, false, false) {
if isDevKVMExists() {
km = KVM_MODULE
}
}
if km == KVM_MODULE_UNSUPPORT {
if isDevKVMExists() {
km = KVM_MODULE_BUILDIN
}
}
}
return km
}