Hello Shahar Havivi,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/19720
to review the following change.
Change subject: engine: add support for ram/vram on QXL device
......................................................................
engine: add support for ram/vram on QXL device
setting support for qxl device with proper ram/vram attributes:
1 Monitor, Single PCI checked 64MB 32MB
2 Monitors, Single PCI checked 128MB 32MB
4 Monitors, Single PCI checked 256MB 32MB
Change-Id: I0d380901daea93c3d6dbdfee48addf190e15ed5a
Bug-Url: https://bugzilla.redhat.com/787578
Signed-off-by: Shahar Havivi <[email protected]>
Signed-off-by: Omer Frenkel <[email protected]>
---
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java
M
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
3 files changed, 23 insertions(+), 15 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/19720/1
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
index 0274c65..e686785 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java
@@ -42,6 +42,7 @@
public class VmDeviceUtils {
private static VmDeviceDAO dao = DbFacade.getInstance().getVmDeviceDao();
+ private final static String RAM = "ram";
private final static String VRAM = "vram";
private final static String HEADS = "heads";
private final static String EHCI_MODEL = "ich9-ehci";
@@ -797,16 +798,12 @@
*/
private static Map<String, Object> getMemExpr(int numOfMonitors, boolean
singleQxlPci) {
int heads = singleQxlPci ? numOfMonitors : 1;
- String mem;
- if (singleQxlPci) {
- mem = String.valueOf(VmDeviceCommonUtils.LOW_VIDEO_MEM * heads);
- } else {
- mem = (numOfMonitors < 2 ?
String.valueOf(VmDeviceCommonUtils.LOW_VIDEO_MEM) :
- String.valueOf(VmDeviceCommonUtils.HIGH_VIDEO_MEM));
- }
Map<String, Object> specParams = new HashMap<String, Object>();
- specParams.put(VRAM, mem);
specParams.put(HEADS, String.valueOf(heads));
+ specParams.put(VRAM, VmDeviceCommonUtils.singlePciVRamByHeads(heads));
+ if (singleQxlPci) {
+ specParams.put(RAM,
VmDeviceCommonUtils.singlePciRamByHeads(heads));
+ }
return specParams;
}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java
index c766b9f..133ec59 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java
@@ -24,6 +24,15 @@
public final static String CDROM_IMAGE_ID =
"11111111-1111-1111-1111-111111111111";
+ public static String singlePciRamByHeads(int heads) {
+ return String.valueOf(HIGH_VIDEO_MEM * heads);
+ }
+
+ public static String singlePciVRamByHeads(int heads) {
+ // for now we return the low memory for vram
+ return String.valueOf(LOW_VIDEO_MEM);
+ }
+
public static boolean isNetwork(VmDevice device) {
return device.getType() == VmDeviceGeneralType.INTERFACE;
}
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 b357d95..5b972b7 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
@@ -66,7 +66,7 @@
// the requested display type might be different than the default
display of
// the VM in Run Once scenario, in that case we need to add proper
video device.
if (vm.getDisplayType() != vm.getDefaultDisplayType()) {
- addVideoCardByDisplayType(vm.getDisplayType(),
vm.getNumOfMonitors());
+ addVideoCardByDisplayType(vm.getDisplayType(),
vm.getNumOfMonitors(), vm.getSingleQxlPci());
}
else {
addVideoCardsDefinedForVmInDB(vm.getId());
@@ -76,12 +76,12 @@
/**
* Add video device according to the given display type
*/
- private void addVideoCardByDisplayType(DisplayType displayType, int
numOfMonitors) {
+ private void addVideoCardByDisplayType(DisplayType displayType, int
numOfMonitors, boolean singleQxlPci) {
Map<String, Object> struct = new HashMap<String, Object>();
// create a monitor as an unmanaged device
struct.put(VdsProperties.Type, VmDeviceGeneralType.VIDEO.getValue());
struct.put(VdsProperties.Device,
displayType.getVmDeviceType().getName());
- struct.put(VdsProperties.SpecParams,
getNewMonitorSpecParams(displayType, numOfMonitors));
+ struct.put(VdsProperties.SpecParams,
getNewMonitorSpecParams(displayType, numOfMonitors, singleQxlPci));
struct.put(VdsProperties.DeviceId, String.valueOf(Guid.newGuid()));
devices.add(struct);
}
@@ -689,11 +689,13 @@
}
}
- private static HashMap<String, Object> getNewMonitorSpecParams(DisplayType
displayType, int numOfMonitors) {
+ private static HashMap<String, Object> getNewMonitorSpecParams(DisplayType
displayType, int numOfMonitors, boolean singleQxlPci) {
HashMap<String, Object> specParams = new HashMap<String, Object>();
- specParams.put("vram",
String.valueOf(VmDeviceCommonUtils.HIGH_VIDEO_MEM));
- if (displayType == DisplayType.qxl) {
- specParams.put("heads", numOfMonitors);
+ specParams.put("vram",
String.valueOf(VmDeviceCommonUtils.LOW_VIDEO_MEM));
+ specParams.put("heads", numOfMonitors);
+ specParams.put("vram",
VmDeviceCommonUtils.singlePciVRamByHeads(numOfMonitors));
+ if (displayType == DisplayType.qxl && singleQxlPci) {
+ specParams.put("ram",
VmDeviceCommonUtils.singlePciRamByHeads(numOfMonitors));
}
return specParams;
}
--
To view, visit http://gerrit.ovirt.org/19720
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0d380901daea93c3d6dbdfee48addf190e15ed5a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Omer Frenkel <[email protected]>
Gerrit-Reviewer: Shahar Havivi <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches