From 439d70fd2b907a4ed12ed9b67b3be78969b01a8b Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 28 Aug 2023 14:26:20 +0200 Subject: [PATCH] xen/xcpng: set vmr.VCPUsMax to minimum of global setting and host cpu cores (#7887) Co-authored-by: dahn --- .../main/java/com/cloud/hypervisor/XenServerGuru.java | 10 +--------- .../xenserver/resource/CitrixResourceBase.java | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java index a8d7a6e268e..9de6ba8ab4f 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java @@ -17,7 +17,6 @@ package com.cloud.hypervisor; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Map; @@ -96,14 +95,7 @@ public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru, if (userVmVO != null) { HostVO host = hostDao.findById(userVmVO.getHostId()); if (host != null) { - List clusterHosts = hostDao.listByClusterAndHypervisorType(host.getClusterId(), host.getHypervisorType()); - HostVO hostWithMinSocket = clusterHosts.stream().min(Comparator.comparing(HostVO::getCpuSockets)).orElse(null); - Integer vCpus = MaxNumberOfVCPUSPerVM.valueIn(host.getClusterId()); - if (hostWithMinSocket != null && hostWithMinSocket.getCpuSockets() != null && - hostWithMinSocket.getCpuSockets() < vCpus) { - vCpus = hostWithMinSocket.getCpuSockets(); - } - to.setVcpuMaxLimit(vCpus); + to.setVcpuMaxLimit(MaxNumberOfVCPUSPerVM.valueIn(host.getClusterId())); } } diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java index 7fcf8858469..79a1ef03483 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java @@ -1338,7 +1338,7 @@ public abstract class CitrixResourceBase extends ServerResourceBase implements S vmr.VCPUsMax = (long)vmSpec.getCpus(); } else { if (vmSpec.getVcpuMaxLimit() != null) { - vmr.VCPUsMax = (long)vmSpec.getVcpuMaxLimit(); + vmr.VCPUsMax = Math.min(vmSpec.getVcpuMaxLimit(), (long) _host.getCpus()); } } } else {