]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Set memoryBackingDir in private data upon start
authorMartin Kletzander <mkletzan@redhat.com>
Wed, 18 Sep 2024 08:40:59 +0000 (10:40 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 24 Sep 2024 08:12:08 +0000 (10:12 +0200)
This way we keep the path for each running VM.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 files changed:
src/qemu/qemu_domain.c
tests/qemustatusxml2xmldata/backup-pull-in.xml
tests/qemustatusxml2xmldata/blockjob-blockdev-in.xml
tests/qemustatusxml2xmldata/blockjob-mirror-in.xml
tests/qemustatusxml2xmldata/migration-in-params-in.xml
tests/qemustatusxml2xmldata/migration-out-nbd-bitmaps-in.xml
tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
tests/qemustatusxml2xmldata/migration-out-nbd-tls-out.xml
tests/qemustatusxml2xmldata/migration-out-params-in.xml
tests/qemustatusxml2xmldata/modern-in.xml
tests/qemustatusxml2xmldata/upgrade-out.xml
tests/qemustatusxml2xmldata/vcpus-multi-in.xml

index 76bcb70a5699aff5ea20a5b1ca1b96c7e2dba09f..b05b1c9647a8098df0fd68ee0ab96e1c6e300f1c 100644 (file)
@@ -1795,7 +1795,7 @@ qemuGetMemoryBackingPath(qemuDomainObjPrivate *priv,
 
 
 /* This is the old way of setting up per-domain directories */
-static void
+static int
 qemuDomainSetPrivatePathsOld(virQEMUDriver *driver,
                              virDomainObj *vm)
 {
@@ -1808,6 +1808,13 @@ qemuDomainSetPrivatePathsOld(virQEMUDriver *driver,
     if (!priv->channelTargetDir)
         priv->channelTargetDir = g_strdup_printf("%s/domain-%s",
                                                  cfg->channelTargetDir, vm->def->name);
+
+    if (!priv->memoryBackingDir &&
+        qemuGetMemoryBackingDomainPath(priv, vm->def,
+                                       &priv->memoryBackingDir) < 0)
+        return -1;
+
+    return 0;
 }
 
 
@@ -1829,6 +1836,11 @@ qemuDomainSetPrivatePaths(virQEMUDriver *driver,
         priv->channelTargetDir = g_strdup_printf("%s/%s",
                                                  cfg->channelTargetDir, domname);
 
+    if (!priv->memoryBackingDir &&
+        qemuGetMemoryBackingDomainPath(priv, vm->def,
+                                       &priv->memoryBackingDir) < 0)
+        return -1;
+
     return 0;
 }
 
@@ -3434,7 +3446,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
 
     priv->memoryBackingDir = virXPathString("string(./memoryBackingDir/@path)", ctxt);
 
-    qemuDomainSetPrivatePathsOld(driver, vm);
+    if (qemuDomainSetPrivatePathsOld(driver, vm) < 0)
+        return -1;
 
     if (virCPUDefParseXML(ctxt, "./cpu", VIR_CPU_TYPE_GUEST, &priv->origCPU,
                           false) < 0)
index e7fdc6c4783266a7a257a2cfa76e133795279d24..2cedcc3cf227f3efaf6d8ece06900c7c534a310b 100644 (file)
   </devices>
   <libDir path='/var/lib/libvirt/qemu/domain-4-copy'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-4-copy'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/4-copy'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index 380ef053d2b83dbdabf7c0ac66165be17085751c..1c45fad370c445d660d5ce4180721440727b331c 100644 (file)
   </devices>
   <libDir path='/var/lib/libvirt/qemu/domain-4-copy'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-4-copy'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/4-copy'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index 1bcdeffcb876149bdb2bb8c5fc3a150c22305e17..df11e83cedb51ba6d2f25d7eeb67d87b62edd095 100644 (file)
@@ -21,6 +21,7 @@
   <numad nodeset='0-2' cpuset='1,3'/>
   <libDir path='/tmp'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1-QEMUGuest1'/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
   <fdset index='0'/>
index 03773a089b3ab340c33fa27a5107435e615d293f..861d8eeadb92a64d41c6ab467597a6a991b8fc9b 100644 (file)
   </job>
   <libDir path='/var/lib/libvirt/qemu/domain-1-nest'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-1-nest'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1-nest'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index 4ee44ffbd480a652cc83be7955aa348da0f7a806..5d76545513cc3fe03db664fb28da1a0a258bac54 100644 (file)
   </devices>
   <libDir path='/var/lib/libvirt/qemu/domain-11-migr'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-11-migr'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/11-migr'/>
   <cpu mode='custom' match='exact' check='partial'>
     <model fallback='forbid'>EPYC-Rome</model>
     <vendor>AMD</vendor>
index de92146eaacb42f78acdc8c28c782057feaabb08..581cf28286051e8a663d197e88555aacc275d395 100644 (file)
   <numad nodeset='0' cpuset='0-7'/>
   <libDir path='/var/lib/libvirt/qemu/domain-4-upstream'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-4-upstream'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/4-upstream'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index 6bdd12825969d6d7f6055ee7c698c50f5d4ad9b6..dacaa3e42f42a1b106b4f0a2139a6f5664da9508 100644 (file)
   <numad nodeset='0' cpuset='0-7'/>
   <libDir path='/var/lib/libvirt/qemu/domain-3-upstream'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-3-upstream'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/3-upstream'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index 24ee86e4c04eb5c83e6d41f3fcfda34be9347f27..b914236b62fca6d479611b95cbaf00c2d7acbee6 100644 (file)
   </devices>
   <libDir path='/var/lib/libvirt/qemu/domain-7-nest'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-7-nest'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/7-nest'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index f0f5df84ab20483d874a8dec8fe0dd75386424ba..3b3e83175997a661668c26e0aa396cbb82d678e6 100644 (file)
   <numad nodeset='6' cpuset='0-7'/>
   <libDir path='/var/lib/libvirt/qemu/domain-1-upstream'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-1-upstream'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1-upstream'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='123'/>
index e663b3dbb5e9c9e608dab4307af489d79fc9e234..c7bc7128df60fccf7c3b9dcbacfc7d3b8e52dad4 100644 (file)
   <numad nodeset='6' cpuset='0-7'/>
   <libDir path='/var/lib/libvirt/qemu/domain-1-upstream'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target/domain-1-upstream'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1-upstream'/>
   <chardevStdioLogd/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
index fa6a6a99f48092792718fc2bee7b66bc80ee2ede..6ee688ce037d5c7f1c59d89b612c70d0ba0c6318 100644 (file)
   <numad nodeset='0-2' cpuset='1,3'/>
   <libDir path='/tmp'/>
   <channelTargetDir path='/var/lib/libvirt/qemu/channel/target'/>
+  <memoryBackingDir path='/var/lib/libvirt/qemu/ram/1729-QEMUGuest1'/>
   <allowReboot value='yes'/>
   <nodename index='0'/>
   <fdset index='0'/>