diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 0f8e9edb9f2..17b3fd586ab 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -2622,7 +2622,14 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv final NodeInfo hosts = conn.nodeInfo(); speed = getCpuSpeed(hosts); + /* + * Some CPUs report a single socket and multiple NUMA cells. + * We need to multiply them to get the correct socket count. + */ cpuSockets = hosts.sockets; + if (hosts.nodes > 0) { + cpuSockets = hosts.sockets * hosts.nodes; + } cpus = hosts.cpus; ram = hosts.memory * 1024L; final LibvirtCapXMLParser parser = new LibvirtCapXMLParser();