mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge remote-tracking branch 'origin/4.14'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
commit
e5b7733498
@ -2302,14 +2302,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
|
||||
if (vmTO.getType() == VirtualMachine.Type.User) {
|
||||
cmd.setFeatures(_cpuFeatures);
|
||||
}
|
||||
// multi cores per socket, for larger core configs
|
||||
if (vcpus % 6 == 0) {
|
||||
final int sockets = vcpus / 6;
|
||||
cmd.setTopology(6, sockets);
|
||||
} else if (vcpus % 4 == 0) {
|
||||
final int sockets = vcpus / 4;
|
||||
cmd.setTopology(4, sockets);
|
||||
}
|
||||
setCpuTopology(cmd, vcpus, vmTO.getDetails());
|
||||
vm.addComp(cmd);
|
||||
}
|
||||
|
||||
@ -4230,4 +4223,26 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void setCpuTopology(CpuModeDef cmd, int vcpus, Map<String, String> details) {
|
||||
// multi cores per socket, for larger core configs
|
||||
int numCoresPerSocket = -1;
|
||||
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) {
|
||||
numCoresPerSocket = intCoresPerSocket;
|
||||
}
|
||||
}
|
||||
if (numCoresPerSocket <= 0) {
|
||||
if (vcpus % 6 == 0) {
|
||||
numCoresPerSocket = 6;
|
||||
} else if (vcpus % 4 == 0) {
|
||||
numCoresPerSocket = 4;
|
||||
}
|
||||
}
|
||||
if (numCoresPerSocket > 0) {
|
||||
cmd.setTopology(numCoresPerSocket, vcpus / numCoresPerSocket);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user