[libvirt] [PATCH] libxl: add support for memballoon device

Jim Fehlig posted 1 patch 24 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20180410210317.19035-1-jfehlig@suse.com
Test syntax-check passed
src/libxl/libxl_conf.c                             | 26 ++++++++++++++++++++++
src/libxl/libxl_domain.c                           | 10 +++++++++
tests/sexpr2xmldata/sexpr2xml-boot-grub.xml        |  1 +
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-curmem.xml           |  1 +
.../sexpr2xml-disk-block-shareable.xml             |  1 +
tests/sexpr2xmldata/sexpr2xml-disk-block.xml       |  1 +
.../sexpr2xml-disk-drv-blktap-qcow.xml             |  1 +
.../sexpr2xml-disk-drv-blktap-raw.xml              |  1 +
.../sexpr2xml-disk-drv-blktap2-raw.xml             |  1 +
tests/sexpr2xmldata/sexpr2xml-disk-file.xml        |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml      |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml  |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml  |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml        |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml     |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml  |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml  |  1 +
.../sexpr2xml-fv-serial-dev-2-ports.xml            |  1 +
.../sexpr2xml-fv-serial-dev-2nd-port.xml           |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml   |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml   |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml   |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml  |  1 +
.../sexpr2xml-fv-serial-tcp-telnet.xml             |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml   |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml     |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-sound.xml         |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml      |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml     |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-utc.xml           |  1 +
tests/sexpr2xmldata/sexpr2xml-fv-v2.xml            |  1 +
tests/sexpr2xmldata/sexpr2xml-fv.xml               |  1 +
tests/sexpr2xmldata/sexpr2xml-net-bridged.xml      |  1 +
tests/sexpr2xmldata/sexpr2xml-net-e1000.xml        |  1 +
tests/sexpr2xmldata/sexpr2xml-net-routed.xml       |  1 +
tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml  |  1 +
tests/sexpr2xmldata/sexpr2xml-pci-devs.xml         |  1 +
.../sexpr2xml-pv-bootloader-cmdline.xml            |  1 +
tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml    |  1 +
tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml     |  1 +
tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml         |  1 +
.../sexpr2xml-pv-vfb-new-vncdisplay.xml            |  1 +
tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml       |  1 +
.../sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml  |  1 +
tests/sexpr2xmldata/sexpr2xml-pv.xml               |  1 +
tests/sexpr2xmldata/sexpr2xml-vif-rate.xml         |  1 +
tests/xlconfigdata/test-channel-pty.xml            |  1 +
tests/xlconfigdata/test-channel-unix.xml           |  1 +
.../test-disk-positional-parms-full.xml            |  1 +
.../test-disk-positional-parms-partial.xml         |  1 +
tests/xlconfigdata/test-disk-qed.xml               |  1 +
...est-fullvirt-direct-kernel-boot-bogus-extra.xml |  1 +
.../test-fullvirt-direct-kernel-boot-extra.xml     |  1 +
.../test-fullvirt-direct-kernel-boot.xml           |  1 +
tests/xlconfigdata/test-fullvirt-hpet-timer.xml    |  1 +
tests/xlconfigdata/test-fullvirt-multi-timer.xml   |  1 +
tests/xlconfigdata/test-fullvirt-multiserial.xml   |  1 +
tests/xlconfigdata/test-fullvirt-multiusb.xml      |  1 +
.../test-fullvirt-nestedhvm-disabled.xml           |  1 +
tests/xlconfigdata/test-fullvirt-nestedhvm.xml     |  1 +
tests/xlconfigdata/test-fullvirt-nohap.xml         |  1 +
tests/xlconfigdata/test-fullvirt-ovmf.xml          |  1 +
tests/xlconfigdata/test-fullvirt-tsc-timer.xml     |  1 +
tests/xlconfigdata/test-fullvirt-vnuma.xml         |  1 +
tests/xlconfigdata/test-new-disk.xml               |  1 +
.../test-paravirt-cmdline-bogus-extra-root.xml     |  1 +
.../test-paravirt-cmdline-extra-root.xml           |  1 +
tests/xlconfigdata/test-paravirt-cmdline.xml       |  1 +
tests/xlconfigdata/test-paravirt-maxvcpus.xml      |  1 +
tests/xlconfigdata/test-rbd-multihost-noauth.xml   |  1 +
tests/xlconfigdata/test-spice-features.xml         |  1 +
tests/xlconfigdata/test-spice.xml                  |  1 +
tests/xlconfigdata/test-usb.xml                    |  1 +
tests/xlconfigdata/test-usbctrl.xml                |  1 +
tests/xlconfigdata/test-vif-multi-ip.xml           |  1 +
tests/xlconfigdata/test-vif-rate.xml               |  1 +
tests/xlconfigdata/test-vif-typename.xml           |  1 +
tests/xmconfigdata/test-disk-drv-blktap-raw.xml    |  1 +
tests/xmconfigdata/test-disk-drv-blktap2-raw.xml   |  1 +
tests/xmconfigdata/test-escape-paths.xml           |  1 +
.../xmconfigdata/test-fullvirt-default-feature.xml |  1 +
tests/xmconfigdata/test-fullvirt-force-hpet.xml    |  1 +
tests/xmconfigdata/test-fullvirt-force-nohpet.xml  |  1 +
tests/xmconfigdata/test-fullvirt-localtime.xml     |  1 +
tests/xmconfigdata/test-fullvirt-net-netfront.xml  |  1 +
tests/xmconfigdata/test-fullvirt-new-cdrom.xml     |  1 +
tests/xmconfigdata/test-fullvirt-nohap.xml         |  1 +
tests/xmconfigdata/test-fullvirt-parallel-tcp.xml  |  1 +
tests/xmconfigdata/test-fullvirt-serial-file.xml   |  1 +
tests/xmconfigdata/test-fullvirt-serial-null.xml   |  1 +
tests/xmconfigdata/test-fullvirt-serial-pipe.xml   |  1 +
tests/xmconfigdata/test-fullvirt-serial-pty.xml    |  1 +
tests/xmconfigdata/test-fullvirt-serial-stdio.xml  |  1 +
.../test-fullvirt-serial-tcp-telnet.xml            |  1 +
tests/xmconfigdata/test-fullvirt-serial-tcp.xml    |  1 +
tests/xmconfigdata/test-fullvirt-serial-udp.xml    |  1 +
tests/xmconfigdata/test-fullvirt-serial-unix.xml   |  1 +
tests/xmconfigdata/test-fullvirt-sound.xml         |  1 +
tests/xmconfigdata/test-fullvirt-usbmouse.xml      |  1 +
tests/xmconfigdata/test-fullvirt-usbtablet.xml     |  1 +
tests/xmconfigdata/test-fullvirt-utc.xml           |  1 +
tests/xmconfigdata/test-no-source-cdrom.xml        |  1 +
tests/xmconfigdata/test-paravirt-maxvcpus.xml      |  1 +
tests/xmconfigdata/test-paravirt-net-e1000.xml     |  1 +
tests/xmconfigdata/test-paravirt-net-vifname.xml   |  1 +
.../test-paravirt-new-pvfb-vncdisplay.xml          |  1 +
tests/xmconfigdata/test-paravirt-new-pvfb.xml      |  1 +
tests/xmconfigdata/test-paravirt-vcpu.xml          |  1 +
tests/xmconfigdata/test-pci-devs.xml               |  1 +
114 files changed, 148 insertions(+)

[libvirt] [PATCH] libxl: add support for memballoon device

Posted by Jim Fehlig 24 weeks ago
All Xen PV and HVM with PV driver support a memory balloon device,
which cannot be disabled through the toolstack. Model the device
in the libxl driver, similar to the recently removed xend-based
driver.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
---

Apologies for the large amount of test file churn...


 src/libxl/libxl_conf.c                             | 26 ++++++++++++++++++++++
 src/libxl/libxl_domain.c                           | 10 +++++++++
 tests/sexpr2xmldata/sexpr2xml-boot-grub.xml        |  1 +
 tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-curmem.xml           |  1 +
 .../sexpr2xml-disk-block-shareable.xml             |  1 +
 tests/sexpr2xmldata/sexpr2xml-disk-block.xml       |  1 +
 .../sexpr2xml-disk-drv-blktap-qcow.xml             |  1 +
 .../sexpr2xml-disk-drv-blktap-raw.xml              |  1 +
 .../sexpr2xml-disk-drv-blktap2-raw.xml             |  1 +
 tests/sexpr2xmldata/sexpr2xml-disk-file.xml        |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml      |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml  |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml  |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml        |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml     |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml  |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml  |  1 +
 .../sexpr2xml-fv-serial-dev-2-ports.xml            |  1 +
 .../sexpr2xml-fv-serial-dev-2nd-port.xml           |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml   |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml   |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml   |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml  |  1 +
 .../sexpr2xml-fv-serial-tcp-telnet.xml             |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml   |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml     |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-sound.xml         |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml      |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml     |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-utc.xml           |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv-v2.xml            |  1 +
 tests/sexpr2xmldata/sexpr2xml-fv.xml               |  1 +
 tests/sexpr2xmldata/sexpr2xml-net-bridged.xml      |  1 +
 tests/sexpr2xmldata/sexpr2xml-net-e1000.xml        |  1 +
 tests/sexpr2xmldata/sexpr2xml-net-routed.xml       |  1 +
 tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml  |  1 +
 tests/sexpr2xmldata/sexpr2xml-pci-devs.xml         |  1 +
 .../sexpr2xml-pv-bootloader-cmdline.xml            |  1 +
 tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml    |  1 +
 tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml     |  1 +
 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml         |  1 +
 .../sexpr2xml-pv-vfb-new-vncdisplay.xml            |  1 +
 tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml       |  1 +
 .../sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml  |  1 +
 tests/sexpr2xmldata/sexpr2xml-pv.xml               |  1 +
 tests/sexpr2xmldata/sexpr2xml-vif-rate.xml         |  1 +
 tests/xlconfigdata/test-channel-pty.xml            |  1 +
 tests/xlconfigdata/test-channel-unix.xml           |  1 +
 .../test-disk-positional-parms-full.xml            |  1 +
 .../test-disk-positional-parms-partial.xml         |  1 +
 tests/xlconfigdata/test-disk-qed.xml               |  1 +
 ...est-fullvirt-direct-kernel-boot-bogus-extra.xml |  1 +
 .../test-fullvirt-direct-kernel-boot-extra.xml     |  1 +
 .../test-fullvirt-direct-kernel-boot.xml           |  1 +
 tests/xlconfigdata/test-fullvirt-hpet-timer.xml    |  1 +
 tests/xlconfigdata/test-fullvirt-multi-timer.xml   |  1 +
 tests/xlconfigdata/test-fullvirt-multiserial.xml   |  1 +
 tests/xlconfigdata/test-fullvirt-multiusb.xml      |  1 +
 .../test-fullvirt-nestedhvm-disabled.xml           |  1 +
 tests/xlconfigdata/test-fullvirt-nestedhvm.xml     |  1 +
 tests/xlconfigdata/test-fullvirt-nohap.xml         |  1 +
 tests/xlconfigdata/test-fullvirt-ovmf.xml          |  1 +
 tests/xlconfigdata/test-fullvirt-tsc-timer.xml     |  1 +
 tests/xlconfigdata/test-fullvirt-vnuma.xml         |  1 +
 tests/xlconfigdata/test-new-disk.xml               |  1 +
 .../test-paravirt-cmdline-bogus-extra-root.xml     |  1 +
 .../test-paravirt-cmdline-extra-root.xml           |  1 +
 tests/xlconfigdata/test-paravirt-cmdline.xml       |  1 +
 tests/xlconfigdata/test-paravirt-maxvcpus.xml      |  1 +
 tests/xlconfigdata/test-rbd-multihost-noauth.xml   |  1 +
 tests/xlconfigdata/test-spice-features.xml         |  1 +
 tests/xlconfigdata/test-spice.xml                  |  1 +
 tests/xlconfigdata/test-usb.xml                    |  1 +
 tests/xlconfigdata/test-usbctrl.xml                |  1 +
 tests/xlconfigdata/test-vif-multi-ip.xml           |  1 +
 tests/xlconfigdata/test-vif-rate.xml               |  1 +
 tests/xlconfigdata/test-vif-typename.xml           |  1 +
 tests/xmconfigdata/test-disk-drv-blktap-raw.xml    |  1 +
 tests/xmconfigdata/test-disk-drv-blktap2-raw.xml   |  1 +
 tests/xmconfigdata/test-escape-paths.xml           |  1 +
 .../xmconfigdata/test-fullvirt-default-feature.xml |  1 +
 tests/xmconfigdata/test-fullvirt-force-hpet.xml    |  1 +
 tests/xmconfigdata/test-fullvirt-force-nohpet.xml  |  1 +
 tests/xmconfigdata/test-fullvirt-localtime.xml     |  1 +
 tests/xmconfigdata/test-fullvirt-net-netfront.xml  |  1 +
 tests/xmconfigdata/test-fullvirt-new-cdrom.xml     |  1 +
 tests/xmconfigdata/test-fullvirt-nohap.xml         |  1 +
 tests/xmconfigdata/test-fullvirt-parallel-tcp.xml  |  1 +
 tests/xmconfigdata/test-fullvirt-serial-file.xml   |  1 +
 tests/xmconfigdata/test-fullvirt-serial-null.xml   |  1 +
 tests/xmconfigdata/test-fullvirt-serial-pipe.xml   |  1 +
 tests/xmconfigdata/test-fullvirt-serial-pty.xml    |  1 +
 tests/xmconfigdata/test-fullvirt-serial-stdio.xml  |  1 +
 .../test-fullvirt-serial-tcp-telnet.xml            |  1 +
 tests/xmconfigdata/test-fullvirt-serial-tcp.xml    |  1 +
 tests/xmconfigdata/test-fullvirt-serial-udp.xml    |  1 +
 tests/xmconfigdata/test-fullvirt-serial-unix.xml   |  1 +
 tests/xmconfigdata/test-fullvirt-sound.xml         |  1 +
 tests/xmconfigdata/test-fullvirt-usbmouse.xml      |  1 +
 tests/xmconfigdata/test-fullvirt-usbtablet.xml     |  1 +
 tests/xmconfigdata/test-fullvirt-utc.xml           |  1 +
 tests/xmconfigdata/test-no-source-cdrom.xml        |  1 +
 tests/xmconfigdata/test-paravirt-maxvcpus.xml      |  1 +
 tests/xmconfigdata/test-paravirt-net-e1000.xml     |  1 +
 tests/xmconfigdata/test-paravirt-net-vifname.xml   |  1 +
 .../test-paravirt-new-pvfb-vncdisplay.xml          |  1 +
 tests/xmconfigdata/test-paravirt-new-pvfb.xml      |  1 +
 tests/xmconfigdata/test-paravirt-vcpu.xml          |  1 +
 tests/xmconfigdata/test-pci-devs.xml               |  1 +
 114 files changed, 148 insertions(+)

diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 0ed914e4f..ed477330d 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -626,6 +626,32 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
             return -1;
     }
 
+    /* only the 'xen' balloon device model is supported */
+    if (def->memballoon) {
+        int model = def->memballoon->model;
+
+        switch ((virDomainMemballoonModel)model) {
+        case VIR_DOMAIN_MEMBALLOON_MODEL_XEN:
+            break;
+        case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO:
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("unsupported balloon device model '%s'"),
+                           virDomainMemballoonModelTypeToString(model));
+            return -1;
+        case VIR_DOMAIN_MEMBALLOON_MODEL_NONE:
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           "%s",
+                           _("balloon device cannot be disabled"));
+            return -1;
+        case VIR_DOMAIN_MEMBALLOON_MODEL_LAST:
+        default:
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("unexpected balloon device model '%d'"),
+                           model);
+            return -1;
+        }
+    }
+
     return 0;
 }
 
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index e76740247..ef9a90267 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -413,6 +413,16 @@ libxlDomainDefPostParse(virDomainDefPtr def,
             def->features[VIR_DOMAIN_FEATURE_ACPI] = VIR_TRISTATE_SWITCH_ON;
     }
 
+    /* add implicit balloon device */
+    if (def->memballoon == NULL) {
+        virDomainMemballoonDefPtr memballoon;
+        if (VIR_ALLOC(memballoon) < 0)
+            return -1;
+
+        memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_XEN;
+        def->memballoon = memballoon;
+    }
+
     return 0;
 }
 
diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
index 4b9f535fc..5524af8e2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
@@ -24,5 +24,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml b/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
index af43a106a..c9ab2df51 100644
--- a/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
@@ -32,5 +32,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-curmem.xml b/tests/sexpr2xmldata/sexpr2xml-curmem.xml
index 28c71e5d1..a976986a1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-curmem.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-curmem.xml
@@ -38,5 +38,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml b/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
index e458b75a8..9f757efa2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
@@ -30,5 +30,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block.xml b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
index 756a21124..edca58241 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
index d3781f737..80f6dd205 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
index 5952b9d9e..71e7c40b6 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
index 86093272b..bd244bbc3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-file.xml b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
index 3af99e0f6..48fee3611 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
index 04495090d..8eaacc86d 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
@@ -53,5 +53,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
index 9179cfe5b..8ed2261fc 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
@@ -46,5 +46,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
index a9e677e84..5e176bf91 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
@@ -49,5 +49,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
index d53f4a640..826301182 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
@@ -49,5 +49,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
index a4f15b654..afb903068 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
@@ -29,5 +29,6 @@
     </console>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
index 9c162273b..2d390b52a 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
@@ -46,5 +46,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
index 44289a14a..5edf0ce26 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
@@ -47,5 +47,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
index bcd5ce802..eccab787b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
@@ -51,5 +51,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
index f5cbb9d6e..79e9e69c3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
@@ -58,5 +58,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
index 35ee75679..111db35b1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
index 7e38e7f2e..40d1c6e62 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
index b5e5af9c8..60d5d8e9e 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
@@ -52,5 +52,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
index 6e5cce454..55a4e9e0b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
index 66452b385..78ddea603 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
@@ -52,5 +52,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
index 1f5e0c965..112830ac7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
@@ -52,5 +52,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
index 12334294b..ab2450469 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
index 29feada21..b6afd9b31 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
index ad3cd3dbc..cdc05bc52 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
index b7a337100..0fa40e95d 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
index b527fc29d..def03321a 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
index b527fc29d..def03321a 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
index 1a11f92fa..ded0aa853 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
@@ -47,5 +47,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
index a92b7d5fb..48ce7cebf 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
@@ -47,5 +47,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
index 1f595014f..1ae44a1d3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
@@ -46,5 +46,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
index 1f595014f..1ae44a1d3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
@@ -46,5 +46,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv.xml b/tests/sexpr2xmldata/sexpr2xml-fv.xml
index 1f595014f..1ae44a1d3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv.xml
@@ -46,5 +46,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml b/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
index b06a41280..c97eeb0a1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
@@ -31,5 +31,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml b/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
index a184c990a..ba9a0b2f1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
@@ -32,5 +32,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-routed.xml b/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
index 758dde64b..db15b9ddb 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
@@ -31,5 +31,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
index 2a4e774b7..975318294 100644
--- a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
@@ -52,5 +52,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml b/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
index 72b7c5750..ab46fb917 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
@@ -37,5 +37,6 @@
         <address domain='0x0000' bus='0x01' slot='0x13' function='0x0'/>
       </source>
     </hostdev>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
index 519d02d57..b2b63bc54 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
index b3e97c4d7..dac1f924b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
@@ -24,5 +24,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml b/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
index 31e18edc6..124bd6f37 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
index d66509a33..876a02746 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
index f45ead655..e2dbfab36 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
@@ -31,5 +31,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
index bbabc50fd..3fd66c45e 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
@@ -31,5 +31,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
index 7dd473dd4..f2d316c6f 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
@@ -36,5 +36,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv.xml b/tests/sexpr2xmldata/sexpr2xml-pv.xml
index 3af99e0f6..48fee3611 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv.xml
@@ -25,5 +25,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml b/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
index 5466823b9..463d3598b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-channel-pty.xml b/tests/xlconfigdata/test-channel-pty.xml
index 17d0c6708..d1ffb86a1 100644
--- a/tests/xlconfigdata/test-channel-pty.xml
+++ b/tests/xlconfigdata/test-channel-pty.xml
@@ -29,5 +29,6 @@
     </channel>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-channel-unix.xml b/tests/xlconfigdata/test-channel-unix.xml
index 8f4eaa2b4..e7102d23b 100644
--- a/tests/xlconfigdata/test-channel-unix.xml
+++ b/tests/xlconfigdata/test-channel-unix.xml
@@ -30,5 +30,6 @@
     </channel>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-disk-positional-parms-full.xml b/tests/xlconfigdata/test-disk-positional-parms-full.xml
index 1bc5b436e..bb04ca710 100644
--- a/tests/xlconfigdata/test-disk-positional-parms-full.xml
+++ b/tests/xlconfigdata/test-disk-positional-parms-full.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-disk-positional-parms-partial.xml b/tests/xlconfigdata/test-disk-positional-parms-partial.xml
index 52b21dc59..14f4a72ae 100644
--- a/tests/xlconfigdata/test-disk-positional-parms-partial.xml
+++ b/tests/xlconfigdata/test-disk-positional-parms-partial.xml
@@ -60,5 +60,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-disk-qed.xml b/tests/xlconfigdata/test-disk-qed.xml
index 230382dd5..90c0a97ae 100644
--- a/tests/xlconfigdata/test-disk-qed.xml
+++ b/tests/xlconfigdata/test-disk-qed.xml
@@ -41,5 +41,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml
index 3738c8e79..8946b1d8c 100644
--- a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml
+++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml
@@ -51,5 +51,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml
index 3738c8e79..8946b1d8c 100644
--- a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml
+++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml
@@ -51,5 +51,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.xml b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.xml
index 3738c8e79..8946b1d8c 100644
--- a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.xml
+++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.xml
@@ -51,5 +51,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-hpet-timer.xml b/tests/xlconfigdata/test-fullvirt-hpet-timer.xml
index e3d2c4c8b..7da464c0f 100644
--- a/tests/xlconfigdata/test-fullvirt-hpet-timer.xml
+++ b/tests/xlconfigdata/test-fullvirt-hpet-timer.xml
@@ -60,5 +60,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-multi-timer.xml b/tests/xlconfigdata/test-fullvirt-multi-timer.xml
index 3e7c68caa..9f600755f 100644
--- a/tests/xlconfigdata/test-fullvirt-multi-timer.xml
+++ b/tests/xlconfigdata/test-fullvirt-multi-timer.xml
@@ -61,5 +61,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-multiserial.xml b/tests/xlconfigdata/test-fullvirt-multiserial.xml
index 1a7cc8438..120677a46 100644
--- a/tests/xlconfigdata/test-fullvirt-multiserial.xml
+++ b/tests/xlconfigdata/test-fullvirt-multiserial.xml
@@ -60,5 +60,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-multiusb.xml b/tests/xlconfigdata/test-fullvirt-multiusb.xml
index fcd14e975..bb7beaa1d 100644
--- a/tests/xlconfigdata/test-fullvirt-multiusb.xml
+++ b/tests/xlconfigdata/test-fullvirt-multiusb.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
index 58b63384d..9a0df958e 100644
--- a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
@@ -57,5 +57,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm.xml b/tests/xlconfigdata/test-fullvirt-nestedhvm.xml
index 8c02e7a20..a311314d8 100644
--- a/tests/xlconfigdata/test-fullvirt-nestedhvm.xml
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm.xml
@@ -55,5 +55,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-nohap.xml b/tests/xlconfigdata/test-fullvirt-nohap.xml
index e57e28bc2..4f4942fcd 100644
--- a/tests/xlconfigdata/test-fullvirt-nohap.xml
+++ b/tests/xlconfigdata/test-fullvirt-nohap.xml
@@ -58,5 +58,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-ovmf.xml b/tests/xlconfigdata/test-fullvirt-ovmf.xml
index ca902e68c..4efdac58b 100644
--- a/tests/xlconfigdata/test-fullvirt-ovmf.xml
+++ b/tests/xlconfigdata/test-fullvirt-ovmf.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-tsc-timer.xml b/tests/xlconfigdata/test-fullvirt-tsc-timer.xml
index 0816f96f3..6ffcf960f 100644
--- a/tests/xlconfigdata/test-fullvirt-tsc-timer.xml
+++ b/tests/xlconfigdata/test-fullvirt-tsc-timer.xml
@@ -60,5 +60,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-fullvirt-vnuma.xml b/tests/xlconfigdata/test-fullvirt-vnuma.xml
index 5368b0d9c..fe1904e87 100644
--- a/tests/xlconfigdata/test-fullvirt-vnuma.xml
+++ b/tests/xlconfigdata/test-fullvirt-vnuma.xml
@@ -77,5 +77,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-new-disk.xml b/tests/xlconfigdata/test-new-disk.xml
index 1bc5b436e..bb04ca710 100644
--- a/tests/xlconfigdata/test-new-disk.xml
+++ b/tests/xlconfigdata/test-new-disk.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml
index fdf84c37a..c5758e4bb 100644
--- a/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml
+++ b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml
@@ -30,5 +30,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml
index fdf84c37a..c5758e4bb 100644
--- a/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml
+++ b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml
@@ -30,5 +30,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-paravirt-cmdline.xml b/tests/xlconfigdata/test-paravirt-cmdline.xml
index fdf84c37a..c5758e4bb 100644
--- a/tests/xlconfigdata/test-paravirt-cmdline.xml
+++ b/tests/xlconfigdata/test-paravirt-cmdline.xml
@@ -30,5 +30,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-paravirt-maxvcpus.xml b/tests/xlconfigdata/test-paravirt-maxvcpus.xml
index 275f47b48..ae48ae15b 100644
--- a/tests/xlconfigdata/test-paravirt-maxvcpus.xml
+++ b/tests/xlconfigdata/test-paravirt-maxvcpus.xml
@@ -26,5 +26,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-rbd-multihost-noauth.xml b/tests/xlconfigdata/test-rbd-multihost-noauth.xml
index ef9bd178a..847c7c44b 100644
--- a/tests/xlconfigdata/test-rbd-multihost-noauth.xml
+++ b/tests/xlconfigdata/test-rbd-multihost-noauth.xml
@@ -51,5 +51,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-spice-features.xml b/tests/xlconfigdata/test-spice-features.xml
index 81757607c..6d95afb1f 100644
--- a/tests/xlconfigdata/test-spice-features.xml
+++ b/tests/xlconfigdata/test-spice-features.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-spice.xml b/tests/xlconfigdata/test-spice.xml
index 32cad2721..2737698ce 100644
--- a/tests/xlconfigdata/test-spice.xml
+++ b/tests/xlconfigdata/test-spice.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-usb.xml b/tests/xlconfigdata/test-usb.xml
index 7b5853db1..5bac73b96 100644
--- a/tests/xlconfigdata/test-usb.xml
+++ b/tests/xlconfigdata/test-usb.xml
@@ -31,5 +31,6 @@
         <address bus='1' device='3'/>
       </source>
     </hostdev>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-usbctrl.xml b/tests/xlconfigdata/test-usbctrl.xml
index 3c03f37e7..5e0346fa5 100644
--- a/tests/xlconfigdata/test-usbctrl.xml
+++ b/tests/xlconfigdata/test-usbctrl.xml
@@ -27,5 +27,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-vif-multi-ip.xml b/tests/xlconfigdata/test-vif-multi-ip.xml
index 7e831cf1b..2e72d9637 100644
--- a/tests/xlconfigdata/test-vif-multi-ip.xml
+++ b/tests/xlconfigdata/test-vif-multi-ip.xml
@@ -44,5 +44,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-vif-rate.xml b/tests/xlconfigdata/test-vif-rate.xml
index 3ab74883a..73ed43f43 100644
--- a/tests/xlconfigdata/test-vif-rate.xml
+++ b/tests/xlconfigdata/test-vif-rate.xml
@@ -57,5 +57,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xlconfigdata/test-vif-typename.xml b/tests/xlconfigdata/test-vif-typename.xml
index 8e1e98885..1c0435428 100644
--- a/tests/xlconfigdata/test-vif-typename.xml
+++ b/tests/xlconfigdata/test-vif-typename.xml
@@ -41,5 +41,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-disk-drv-blktap-raw.xml b/tests/xmconfigdata/test-disk-drv-blktap-raw.xml
index b8a1eafdd..fb0cdac7f 100644
--- a/tests/xmconfigdata/test-disk-drv-blktap-raw.xml
+++ b/tests/xmconfigdata/test-disk-drv-blktap-raw.xml
@@ -28,5 +28,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-disk-drv-blktap2-raw.xml b/tests/xmconfigdata/test-disk-drv-blktap2-raw.xml
index b47ee3eb1..8e2764aa8 100644
--- a/tests/xmconfigdata/test-disk-drv-blktap2-raw.xml
+++ b/tests/xmconfigdata/test-disk-drv-blktap2-raw.xml
@@ -28,5 +28,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-escape-paths.xml b/tests/xmconfigdata/test-escape-paths.xml
index 91d2b7c81..712cc8679 100644
--- a/tests/xmconfigdata/test-escape-paths.xml
+++ b/tests/xmconfigdata/test-escape-paths.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-default-feature.xml b/tests/xmconfigdata/test-fullvirt-default-feature.xml
index e89047191..b900ee0cf 100644
--- a/tests/xmconfigdata/test-fullvirt-default-feature.xml
+++ b/tests/xmconfigdata/test-fullvirt-default-feature.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-force-hpet.xml b/tests/xmconfigdata/test-fullvirt-force-hpet.xml
index e89047191..b900ee0cf 100644
--- a/tests/xmconfigdata/test-fullvirt-force-hpet.xml
+++ b/tests/xmconfigdata/test-fullvirt-force-hpet.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-force-nohpet.xml b/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
index d33a3f940..fae684f21 100644
--- a/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
+++ b/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-localtime.xml b/tests/xmconfigdata/test-fullvirt-localtime.xml
index fcc7dbcc3..ccb8f1a87 100644
--- a/tests/xmconfigdata/test-fullvirt-localtime.xml
+++ b/tests/xmconfigdata/test-fullvirt-localtime.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-net-netfront.xml b/tests/xmconfigdata/test-fullvirt-net-netfront.xml
index 5049c05f2..cc5c6658f 100644
--- a/tests/xmconfigdata/test-fullvirt-net-netfront.xml
+++ b/tests/xmconfigdata/test-fullvirt-net-netfront.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-new-cdrom.xml b/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
index 6756960bf..62253645a 100644
--- a/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
+++ b/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-nohap.xml b/tests/xmconfigdata/test-fullvirt-nohap.xml
index a92d5c047..bbd177a11 100644
--- a/tests/xmconfigdata/test-fullvirt-nohap.xml
+++ b/tests/xmconfigdata/test-fullvirt-nohap.xml
@@ -49,5 +49,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml b/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
index 82464449c..f99e90979 100644
--- a/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
+++ b/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
@@ -53,5 +53,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-file.xml b/tests/xmconfigdata/test-fullvirt-serial-file.xml
index 2c2573783..ccaa761d8 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-file.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-file.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-null.xml b/tests/xmconfigdata/test-fullvirt-serial-null.xml
index 026f8da83..0010cf100 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-null.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-null.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-pipe.xml b/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
index d9ef787a6..a2ce6f224 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-pty.xml b/tests/xmconfigdata/test-fullvirt-serial-pty.xml
index 8a5af9331..8485ae216 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-pty.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-pty.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-stdio.xml b/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
index ddb1fd89d..5163e0f54 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
@@ -54,5 +54,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml b/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
index a43333b47..760e57df4 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
@@ -58,5 +58,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-tcp.xml b/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
index 5222ea12b..517f9ddfb 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
@@ -58,5 +58,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-udp.xml b/tests/xmconfigdata/test-fullvirt-serial-udp.xml
index 9862d4ff1..eee7365ae 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-udp.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-udp.xml
@@ -58,5 +58,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-serial-unix.xml b/tests/xmconfigdata/test-fullvirt-serial-unix.xml
index 2ff799241..1b0f5a6e9 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-unix.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-unix.xml
@@ -56,5 +56,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-sound.xml b/tests/xmconfigdata/test-fullvirt-sound.xml
index 67c762eba..f13c920a5 100644
--- a/tests/xmconfigdata/test-fullvirt-sound.xml
+++ b/tests/xmconfigdata/test-fullvirt-sound.xml
@@ -50,5 +50,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-usbmouse.xml b/tests/xmconfigdata/test-fullvirt-usbmouse.xml
index 1ef30cf51..2c855cd35 100644
--- a/tests/xmconfigdata/test-fullvirt-usbmouse.xml
+++ b/tests/xmconfigdata/test-fullvirt-usbmouse.xml
@@ -49,5 +49,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-usbtablet.xml b/tests/xmconfigdata/test-fullvirt-usbtablet.xml
index d29e8f6c1..e82ffdca1 100644
--- a/tests/xmconfigdata/test-fullvirt-usbtablet.xml
+++ b/tests/xmconfigdata/test-fullvirt-usbtablet.xml
@@ -49,5 +49,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-fullvirt-utc.xml b/tests/xmconfigdata/test-fullvirt-utc.xml
index 6756960bf..62253645a 100644
--- a/tests/xmconfigdata/test-fullvirt-utc.xml
+++ b/tests/xmconfigdata/test-fullvirt-utc.xml
@@ -48,5 +48,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-no-source-cdrom.xml b/tests/xmconfigdata/test-no-source-cdrom.xml
index 52f7775fe..5d0f3bd68 100644
--- a/tests/xmconfigdata/test-no-source-cdrom.xml
+++ b/tests/xmconfigdata/test-no-source-cdrom.xml
@@ -53,5 +53,6 @@
     <video>
       <model type='cirrus' vram='8192' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-maxvcpus.xml b/tests/xmconfigdata/test-paravirt-maxvcpus.xml
index 1ad652c4d..ce66503dc 100644
--- a/tests/xmconfigdata/test-paravirt-maxvcpus.xml
+++ b/tests/xmconfigdata/test-paravirt-maxvcpus.xml
@@ -28,5 +28,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-net-e1000.xml b/tests/xmconfigdata/test-paravirt-net-e1000.xml
index dd5dffdf5..7b7112dcf 100644
--- a/tests/xmconfigdata/test-paravirt-net-e1000.xml
+++ b/tests/xmconfigdata/test-paravirt-net-e1000.xml
@@ -35,5 +35,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-net-vifname.xml b/tests/xmconfigdata/test-paravirt-net-vifname.xml
index 32006f967..36333c8d6 100644
--- a/tests/xmconfigdata/test-paravirt-net-vifname.xml
+++ b/tests/xmconfigdata/test-paravirt-net-vifname.xml
@@ -36,5 +36,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-new-pvfb-vncdisplay.xml b/tests/xmconfigdata/test-paravirt-new-pvfb-vncdisplay.xml
index b55cadd7c..b7fc9f723 100644
--- a/tests/xmconfigdata/test-paravirt-new-pvfb-vncdisplay.xml
+++ b/tests/xmconfigdata/test-paravirt-new-pvfb-vncdisplay.xml
@@ -34,5 +34,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-new-pvfb.xml b/tests/xmconfigdata/test-paravirt-new-pvfb.xml
index ffc00559f..60604a20a 100644
--- a/tests/xmconfigdata/test-paravirt-new-pvfb.xml
+++ b/tests/xmconfigdata/test-paravirt-new-pvfb.xml
@@ -34,5 +34,6 @@
     <video>
       <model type='xen' vram='4096' heads='1' primary='yes'/>
     </video>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-paravirt-vcpu.xml b/tests/xmconfigdata/test-paravirt-vcpu.xml
index 1ad652c4d..ce66503dc 100644
--- a/tests/xmconfigdata/test-paravirt-vcpu.xml
+++ b/tests/xmconfigdata/test-paravirt-vcpu.xml
@@ -28,5 +28,6 @@
     </console>
     <input type='mouse' bus='xen'/>
     <input type='keyboard' bus='xen'/>
+    <memballoon model='xen'/>
   </devices>
 </domain>
diff --git a/tests/xmconfigdata/test-pci-devs.xml b/tests/xmconfigdata/test-pci-devs.xml
index f39b1494e..f50e1947f 100644
--- a/tests/xmconfigdata/test-pci-devs.xml
+++ b/tests/xmconfigdata/test-pci-devs.xml
@@ -65,5 +65,6 @@
         <address domain='0x0000' bus='0x01' slot='0x13' function='0x0'/>
       </source>
     </hostdev>
+    <memballoon model='xen'/>
   </devices>
 </domain>
-- 
2.16.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] libxl: add support for memballoon device

Posted by Daniel P. Berrangé 23 weeks ago
On Tue, Apr 10, 2018 at 03:03:17PM -0600, Jim Fehlig wrote:
> All Xen PV and HVM with PV driver support a memory balloon device,
> which cannot be disabled through the toolstack. Model the device
> in the libxl driver, similar to the recently removed xend-based
> driver.
> 
> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
> ---
> 
> Apologies for the large amount of test file churn...
> 
> 
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 0ed914e4f..ed477330d 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -626,6 +626,32 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>              return -1;
>      }
>  
> +    /* only the 'xen' balloon device model is supported */
> +    if (def->memballoon) {
> +        int model = def->memballoon->model;
> +
> +        switch ((virDomainMemballoonModel)model) {
> +        case VIR_DOMAIN_MEMBALLOON_MODEL_XEN:
> +            break;
> +        case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO:
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                           _("unsupported balloon device model '%s'"),
> +                           virDomainMemballoonModelTypeToString(model));
> +            return -1;
> +        case VIR_DOMAIN_MEMBALLOON_MODEL_NONE:
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                           "%s",
> +                           _("balloon device cannot be disabled"));
> +            return -1;
> +        case VIR_DOMAIN_MEMBALLOON_MODEL_LAST:
> +        default:
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                           _("unexpected balloon device model '%d'"),
> +                           model);

Just use virReportEnumRangeError(virDomainMemballoonModel, model);

Assuming that's changed

 Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list