From 01ed4bb5df82eb52782c2c553dc0876b0342ef0e Mon Sep 17 00:00:00 2001 From: karmab Date: Tue, 23 Apr 2024 11:20:13 +0200 Subject: [PATCH] kvm: use cpu baseline to evaluate nested feature --- kvirt/providers/kvm/__init__.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/kvirt/providers/kvm/__init__.py b/kvirt/providers/kvm/__init__.py index 94151c498..9e5bede59 100644 --- a/kvirt/providers/kvm/__init__.py +++ b/kvirt/providers/kvm/__init__.py @@ -185,6 +185,7 @@ def get_capabilities(self, arch=None): if arch is None: host = root.find('host') cpu = host.find('cpu') + cpuxml = self.conn.baselineCPU([ET.tostring(cpu, encoding='unicode')], 1) arch = cpu.find('arch').text results['arch'] = arch for guest in list(root.iter('guest')): @@ -198,14 +199,10 @@ def get_capabilities(self, arch=None): break for machine in list(guest.iter('machine')): results['machines'].append(machine.text) - if results['kvm']: - for feature in list(root.iter('feature')): - if feature.get('name') == 'vmx': - results['nestedfeature'] = 'vmx' - break - if feature.get('name') == 'svm': - results['nestedfeature'] = 'svm' - break + if 'vmx' in cpuxml: + results['nestedfeature'] = 'vmx' + elif 'svm' in cpuxml: + results['nestedfeature'] = 'svm' return results def create(self, name, virttype=None, profile='kvirt', flavor=None, plan='kvirt', cpumodel='host-model',