]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_conf: Add param memory_backing_dir
authorJaroslav Safka <jaroslavx.safka@intel.com>
Thu, 2 Feb 2017 13:27:31 +0000 (13:27 +0000)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 9 Feb 2017 13:27:19 +0000 (14:27 +0100)
Add new parameter memory_backing_dir where files will be stored when memoryBacking
source is selected as file.

Value is stored inside char* memoryBackingDir

src/qemu/libvirtd_qemu.aug
src/qemu/qemu.conf
src/qemu/qemu_conf.c
src/qemu/qemu_conf.h
src/qemu/test_libvirtd_qemu.aug.in

index de723b2543b062d7702d2e914213ae3383febb11..82bae9ee79961cf22af8eef823c5b1503ca50b7a 100644 (file)
@@ -109,6 +109,8 @@ module Libvirtd_qemu =
 
    let gluster_debug_level_entry = int_entry "gluster_debug_level"
 
+   let memory_entry = str_entry "memory_backing_dir"
+
    (* Each entry in the config is one of the following ... *)
    let entry = default_tls_entry
              | vnc_entry
@@ -125,6 +127,7 @@ module Libvirtd_qemu =
              | log_entry
              | nvram_entry
              | gluster_debug_level_entry
+             | memory_entry
 
    let comment = [ label "#comment" . del /#[ \t]*/ "# " .  store /([^ \t\n][^\n]*)?/ . del /\n/ "\n" ]
    let empty = [ label "#empty" . eol ]
index a8cd369cbaf246187f8437892c3a7a5fee420a79..97d769d4234fdd1cd03e4f51fad476a13205333d 100644 (file)
 # devices entries throughout the domain lifetime. This namespace is turned on
 # by default.
 #namespaces = [ "mount" ]
+
+# This directory is used for memoryBacking source if configured as file.
+# NOTE: big files will be stored here
+#memory_backing_dir = "/var/lib/libvirt/qemu/ram"
index 6613d59bc1ff83e036a19e924dbb4758ba323cfb..0223a95d22b90e53404a043f64fee7a43c5b5544 100644 (file)
@@ -186,6 +186,8 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
             goto error;
         if (virAsprintf(&cfg->nvramDir, "%s/nvram", cfg->libDir) < 0)
             goto error;
+        if (virAsprintf(&cfg->memoryBackingDir, "%s/ram", cfg->libDir) < 0)
+            goto error;
     } else {
         char *rundir;
         char *cachedir;
@@ -231,6 +233,8 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
         if (virAsprintf(&cfg->nvramDir,
                         "%s/qemu/nvram", cfg->configBaseDir) < 0)
             goto error;
+        if (virAsprintf(&cfg->memoryBackingDir, "%s/qemu/ram", cfg->configBaseDir) < 0)
+            goto error;
     }
 
     if (virAsprintf(&cfg->configDir, "%s/qemu", cfg->configBaseDir) < 0)
@@ -408,6 +412,8 @@ static void virQEMUDriverConfigDispose(void *obj)
     VIR_FREE(cfg->lockManagerName);
 
     virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares);
+
+    VIR_FREE(cfg->memoryBackingDir);
 }
 
 
@@ -835,6 +841,9 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
         }
     }
 
+    if (virConfGetValueString(conf, "memory_backing_dir", &cfg->memoryBackingDir) < 0)
+        goto cleanup;
+
     ret = 0;
 
  cleanup:
index 92a7a50278b88834513cc69330fc543e3a1f9db9..91904ed4fdc477c2d8021e35ba99086a55fee4c4 100644 (file)
@@ -195,6 +195,8 @@ struct _virQEMUDriverConfig {
     virFirmwarePtr *firmwares;
     size_t nfirmwares;
     unsigned int glusterDebugLevel;
+
+    char *memoryBackingDir;
 };
 
 /* Main driver state */
index a749f09004561a967b4c0afbd517e5f098945fe2..bd25235d3a71327d9583892bd469964479cdfb22 100644 (file)
@@ -94,3 +94,4 @@ module Test_libvirtd_qemu =
 { "namespaces"
     { "1" = "mount" }
 }
+{ "memory_backing_dir" = "/var/lib/libvirt/qemu/ram" }