From 9320c3ff194da90ac6c402e449a2bd57dc4c5bb5 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Fri, 19 Sep 2014 10:13:40 -0600 Subject: [PATCH] Xen: Defer setting default vram value to Xen drivers Allow the Xen drivers to determine default vram values. Sane default vaules depend on the device model being used, so the drivers are in the best position to determine the defaults. For the legacy xen driver, it is best to maintain the existing logic for setting default vram values to ensure there are no regressions. The libxl driver currently does not support configuring a video device. Support will be added in a subsequent patch, where the benefit of this change will be reaped. Signed-off-by: Jim Fehlig --- src/conf/domain_conf.c | 4 ++++ src/xen/xen_driver.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2810c05cbc..5dc4b6292e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9953,6 +9953,10 @@ int virDomainVideoDefaultRAM(const virDomainDef *def, int type) { + /* Defer setting default vram to the Xen drivers */ + if (def->virtType == VIR_DOMAIN_VIRT_XEN) + return 0; + switch (type) { /* Weird, QEMU defaults to 9 MB ??! */ case VIR_DOMAIN_VIDEO_TYPE_VGA: diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 11ae8f933c..4d7a1b772b 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -353,6 +353,25 @@ xenDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, return -1; } + if (dev->type == VIR_DOMAIN_DEVICE_VIDEO && dev->data.video->vram == 0) { + switch (dev->data.video->type) { + case VIR_DOMAIN_VIDEO_TYPE_VGA: + case VIR_DOMAIN_VIDEO_TYPE_CIRRUS: + case VIR_DOMAIN_VIDEO_TYPE_VMVGA: + dev->data.video->vram = 9 * 1024; + break; + + case VIR_DOMAIN_VIDEO_TYPE_XEN: + /* Original Xen PVFB hardcoded to 4 MB */ + dev->data.video->vram = 4 * 1024; + break; + + case VIR_DOMAIN_VIDEO_TYPE_QXL: + /* Use 64M as the minimal video video memory for qxl device */ + return 64 * 1024; + } + } + return 0; } -- GitLab