sureshanaparti commented on code in PR #8850:
URL: https://github.com/apache/cloudstack/pull/8850#discussion_r1551681099
##########
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java:
##########
@@ -5173,31 +5173,48 @@ public boolean isSecureMode(String bootMode) {
return false;
}
- private void setCpuTopology(CpuModeDef cmd, int vCpusInDef, Map<String,
String> details) {
+ protected void setCpuTopology(CpuModeDef cmd, int vCpusInDef, Map<String,
String> details) {
if (!enableManuallySettingCpuTopologyOnKvmVm) {
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));
return;
}
- // multi cores per socket, for larger core configs
- int numCoresPerSocket = -1;
+
+ int numCoresPerSocket = 1;
+ int numThreadsPerCore = 1;
+
if (details != null) {
- final String coresPerSocket =
details.get(VmDetailConstants.CPU_CORE_PER_SOCKET);
- final int intCoresPerSocket = NumbersUtil.parseInt(coresPerSocket,
numCoresPerSocket);
- if (intCoresPerSocket > 0 && vCpusInDef % intCoresPerSocket == 0) {
- numCoresPerSocket = intCoresPerSocket;
- }
+ numCoresPerSocket =
NumbersUtil.parseInt(details.get(VmDetailConstants.CPU_CORE_PER_SOCKET), 1);
+ numThreadsPerCore =
NumbersUtil.parseInt(details.get(VmDetailConstants.CPU_THREAD_PER_CORE), 1);
}
- if (numCoresPerSocket <= 0) {
+
+ if ((numCoresPerSocket * numThreadsPerCore) > vCpusInDef) {
+ LOGGER.warn(String.format("cores per socket (%d) * threads per
core (%d) exceeds total VM cores. Ignoring extra topology", numCoresPerSocket,
numThreadsPerCore));
+ numCoresPerSocket = 1;
+ numThreadsPerCore = 1;
+ }
+
+ if (vCpusInDef % (numCoresPerSocket * numThreadsPerCore)!= 0) {
Review Comment:
```suggestion
if (vCpusInDef % (numCoresPerSocket * numThreadsPerCore) != 0) {
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]