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 73101a9896c..026b914bc57 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -155,6 +155,7 @@ import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.agent.api.to.VolumeTO; import com.cloud.hypervisor.kvm.resource.KVMHABase.NfsStoragePool; import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ConsoleDef; +import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.CpuTuneDef; import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DevicesDef; import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef; import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.diskProtocol; @@ -2475,6 +2476,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements grd.setVcpuNum(vmTO.getCpus()); vm.addComp(grd); + CpuTuneDef ctd = new CpuTuneDef(); + ctd.setShares(vmTO.getCpus() * vmTO.getSpeed()); + vm.addComp(ctd); + FeaturesDef features = new FeaturesDef(); features.addFeatures("pae"); features.addFeatures("apic"); @@ -2550,9 +2555,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements s_logger.debug("starting " + vmName + ": " + vm.toString()); startDomain(conn, vmName, vm.toString()); - Script.runSimpleBashScript("virsh schedinfo " + vmName - + " --set cpu_shares=" + vmSpec.getCpus() - * vmSpec.getSpeed()); NicTO[] nics = vmSpec.getNics(); for (NicTO nic : nics) { diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java index 56e3efa79e9..ba6c715e455 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java @@ -752,6 +752,29 @@ public class LibvirtVMDef { } } + public static class CpuTuneDef { + private int _shares = 0; + + public void setShares(int shares) { + _shares = shares; + } + + public int getShares() { + return _shares; + } + + @Override + public String toString() { + StringBuilder cpuTuneBuilder = new StringBuilder(); + cpuTuneBuilder.append("\n"); + if (_shares > 0) { + cpuTuneBuilder.append("" + _shares + "\n"); + } + cpuTuneBuilder.append("\n"); + return cpuTuneBuilder.toString(); + } + } + public static class SerialDef { private final String _type; private final String _source;