All Virtuozzo development lists (kernel + QEMU)
 help / color / mirror / Atom feed
From: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
To: svt-core@virtuozzo.com
Cc: andrey.drobyshev@virtuozzo.com, efim.shevrin@virtuozzo.com,
	den@openvz.org
Subject: [RFC HCI-8.1 PATCH 4/5] qemu: share auxiliary RAM of VMs with DMA-pinning devices #VSTOR-103860
Date: Fri,  9 Oct 2026 17:04:34 +0300	[thread overview]
Message-ID: <20261009140435.483100-5-andrey.drobyshev@virtuozzo.com> (raw)
In-Reply-To: <20261009140435.483100-1-andrey.drobyshev@virtuozzo.com>

Besides guest RAM, VFIO also maps and pins auxiliary RAM that is visible
in the guest address space: VGA VRAM, firmware and option ROMs.  QEMU
allocates it as anonymous private memory unless the machine property
'aux-ram-share' is on, so with shared memfd guest RAM from the previous
commit it is the only memory left that qemu-update preserves with
MADV_DOEXEC and that can thus diverge between the device and the guest.
ROMs are never written after boot, so in practice only VRAM is at risk,
and only if the device does DMA to it; still, close the gap.

When a new domain starts with DMA-pinning devices and all of its guest
RAM shared, and QEMU knows 'aux-ram-share', add aux-ram-share=on to
-machine.

The decision is taken once at start and kept in the domain private data
(<auxRamShare/> in the status XML).  The qemu-update command line is
built from it rather than recomputed, because it must match the running
QEMU even after a libvirt upgrade changed the rules.  Incoming migration
and restore don't share auxiliary RAM, as the source may not have.

XML-to-argv outputs of the hostdev, mdev, NVMe and vDPA tests with QEMU
10.0 capabilities gain aux-ram-share=on; the status XML round-trip test
covers the new element.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
---
 src/qemu/qemu_command.c                       |  3 ++
 src/qemu/qemu_domain.c                        | 36 +++++++++++++++++++
 src/qemu/qemu_domain.h                        |  6 ++++
 src/qemu/qemu_process.c                       | 36 ++++++++++++++++++-
 tests/qemustatusxml2xmldata/modern-in.xml     |  1 +
 .../disk-nvme.x86_64-latest.args              |  2 +-
 .../disk-slices.x86_64-latest.args            |  2 +-
 ...tdev-mdev-display-ramfb.x86_64-latest.args |  2 +-
 ...play-spice-egl-headless.x86_64-latest.args |  2 +-
 ...ev-display-spice-opengl.x86_64-latest.args |  2 +-
 ...isplay-vnc-egl-headless.x86_64-latest.args |  2 +-
 ...ostdev-mdev-display-vnc.x86_64-latest.args |  2 +-
 .../hostdev-mdev-display.x86_64-latest.args   |  2 +-
 ...hostdev-mdev-precreated.x86_64-latest.args |  2 +-
 ...tdev-pci-address-device.x86_64-latest.args |  2 +-
 ...-pci-address-unassigned.x86_64-latest.args |  2 +-
 .../hostdev-pci-address.x86_64-latest.args    |  2 +-
 ...stdev-pci-display-ramfb.x86_64-latest.args |  2 +-
 ...stdev-pci-multifunction.x86_64-latest.args |  2 +-
 ...tdev-subsys-mdev-vfio-ap.s390x-latest.args |  2 +-
 ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args |  2 +-
 ...dev-subsys-mdev-vfio-ccw.s390x-latest.args |  2 +-
 ...ostdev-vfio-multidomain.x86_64-latest.args |  2 +-
 ...o-zpci-autogenerate-fids.s390x-latest.args |  2 +-
 ...o-zpci-autogenerate-uids.s390x-latest.args |  2 +-
 ...v-vfio-zpci-autogenerate.s390x-latest.args |  2 +-
 ...dev-vfio-zpci-boundaries.s390x-latest.args |  2 +-
 ...vfio-zpci-ccw-memballoon.s390x-latest.args |  2 +-
 ...io-zpci-multidomain-many.s390x-latest.args |  2 +-
 .../hostdev-vfio-zpci.s390x-latest.args       |  2 +-
 .../hostdev-vfio.x86_64-latest.args           |  2 +-
 ...machine-loadparm-hostdev.s390x-latest.args |  2 +-
 .../net-hostdev-bootorder.x86_64-latest.args  |  2 +-
 ...net-hostdev-multidomain.x86_64-latest.args |  2 +-
 ...ostdev-vfio-multidomain.x86_64-latest.args |  2 +-
 .../net-hostdev-vfio.x86_64-latest.args       |  2 +-
 .../net-hostdev.x86_64-latest.args            |  2 +-
 .../net-vdpa-multiqueue.x86_64-latest.args    |  2 +-
 .../net-vdpa.x86_64-latest.args               |  2 +-
 ...-virtio-teaming-hostdev.x86_64-latest.args |  2 +-
 ...-virtio-teaming-network.x86_64-latest.args |  2 +-
 .../net-virtio-teaming.x86_64-latest.args     |  2 +-
 .../pci-rom.x86_64-latest.args                |  2 +-
 .../pseries-hostdevs-1.ppc64-latest.args      |  2 +-
 .../pseries-hostdevs-2.ppc64-latest.args      |  2 +-
 .../pseries-hostdevs-3.ppc64-latest.args      |  2 +-
 46 files changed, 122 insertions(+), 42 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index fcc0a64ed0d..7c995a58b88 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7399,6 +7399,9 @@ qemuBuildMachineCommandLine(virCommand *cmd,
     if (qemuAppendDomainMemoryMachineParams(&buf, cfg, def, qemuCaps) < 0)
         return -1;
 
+    if (priv && priv->auxRamShare)
+        virBufferAddLit(&buf, ",aux-ram-share=on");
+
     if (cpu && cpu->model &&
         cpu->mode == VIR_CPU_MODE_HOST_MODEL &&
         qemuDomainIsPSeries(def)) {
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 551c214c774..791c833fc13 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1933,6 +1933,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv)
     g_clear_pointer(&priv->namespaces, virBitmapFree);
 
     priv->rememberOwner = false;
+    priv->auxRamShare = false;
 
     priv->reconnectBlockjobs = VIR_TRISTATE_BOOL_ABSENT;
     priv->allowReboot = VIR_TRISTATE_BOOL_ABSENT;
@@ -2881,6 +2882,9 @@ qemuDomainObjPrivateXMLFormat(virBuffer *buf,
     if (priv->rememberOwner)
         virBufferAddLit(buf, "<rememberOwner/>\n");
 
+    if (priv->auxRamShare)
+        virBufferAddLit(buf, "<auxRamShare/>\n");
+
     qemuDomainObjPrivateXMLFormatAllowReboot(buf, priv->allowReboot);
 
     qemuDomainObjPrivateXMLFormatPR(buf, priv);
@@ -3605,6 +3609,7 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
     }
 
     priv->rememberOwner = virXPathBoolean("count(./rememberOwner) > 0", ctxt);
+    priv->auxRamShare = virXPathBoolean("count(./auxRamShare) > 0", ctxt);
 
     if ((n = virXPathNodeSet("./vcpus/vcpu", ctxt, &nodes)) < 0)
         return -1;
@@ -9421,6 +9426,37 @@ qemuDomainNeedsVFIO(const virDomainDef *def)
 }
 
 
+/**
+ * qemuDomainDefGuestRAMIsShared:
+ * @def: domain definition
+ *
+ * Returns true if all guest RAM is shared, i.e. its memory access mode is
+ * 'shared' globally or for every guest NUMA node.  Shared RAM is backed by
+ * a file or memfd mapped with MAP_SHARED.
+ */
+bool
+qemuDomainDefGuestRAMIsShared(const virDomainDef *def)
+{
+    size_t nnodes = virDomainNumaGetNodeCount(def->numa);
+    size_t i;
+
+    if (nnodes == 0)
+        return def->mem.access == VIR_DOMAIN_MEMORY_ACCESS_SHARED;
+
+    for (i = 0; i < nnodes; i++) {
+        virDomainMemoryAccess access =
+            virDomainNumaGetNodeMemoryAccessMode(def->numa, i);
+
+        if (access == VIR_DOMAIN_MEMORY_ACCESS_DEFAULT)
+            access = def->mem.access;
+        if (access != VIR_DOMAIN_MEMORY_ACCESS_SHARED)
+            return false;
+    }
+
+    return true;
+}
+
+
 /**
  * qemuDomainGetHostdevPath:
  * @dev: host device definition
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index c28ce473152..87b458ece38 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -293,6 +293,10 @@ struct _qemuDomainObjPrivate {
     /* true if libvirt remembers the original owner for files */
     bool rememberOwner;
 
+    /* true if QEMU runs with -machine aux-ram-share=on; decided once when
+     * the domain starts and kept for qemu-update */
+    bool auxRamShare;
+
     /* true if global -mem-prealloc appears on cmd line */
     bool memPrealloc;
 
@@ -1103,6 +1107,8 @@ bool qemuDomainSupportsVideoVga(const virDomainVideoDef *video,
 
 bool qemuDomainNeedsVFIO(const virDomainDef *def);
 
+bool qemuDomainDefGuestRAMIsShared(const virDomainDef *def);
+
 int qemuDomainGetHostdevPath(virDomainHostdevDef *dev,
                              char **path,
                              int *perms);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index cea6957ad1a..b4859a5dba5 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8025,6 +8025,34 @@ qemuProcessPrepareDomainMemoryBacking(virDomainObj *vm)
 }
 
 
+/**
+ * qemuProcessPrepareDomainAuxRamShare:
+ * @vm: domain object
+ *
+ * Besides guest RAM, VFIO also maps and pins auxiliary RAM visible in the
+ * guest address space: VGA VRAM, firmware and option ROMs.  QEMU allocates
+ * it as anonymous private memory unless -machine aux-ram-share=on is set,
+ * so it would keep the qemu-update problem described at
+ * qemuProcessPrepareDomainMemoryBacking() even with shared guest RAM.
+ *
+ * Decide whether to share it.  The decision is kept in the status XML and
+ * reused for qemu-update, whose QEMU command line must match the running
+ * one regardless of what a newer libvirt would decide.
+ */
+static void
+qemuProcessPrepareDomainAuxRamShare(virDomainObj *vm)
+{
+    virDomainDef *def = vm->def;
+    qemuDomainObjPrivate *priv = vm->privateData;
+
+    priv->auxRamShare = (qemuDomainNeedsVFIO(def) ||
+                         virDomainDefHasVDPANet(def)) &&
+                        qemuDomainDefGuestRAMIsShared(def) &&
+                        virQEMUCapsGet(priv->qemuCaps,
+                                       QEMU_CAPS_MACHINE_AUX_RAM_SHARE);
+}
+
+
 static int
 qemuProcessPrepareDomainHostdevs(virDomainObj *vm,
                                  qemuDomainObjPrivate *priv)
@@ -8240,8 +8268,14 @@ qemuProcessPrepareDomain(virQEMUDriver *driver,
             return -1;
 
         /* Never on qemu-update: the new QEMU must match the running one. */
-        if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE))
+        if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE)) {
             qemuProcessPrepareDomainMemoryBacking(vm);
+            qemuProcessPrepareDomainAuxRamShare(vm);
+        }
+    } else if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE)) {
+        /* Incoming migration or restore: keep QEMU's default, the source
+         * didn't necessarily share its auxiliary RAM either. */
+        priv->auxRamShare = false;
     }
 
     for (i = 0; i < vm->def->nchannels; i++) {
diff --git a/tests/qemustatusxml2xmldata/modern-in.xml b/tests/qemustatusxml2xmldata/modern-in.xml
index 3b3e8317599..7fae6e82a14 100644
--- a/tests/qemustatusxml2xmldata/modern-in.xml
+++ b/tests/qemustatusxml2xmldata/modern-in.xml
@@ -260,6 +260,7 @@
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-1-upstream'/>
   <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1-upstream'/>
   <chardevStdioLogd/>
+  <auxRamShare/>
   <allowReboot value='yes'/>
   <nodename index='123'/>
   <fdset index='321'/>
diff --git a/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args b/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args
index 31fc6d517bf..a47609d454b 100644
--- a/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args b/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args
index 2124e6b129e..8db12aac833 100644
--- a/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args
index ffcc5562b6d..23ac8d00dba 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args
index ef8c0121ff6..2a011750637 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args
index 4a863af3abd..fcd3a0ed3e4 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args
index a5ffde5a48e..4be783e8e02 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args
index c4b59a37c1a..f3305762ad3 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args
index c4b59a37c1a..f3305762ad3 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args
index 9c8064c7d3b..afcecdbd5f8 100644
--- a/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args
index 80970358b9c..0597b08ea4f 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args
index 0328d441dce..3c7d7a54371 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-delete/.config \
 -name guest=delete,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-delete/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel kvm \
 -cpu qemu64 \
 -m size=262144k \
diff --git a/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args
index 18dfa2d17d5..5961e551dc2 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
index 332fff8b84a..d1d31c04fc2 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args
index 12d10aed715..990f700f968 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-delete/.config \
 -name guest=delete,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-delete/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel kvm \
 -cpu qemu64 \
 -m size=262144k \
diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args
index 7c923d99f10..5817f9ddacf 100644
--- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args
index 6ed62006e3a..03c038b537c 100644
--- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args
index dc225816355..4a3a1ad9eeb 100644
--- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args
index ad08f942abe..000de5f65ff 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args
index d6c1855a015..a688f06fd38 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args
index c71df6ab57f..ef9871783d9 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args
index 75bfe10700f..f22c212d403 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args
index 93f15c430b6..2b8f6590a6f 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args
index 37635a3e25c..bd28e8bcb9e 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-KVMGuest1/.config \
 -name guest=KVMGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-KVMGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel kvm \
 -cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args
index 948bb876fed..6a4605310e3 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args
index 1e923207ca5..e53d44129dd 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args
index 7054582818e..48798b83553 100644
--- a/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args b/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args
index fa4084739ed..31747c1e982 100644
--- a/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args
+++ b/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \
 -accel tcg \
 -cpu qemu \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args
index 432627f037f..40dd5309ba8 100644
--- a/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args
index f9c46a9df79..9a295d59ee4 100644
--- a/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args
index bd59a926816..e2a56874246 100644
--- a/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args
index 1f8d5357d95..77c56946978 100644
--- a/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args
index 263811a3486..938ae3270f9 100644
--- a/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args b/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args
index c4f618c1c06..91ccc9bf28a 100644
--- a/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args b/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args
index 15e9cf0a341..65b50faf7f0 100644
--- a/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args
index fe6521e61b1..ddc5acdb3a2 100644
--- a/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args
index 0255d1b586d..9bd650f61b3 100644
--- a/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args
index a4cf2b9db94..3027e6d3b95 100644
--- a/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args b/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args
index 70556423ac5..0f1a470f7dd 100644
--- a/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -name guest=QEMUGuest2,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \
 -accel tcg \
 -cpu qemu64 \
 -m size=219136k \
diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args
index 57fb8128b39..55227197ae2 100644
--- a/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args
+++ b/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -name guest=guest,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
--machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \
+-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \
 -accel tcg \
 -cpu POWER10 \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args
index d7c97f4dae8..7807414e174 100644
--- a/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args
+++ b/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -name guest=guest,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
--machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \
+-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \
 -accel tcg \
 -cpu POWER10 \
 -m size=524288k \
diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args
index 90157f61c25..6b5e7c4ce2e 100644
--- a/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args
+++ b/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -name guest=guest,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
--machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \
+-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \
 -accel tcg \
 -cpu POWER10 \
 -m size=524288k \
-- 
2.47.1


  parent reply	other threads:[~2026-10-09 14:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-09 14:04 [RFC HCI-8.1 PATCH 0/5] qemu: allow qemu-update with VFIO hostdevs on shared memfd RAM #VSTOR-103860 Andrey Drobyshev
2026-10-09 14:04 ` [RFC HCI-8.1 PATCH 1/5] qemu update: allow qemu-update for VMs with PCI and USB hostdevs #VSTOR-103860 #VSTOR-137800 Andrey Drobyshev
2026-10-09 14:04 ` [RFC HCI-8.1 PATCH 2/5] qemu: capabilities: probe aux-ram-share machine property #VSTOR-103860 Andrey Drobyshev
2026-10-09 14:04 ` [RFC HCI-8.1 PATCH 3/5] qemu: back guest RAM with shared memfd for VMs with DMA-pinning devices #VSTOR-103860 Andrey Drobyshev
2026-10-09 14:04 ` Andrey Drobyshev [this message]
2026-10-09 14:04 ` [RFC HCI-8.1 PATCH 5/5] qemu update: refuse PCI hostdevs on non-shared guest RAM #VSTOR-103860 Andrey Drobyshev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261009140435.483100-5-andrey.drobyshev@virtuozzo.com \
    --to=andrey.drobyshev@virtuozzo.com \
    --cc=den@openvz.org \
    --cc=efim.shevrin@virtuozzo.com \
    --cc=svt-core@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.