this completes the save side of the parallel compression support.
Signed-off-by: Claudio Fontana <cfontana(a)suse.de>
---
docs/manpages/virsh.rst | 4 ++++
tools/virsh-domain.c | 12 ++++++++++++
2 files changed, 16 insertions(+)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 3bf9b54806..912b10d072 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -3813,6 +3813,7 @@ save
save domain state-file [--bypass-cache] [--xml file]
[--parallel] [--parallel-connections connections]
+ [--parallel-compression algo]
[{--running | --paused}] [--verbose]
Saves a paused or running domain (RAM, but not disk state) to one or more
@@ -3853,6 +3854,9 @@ set using *--parallel-connections*, which will save to files named
Parallel connections may help in speeding up the save operation.
+*--parallel-compression* can be used to ask the hypervisor to provide
+compressed channels in the save stream using algorithm ``algo``.
+
Domain saved state files assume that disk images will be unchanged
between the creation and restore point. For a more complete system
restore point, where the disk state is saved alongside the memory
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index ddedc21573..2236f44a22 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -4182,6 +4182,10 @@ static const vshCmdOptDef opts_save[] = {
.type = VSH_OT_INT,
.help = N_("number of connections/files for parallel save")
},
+ {.name = "parallel-compression",
+ .type = VSH_OT_STRING,
+ .help = N_("compression algorithm and format for parallel save")
+ },
{.name = "xml",
.type = VSH_OT_STRING,
.completer = virshCompletePathLocalExisting,
@@ -4211,6 +4215,7 @@ doSave(void *opaque)
g_autoptr(virshDomain) dom = NULL;
const char *name = NULL;
const char *to = NULL;
+ const char *pcomp = NULL;
virTypedParameterPtr params = NULL;
int nparams = 0;
int maxparams = 0;
@@ -4247,6 +4252,13 @@ doSave(void *opaque)
VIR_SAVE_PARAM_PARALLEL_CONNECTIONS, intOpt) < 0)
goto out;
}
+ if ((rv = vshCommandOptStringReq(ctl, cmd, "parallel-compression",
&pcomp)) < 0) {
+ goto out;
+ } else {
+ if (virTypedParamsAddString(¶ms, &nparams, &maxparams,
+ VIR_SAVE_PARAM_PARALLEL_COMPRESSION, pcomp) < 0)
+ goto out;
+ }
if (vshCommandOptBool(cmd, "running"))
flags |= VIR_DOMAIN_SAVE_RUNNING;
if (vshCommandOptBool(cmd, "paused"))
--
2.35.3