From fb22c5c3c954043434bd3c466f1d8ee90df89b9a Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Mon, 19 Dec 2022 15:31:10 +0530 Subject: [PATCH 1/2] kvm: correctly set vm cpu topology (#6870) Signed-off-by: Abhishek Kumar --- .../kvm/resource/LibvirtComputingResource.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 181b0516647..7da4fc92c3a 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -2629,7 +2629,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv if (VirtualMachine.Type.User.equals(vmTO.getType())) { cmd.setFeatures(_cpuFeatures); } - setCpuTopology(cmd, vcpus, vmTO.getDetails()); + int vCpusInDef = vmTO.getVcpuMaxLimit() == null ? vcpus : vmTO.getVcpuMaxLimit(); + setCpuTopology(cmd, vCpusInDef, vmTO.getDetails()); return cmd; } @@ -4706,7 +4707,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv return false; } - private void setCpuTopology(CpuModeDef cmd, int vcpus, Map details) { + private void setCpuTopology(CpuModeDef cmd, int vCpusInDef, Map details) { if (!enableManuallySettingCpuTopologyOnKvmVm) { s_logger.debug(String.format("Skipping manually setting CPU topology on VM's XML due to it is disabled in agent.properties {\"property\": \"%s\", \"value\": %s}.", AgentProperties.ENABLE_MANUALLY_SETTING_CPU_TOPOLOGY_ON_KVM_VM.getName(), enableManuallySettingCpuTopologyOnKvmVm)); @@ -4717,19 +4718,19 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv if (details != null) { final String coresPerSocket = details.get(VmDetailConstants.CPU_CORE_PER_SOCKET); final int intCoresPerSocket = NumbersUtil.parseInt(coresPerSocket, numCoresPerSocket); - if (intCoresPerSocket > 0 && vcpus % intCoresPerSocket == 0) { + if (intCoresPerSocket > 0 && vCpusInDef % intCoresPerSocket == 0) { numCoresPerSocket = intCoresPerSocket; } } if (numCoresPerSocket <= 0) { - if (vcpus % 6 == 0) { + if (vCpusInDef % 6 == 0) { numCoresPerSocket = 6; - } else if (vcpus % 4 == 0) { + } else if (vCpusInDef % 4 == 0) { numCoresPerSocket = 4; } } if (numCoresPerSocket > 0) { - cmd.setTopology(numCoresPerSocket, vcpus / numCoresPerSocket); + cmd.setTopology(numCoresPerSocket, vCpusInDef / numCoresPerSocket); } } From 08881d69c78026a06dbede893bd2b18976bff5ed Mon Sep 17 00:00:00 2001 From: dahn Date: Tue, 20 Dec 2022 23:50:32 -0800 Subject: [PATCH 2/2] checksums for new macchinina ova template (#7001) --- test/integration/smoke/test_templates.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/smoke/test_templates.py b/test/integration/smoke/test_templates.py index b967ebdc809..00ad2201b44 100644 --- a/test/integration/smoke/test_templates.py +++ b/test/integration/smoke/test_templates.py @@ -78,7 +78,7 @@ class TestCreateTemplateWithChecksum(cloudstackTestCase): if "vmware" in self.hypervisor.lower(): self.test_template = registerTemplate.registerTemplateCmd() self.test_template = registerTemplate.registerTemplateCmd() - self.test_template.checksum = "{SHA-1}" + "3c00872599c6e1e46a358aac51080db88266cf5c" + self.test_template.checksum = "{SHA-1}" + "8b82224fd3c6429b6914f32d8339e650770c7526" self.test_template.hypervisor = self.hypervisor self.test_template.zoneid = self.zone.id self.test_template.name = 'test sha-2333' @@ -86,8 +86,8 @@ class TestCreateTemplateWithChecksum(cloudstackTestCase): self.test_template.url = "http://dl.openvm.eu/cloudstack/macchinina/x86_64/macchinina-vmware.ova" self.test_template.format = "OVA" self.test_template.ostypeid = self.getOsType("Other Linux (64-bit)") - self.md5 = "27f3c56a8c7ec7b2f3ff2199f7078006" - self.sha256 = "a7b04c1eb507f3f5de844bda352df1ea5e20335b465409493ca6ae07dfd0a158" + self.md5 = "b4e8bff3882b23175974e692533b4381" + self.sha256 = "e1dffca3c3ab545a753cb42d838a341624cf25841d1bcf3d1e45556c9fce7cf3" if "xen" in self.hypervisor.lower(): self.test_template = registerTemplate.registerTemplateCmd()