Omer Frenkel has uploaded a new change for review. Change subject: core: always send numa node for vm ......................................................................
core: always send numa node for vm in case user didn't specify numa config for a vm, send default numa configuration for the vm, using the host's first numa node. this is done in clusters that support numa and for hosts that has a numa node. this is needed for up coming hot-plug memory for vms, that require at least one numa node in the guest. Change-Id: I9c7b0938bb0ab45883d637b594de61cd8695963a Signed-off-by: Omer Frenkel <ofren...@redhat.com> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java 1 file changed, 18 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/40481/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java index 18097bd..d263f17 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java @@ -32,9 +32,9 @@ import org.ovirt.engine.core.common.businessentities.network.VnicProfile; import org.ovirt.engine.core.common.businessentities.qos.StorageQos; import org.ovirt.engine.core.common.businessentities.storage.Disk; -import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; import org.ovirt.engine.core.common.businessentities.storage.DiskInterface; +import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType; import org.ovirt.engine.core.common.businessentities.storage.LunDisk; import org.ovirt.engine.core.common.businessentities.storage.PropagateErrors; import org.ovirt.engine.core.common.businessentities.storage.VolumeFormat; @@ -1185,14 +1185,26 @@ */ private void addNumaSetting(final String compatibilityVersion) { if (Boolean.TRUE.equals(Config.<Boolean> getValue(ConfigValues.CpuPinningEnabled, - compatibilityVersion))) { + compatibilityVersion))) { List<VmNumaNode> vmNumaNodes = DbFacade.getInstance().getVmNumaNodeDAO().getAllVmNumaNodeByVmId(vm.getId()); - if (vmNumaNodes.isEmpty()) { - return; - } - NumaTuneMode numaTune = vm.getNumaTuneMode(); List<VdsNumaNode> totalVdsNumaNodes = DbFacade.getInstance().getVdsNumaNodeDAO() .getAllVdsNumaNodeByVdsId(vdsId); + if (totalVdsNumaNodes.isEmpty()) { + log.warn("No NUMA nodes found for host {} for vm {} {}", vdsId, vm.getName(), vm.getId()); + return; + } + + // if user didn't set specific NUMA conf + // create a default one with the first numa node of the host + if (vmNumaNodes.isEmpty()) { + VmNumaNode vmNode = new VmNumaNode(); + vmNode.setIndex(totalVdsNumaNodes.get(0).getIndex()); + vmNode.setMemTotal(vm.getMemSizeMb()); + vmNode.setCpuIds(totalVdsNumaNodes.get(0).getCpuIds()); + vmNumaNodes.add(vmNode); + } + NumaTuneMode numaTune = vm.getNumaTuneMode(); + if (numaTune != null) { Map<String, Object> numaTuneSetting = NumaSettingFactory.buildVmNumatuneSetting(numaTune, vmNumaNodes, totalVdsNumaNodes); -- To view, visit https://gerrit.ovirt.org/40481 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9c7b0938bb0ab45883d637b594de61cd8695963a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Omer Frenkel <ofren...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches