[libvirt] [PATCH] qemu: don't fail on destroy if domain is inactive
by Nikolay Shirokovskiy
Mgmt can not track if domain is already inactive before
calling destroy because domain can become inactive because
of crash/shutdown from guest. Thus it is make sense to
report success in this case. Another option is to return
special error code but this is a bit more complicated.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
---
src/qemu/qemu_driver.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 62d8d97..0789efc 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2172,8 +2172,10 @@ qemuDomainDestroyFlags(virDomainPtr dom,
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- if (virDomainObjCheckActive(vm) < 0)
+ if (!virDomainObjIsActive(vm)) {
+ ret = 0;
goto cleanup;
+ }
state = virDomainObjGetState(vm, &reason);
starting = (state == VIR_DOMAIN_PAUSED &&
--
1.8.3.1
5 years, 9 months
[libvirt] [PATCH] util: suppress unimportant ovs-vsctl errors when getting interface stats
by Laine Stump
commit edaf13565 modified the stats retrieval for OVS interfaces to
not fail when one of the fields was unrecognized by the ovs-vsctl
command, but ovs-vsctl was still returning an error, and libvirt was
cluttering the logs with these inconsequential error messages.
This patch modifies the GET_STAT macro to add "--if-exists" to the
ovs-vsctl command, which causes it to return an empty string (and exit
with success) if the requested statistic isn't in its database, thus
eliminating the ugly error messages from the log.
Resolves: https://bugzilla.redhat.com/1683175
Signed-off-by: Laine Stump <laine(a)laine.org>
---
src/util/virnetdevopenvswitch.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index 4fa3a5742a..e5a45f59ec 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -335,10 +335,10 @@ virNetDevOpenvswitchInterfaceStats(const char *ifname,
virCommandFree(cmd); \
cmd = virCommandNew(OVSVSCTL); \
virNetDevOpenvswitchAddTimeout(cmd); \
- virCommandAddArgList(cmd, "get", "Interface", ifname, \
- "statistics:" name, NULL); \
+ virCommandAddArgList(cmd, "--if-exists", "get", "Interface", \
+ ifname, "statistics:" name, NULL); \
virCommandSetOutputBuffer(cmd, &output); \
- if (virCommandRun(cmd, NULL) < 0) { \
+ if (virCommandRun(cmd, NULL) < 0 || !*output || *output == '\n') { \
stats->member = -1; \
} else { \
if (virStrToLong_ll(output, &tmp, 10, &stats->member) < 0 || \
--
2.20.1
5 years, 9 months
[libvirt] [PATCH] tools: Tweak workding for iothreadset
by John Ferlan
Update the wording to note the values for polling are purely dynamic
and won't be saved across domain stop/(re)start or save/restore.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
tools/virsh.pod | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index a0fe949c55..f00564fa5f 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -1772,7 +1772,10 @@ reach the maximum polling time. If a 0 (zero) is provided, then the
default factor will be used. The I<--poll-shrink> is the quotient
by which the current polling time will be reduced in order to get
below the maximum polling interval. If a 0 (zero) is provided, then
-the default quotient will be used.
+the default quotient will be used. The polling values are purely dynamic
+for a running guest. Saving, destroying, stopping, etc. the guest will
+result in the polling values returning to hypervisor defaults at the
+next start, restore, etc.
If I<--live> is specified, affect a running guest. If the guest is not
running an error is returned.
--
2.20.1
5 years, 9 months
[libvirt] [PATCH v2 0/2] qemu_capabilities; Drop virQEMUCapsSetVAList
by Michal Privoznik
Technically, this is v2 of:
https://www.redhat.com/archives/libvir-list/2019-March/msg01778.html
but is this one implements different approach. Plus it breaks dependency
between two unrelated enums that I've noticed when debugging broken
build on a 32bit arch.
Michal Prívozník (2):
qemu_capabilities; Drop virQEMUCapsSetVAList
qemuxml2argvtest: Drop dependency between testInfoArgName and
virQEMUCapsFlags enums
src/qemu/qemu_capabilities.c | 15 +++----------
src/qemu/qemu_capabilities.h | 2 --
tests/qemuxml2argvtest.c | 41 +++++++++++++++++++++++-------------
3 files changed, 29 insertions(+), 29 deletions(-)
--
2.19.2
5 years, 9 months
[libvirt] [PATCH] qemu_capabilities: Pass pointer to va_list in virQEMUCapsSetVAList
by Michal Privoznik
There is one specific caller (testInfoSetArgs() in
qemuxml2argvtest.c) which expect the va_list argument to change
after returning from the virQEMUCapsSetVAList() function.
However, since we are passing plain va_list this is not
guaranteed. The man page of stdarg(3) says:
If ap is passed to a function that uses va_arg(ap,type), then
the value of ap is undefined after the return of that function.
(ap is a variable of type va_list)
I've seen this in action in fact: on i686 the qemuxml2argvtest
fails on the second test case because testInfoSetArgs() sees
ARG_QEMU_CAPS and callse virQEMUCapsSetVAList to process the
capabilities (in this case there's just one
QEMU_CAPS_SECCOMP_BLACKLIST). But since the changes are not
reflected in the caller, in the next iteration testInfoSetArgs()
sees the qemu capability and not ARG_END.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
This passed successfully on x86_64 and i686 in my testing.
src/qemu/qemu_capabilities.c | 6 +++---
src/qemu/qemu_capabilities.h | 2 +-
tests/qemuxml2argvtest.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c5954edaf0..e182a2c2e5 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1665,11 +1665,11 @@ virQEMUCapsSet(virQEMUCapsPtr qemuCaps,
void
virQEMUCapsSetVAList(virQEMUCapsPtr qemuCaps,
- va_list list)
+ va_list *list)
{
int flag;
- while ((flag = va_arg(list, int)) < QEMU_CAPS_LAST)
+ while ((flag = va_arg(*list, int)) < QEMU_CAPS_LAST)
ignore_value(virBitmapSetBit(qemuCaps->flags, flag));
}
@@ -1680,7 +1680,7 @@ virQEMUCapsSetList(virQEMUCapsPtr qemuCaps, ...)
va_list list;
va_start(list, qemuCaps);
- virQEMUCapsSetVAList(qemuCaps, list);
+ virQEMUCapsSetVAList(qemuCaps, &list);
va_end(list);
}
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 7625d754a3..ceab8c9154 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -519,7 +519,7 @@ void virQEMUCapsSet(virQEMUCapsPtr qemuCaps,
virQEMUCapsFlags flag) ATTRIBUTE_NONNULL(1);
void virQEMUCapsSetVAList(virQEMUCapsPtr qemuCaps,
- va_list list) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+ va_list *list) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
void virQEMUCapsSetList(virQEMUCapsPtr qemuCaps, ...) ATTRIBUTE_NONNULL(1);
void virQEMUCapsClear(virQEMUCapsPtr qemuCaps,
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 6e7d1b0b9a..a7a8d77e1d 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -650,7 +650,7 @@ testInfoSetArgs(struct testInfo *info,
case ARG_QEMU_CAPS:
if (qemuCaps || !(qemuCaps = virQEMUCapsNew()))
goto cleanup;
- virQEMUCapsSetVAList(qemuCaps, argptr);
+ virQEMUCapsSetVAList(qemuCaps, &argptr);
break;
case ARG_GIC:
--
2.19.2
5 years, 9 months
[libvirt] [PATCH v7 00/23] Incremental backups
by Eric Blake
I've finished rebasing my earlier v4/v5 patches on top of cleanups
earlier in the series (v6 didn't include the second half of the
series). I've pushed a tag backup-v7 to both my libvirt.git and
libvirt-python.git repos to match:
https://repo.or.cz/libvirt/ericb.git/shortlog/refs/tags/backup-v7
https://repo.or.cz/libvirt-python/ericb.git/shortlog/refs/tags/backup-v7
Here's hoping we're happy enough with the API, including the fact that
rudimentary operation of pull mode backups work with qemu 4.0-rc1, for
this to make it into the 5.2 release.
Diffs from v6
- couple more early easy cleanups
- add Dan's R-b where appropriate
- drop any attempt at virDomainGetJobIds(), instead:
- document that job id 0 always works for the current backup job (if
there is just one), which is just fine for now because qemu 4.0 doesn't
permit parallel jobs (and we can do full job id support for a later release)
- split some more patches; finish moving backup code to a new backup_conf.c
and not piggybacked onto checkpoint_conf.c
Eric Blake (23):
snapshot: Drop pointless function virDomainMomentIsCurrentName
snapshot: Allow NULL to virDomainSnapshotObjGetDef
snapshot: Refactor qemu to utilize virDomainMoment more
backup: Document new XML for checkpoints
backup: Document new XML for backups
backup: Introduce virDomainCheckpoint APIs
backup: Introduce virDomainBackup APIs
backup: Document nuances between different state capture APIs
backup: Parse and output checkpoint XML
backup: Allow for lists of checkpoint objects
squash to checkpoint list
backup: Add new domain:checkpoint access control
backup: Implement backup APIs for remote driver
backup: Parse and output backup XML
backup: Implement virsh support for checkpoints
backup: Implement virsh support for backup
backup: Add new qemu monitor interactions
backup: qemu: Implement metadata tracking for checkpoint APIs
backup: Wire up qemu checkpoint commands over QMP
backup: qemu: Implement framework for backup job APIs
backup: Wire up qemu full pull backup commands over QMP
backup: qemu: Wire up qemu full push backup commands over QMP
backup: implement qemu incremental pull backup
include/libvirt/libvirt-domain-checkpoint.h | 161 ++
include/libvirt/libvirt-domain-snapshot.h | 8 +-
include/libvirt/libvirt-domain.h | 47 +-
include/libvirt/libvirt.h | 5 +-
src/access/viraccessperm.h | 8 +-
src/conf/backup_conf.h | 96 +
src/conf/checkpoint_conf.h | 103 ++
src/conf/domain_conf.h | 2 +
src/conf/virconftypes.h | 12 +
src/conf/virdomaincheckpointobjlist.h | 74 +
src/conf/virdomainmomentobjlist.h | 9 +-
src/conf/virdomainobjlist.h | 9 +-
src/conf/virdomainsnapshotobjlist.h | 4 +-
src/driver-hypervisor.h | 81 +-
src/qemu/qemu_block.h | 3 +
src/qemu/qemu_blockjob.h | 1 +
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_conf.h | 2 +
src/qemu/qemu_domain.h | 39 +-
src/qemu/qemu_monitor.h | 21 +-
src/qemu/qemu_monitor_json.h | 21 +-
tools/virsh-checkpoint.h | 29 +
tools/virsh-completer.h | 4 +
tools/virsh-util.h | 3 +
tools/virsh.h | 1 +
docs/Makefile.am | 3 +
docs/apibuild.py | 2 +
docs/docs.html.in | 10 +-
docs/domainstatecapture.html.in | 315 ++++
docs/format.html.in | 2 +
docs/formatbackup.html.in | 184 ++
docs/formatcheckpoint.html.in | 204 +++
docs/formatsnapshot.html.in | 2 +
docs/index.html.in | 4 +-
docs/schemas/domainbackup.rng | 219 +++
docs/schemas/domaincheckpoint.rng | 87 +
examples/object-events/event-test.c | 3 +
libvirt.spec.in | 3 +
mingw-libvirt.spec.in | 6 +
po/POTFILES | 3 +
src/Makefile.am | 2 +
src/access/viraccessperm.c | 5 +-
src/conf/Makefile.inc.am | 6 +
src/conf/backup_conf.c | 544 ++++++
src/conf/checkpoint_conf.c | 639 +++++++
src/conf/domain_conf.c | 8 +-
src/conf/snapshot_conf.c | 2 +-
src/conf/virdomaincheckpointobjlist.c | 222 +++
src/conf/virdomainmomentobjlist.c | 49 +-
src/conf/virdomainobjlist.c | 13 +-
src/conf/virdomainsnapshotobjlist.c | 11 +-
src/libvirt-domain-checkpoint.c | 750 ++++++++
src/libvirt-domain-snapshot.c | 89 +
src/libvirt-domain.c | 239 ++-
src/libvirt_private.syms | 33 +-
src/libvirt_public.syms | 20 +
src/qemu/qemu_block.c | 12 +
src/qemu/qemu_capabilities.c | 6 +
src/qemu/qemu_conf.c | 5 +
src/qemu/qemu_domain.c | 249 ++-
src/qemu/qemu_driver.c | 1609 ++++++++++++++++-
src/qemu/qemu_migration.c | 2 +-
src/qemu/qemu_monitor.c | 65 +-
src/qemu/qemu_monitor_json.c | 201 +-
src/qemu/qemu_process.c | 7 +
src/remote/remote_daemon_dispatch.c | 22 +-
src/remote/remote_driver.c | 34 +-
src/remote/remote_protocol.x | 259 ++-
src/remote_protocol-structs | 139 ++
src/rpc/gendispatch.pl | 34 +-
src/test/test_driver.c | 7 +-
tests/Makefile.am | 13 +-
tests/domainbackupxml2xmlin/backup-pull.xml | 9 +
tests/domainbackupxml2xmlin/backup-push.xml | 9 +
tests/domainbackupxml2xmlin/empty.xml | 1 +
tests/domainbackupxml2xmlout/backup-pull.xml | 9 +
tests/domainbackupxml2xmlout/backup-push.xml | 9 +
tests/domainbackupxml2xmlout/empty.xml | 7 +
tests/domaincheckpointxml2xmlin/empty.xml | 1 +
tests/domaincheckpointxml2xmlin/redefine.xml | 63 +
tests/domaincheckpointxml2xmlin/sample.xml | 7 +
tests/domaincheckpointxml2xmlin/size.xml | 4 +
tests/domaincheckpointxml2xmlout/empty.xml | 7 +
tests/domaincheckpointxml2xmlout/sample.xml | 12 +
tests/domaincheckpointxml2xmlout/size.xml | 11 +
tests/domaincheckpointxml2xmltest.c | 212 +++
.../caps_4.0.0.riscv32.xml | 2 +
.../caps_4.0.0.riscv64.xml | 2 +
.../caps_4.0.0.x86_64.xml | 2 +
tests/qemumonitorjsontest.c | 2 +-
tests/virschematest.c | 4 +
tools/Makefile.am | 3 +-
tools/virsh-checkpoint.c | 1370 ++++++++++++++
tools/virsh-completer.c | 53 +-
tools/virsh-domain-monitor.c | 25 +-
tools/virsh-domain.c | 270 ++-
tools/virsh-snapshot.c | 37 +-
tools/virsh-util.c | 11 +
tools/virsh.c | 2 +
tools/virsh.pod | 302 +++-
100 files changed, 9373 insertions(+), 163 deletions(-)
create mode 100644 include/libvirt/libvirt-domain-checkpoint.h
create mode 100644 src/conf/backup_conf.h
create mode 100644 src/conf/checkpoint_conf.h
create mode 100644 src/conf/virdomaincheckpointobjlist.h
create mode 100644 tools/virsh-checkpoint.h
create mode 100644 docs/domainstatecapture.html.in
create mode 100644 docs/formatbackup.html.in
create mode 100644 docs/formatcheckpoint.html.in
create mode 100644 docs/schemas/domainbackup.rng
create mode 100644 docs/schemas/domaincheckpoint.rng
create mode 100644 src/conf/backup_conf.c
create mode 100644 src/conf/checkpoint_conf.c
create mode 100644 src/conf/virdomaincheckpointobjlist.c
create mode 100644 src/libvirt-domain-checkpoint.c
create mode 100644 tests/domainbackupxml2xmlin/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlin/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlin/empty.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlout/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlin/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlin/redefine.xml
create mode 100644 tests/domaincheckpointxml2xmlin/sample.xml
create mode 100644 tests/domaincheckpointxml2xmlin/size.xml
create mode 100644 tests/domaincheckpointxml2xmlout/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlout/sample.xml
create mode 100644 tests/domaincheckpointxml2xmlout/size.xml
create mode 100644 tests/domaincheckpointxml2xmltest.c
create mode 100644 tools/virsh-checkpoint.c
--
2.20.1
5 years, 9 months
[libvirt] [PATCH] tests: don't abort in fopen(/proc/mounts)
by Daniel P. Berrangé
The mock fopen() function will abort if "/proc/mounts" is
requested with "r" permissions and VIR_CGROUP_MOCK_FILENAME
env var is not set.
Unfortunately this is triggering by the libselinux library
constructor when it tries to read /proc/mounts to find out
if selinuxfs is mounted in an unusual place.
This, however, only affects libselinux in Debian as that
opens with "r", while in Fedora / RHEL it opens "re" and
thus luckily never triggered the abort(), instead getting
an EACCESS.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
tests/vircgroupmock.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/vircgroupmock.c b/tests/vircgroupmock.c
index 06bd0a5f29..9c67a44b0d 100644
--- a/tests/vircgroupmock.c
+++ b/tests/vircgroupmock.c
@@ -460,8 +460,10 @@ FILE *fopen(const char *path, const char *mode)
}
if (type) {
- if (!filename)
- abort();
+ if (!filename) {
+ errno = EACCES;
+ return NULL;
+ }
if (virAsprintfQuiet(&filepath, "%s/vircgroupdata/%s.%s",
abs_srcdir, filename, type) < 0) {
abort();
--
2.20.1
5 years, 9 months
[libvirt] [PATCH v6 0/9] Incremental backups, focus on API
by Eric Blake
I'm fairly confident that these API are ready to go (that is, I've got
qemu code in the wings to implement these API for the qemu driver, as
demonstrated at last KVM forum, and it shouldn't be too hard to add
support in the test driver to get some 'make check' coverage similar
to what I recently added for snapshots). I'm hoping the APIs make it
in for 5.2, even if I'm still dealing with review churn on the later
parts of my v5 series (there has been a lot of rebasing from earlier
review comments, so v5 is currently still the most recent version that
I was able to run demos with, although I hope to post the rest of v6
soon).
The biggest diffs compared to v4/v5 are addressing many of John
Ferlan's grammar suggestions, removing some TODO items from the public
API (although implementing those changes, such as the new
VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE, is still on my todo list),
splitting some large patches (checkpoints and backups are now
separated), moving the backup APIs into libvirt-domain.c instead of
piggybacking on libvirt-domain-checkpoint.c, and adding 2 more API
(virDomainSnapshotCreateXML2 to create a checkpoint at the same time
as a snapshot; virDomainListJobIds to learn the job ids of all
currently running backup jobs [the initial implementation will only
ever have job id 1 due to qemu 4.0 limitations, but the API was
designed with future expansion in mind]). I've also got some
preliminary patches to snapshot in this posting based on things
noticed while working checkpoints.
001/9:[down] 'Revert "snapshot: Add virDomainSnapshotObjListParse"'
002/9:[down] 'Revert "snapshot: Add virDomainSnapshotObjListFormat"'
003/9:[down] 'snapshot: Various doc tweaks'
004/9:[0005] [FC] 'backup: Introduce virDomainCheckpointPtr'
005/9:[down] 'backup: Document new XML for checkpoints'
006/9:[0562] [FC] 'backup: Document new XML for backups'
007/9:[0173] [FC] 'backup: Introduce virDomainCheckpoint APIs'
008/9:[0296] [FC] 'backup: Introduce virDomainBackup APIs'
009/9:[0039] [FC] 'backup: Document nuances between different state capture APIs'
Eric Blake (9):
Revert "snapshot: Add virDomainSnapshotObjListParse"
Revert "snapshot: Add virDomainSnapshotObjListFormat"
snapshot: Various doc tweaks
backup: Introduce virDomainCheckpointPtr
backup: Document new XML for checkpoints
backup: Document new XML for backups
backup: Introduce virDomainCheckpoint APIs
backup: Introduce virDomainBackup APIs
backup: Document nuances between different state capture APIs
include/libvirt/virterror.h | 7 +-
src/util/virerror.c | 12 +-
include/libvirt/libvirt-domain-checkpoint.h | 161 ++++
include/libvirt/libvirt-domain-snapshot.h | 7 +-
include/libvirt/libvirt-domain.h | 59 +-
include/libvirt/libvirt.h | 3 +-
src/conf/snapshot_conf.h | 7 -
src/conf/virdomainmomentobjlist.h | 5 +-
src/conf/virdomainsnapshotobjlist.h | 13 -
src/datatypes.h | 33 +-
src/driver-hypervisor.h | 87 ++-
src/qemu/qemu_blockjob.h | 1 +
docs/Makefile.am | 3 +
docs/apibuild.py | 2 +
docs/docs.html.in | 10 +-
docs/domainstatecapture.html.in | 313 ++++++++
docs/format.html.in | 2 +
docs/formatbackup.html.in | 181 +++++
docs/formatcheckpoint.html.in | 204 +++++
docs/formatsnapshot.html.in | 82 +-
docs/index.html.in | 4 +-
docs/schemas/domainbackup.rng | 219 ++++++
docs/schemas/domaincheckpoint.rng | 94 +++
examples/object-events/event-test.c | 3 +
libvirt.spec.in | 3 +
mingw-libvirt.spec.in | 6 +
po/POTFILES | 1 +
src/Makefile.am | 2 +
src/conf/domain_conf.c | 2 +-
src/conf/snapshot_conf.c | 2 +-
src/conf/virdomainsnapshotobjlist.c | 166 ----
src/datatypes.c | 63 +-
src/libvirt-domain-checkpoint.c | 749 +++++++++++++++++++
src/libvirt-domain-snapshot.c | 311 ++++----
src/libvirt-domain.c | 289 ++++++-
src/libvirt_private.syms | 4 +-
src/libvirt_public.syms | 21 +
tests/Makefile.am | 4 +
tests/domainbackupxml2xmlin/backup-pull.xml | 9 +
tests/domainbackupxml2xmlin/backup-push.xml | 9 +
tests/domainbackupxml2xmlin/empty.xml | 1 +
tests/domainbackupxml2xmlout/backup-pull.xml | 9 +
tests/domainbackupxml2xmlout/backup-push.xml | 9 +
tests/domainbackupxml2xmlout/empty.xml | 7 +
tests/domaincheckpointxml2xmlin/empty.xml | 1 +
tests/domaincheckpointxml2xmlin/sample.xml | 7 +
tests/domaincheckpointxml2xmlout/empty.xml | 10 +
tests/domaincheckpointxml2xmlout/sample.xml | 16 +
tests/virschematest.c | 4 +
tools/virsh-domain.c | 8 +-
50 files changed, 2794 insertions(+), 431 deletions(-)
create mode 100644 include/libvirt/libvirt-domain-checkpoint.h
create mode 100644 docs/domainstatecapture.html.in
create mode 100644 docs/formatbackup.html.in
create mode 100644 docs/formatcheckpoint.html.in
create mode 100644 docs/schemas/domainbackup.rng
create mode 100644 docs/schemas/domaincheckpoint.rng
create mode 100644 src/libvirt-domain-checkpoint.c
create mode 100644 tests/domainbackupxml2xmlin/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlin/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlin/empty.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlout/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlin/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlin/sample.xml
create mode 100644 tests/domaincheckpointxml2xmlout/empty.xml
create mode 100644 tests/domaincheckpointxml2xmlout/sample.xml
--
2.20.1
5 years, 9 months
[libvirt] [PATCH 1/2] qemu: Fix "boolen" typo in API doc
by Christophe Fergeau
This also adjusts the argument name which should be 'isListen' in both
cases rather than 'listen'.
Signed-off-by: Christophe Fergeau <cfergeau(a)redhat.com>
---
src/qemu/qemu_command.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index f81d20e5f7..bfa7211894 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -876,7 +876,7 @@ qemuBuildRBDSecinfoURI(virBufferPtr buf,
/* qemuBuildTLSx509BackendProps:
* @tlspath: path to the TLS credentials
- * @listen: boolen listen for client or server setting
+ * @isListen: boolen listen for client or server setting
* @verifypeer: boolean to enable peer verification (form of authorization)
* @alias: alias for the TLS credentials object
* @secalias: if one exists, the alias of the security object for passwordid
@@ -917,7 +917,7 @@ qemuBuildTLSx509BackendProps(const char *tlspath,
/* qemuBuildTLSx509CommandLine:
* @cmd: Pointer to command
* @tlspath: path to the TLS credentials
- * @listen: boolen listen for client or server setting
+ * @isListen: boolean listen for client or server setting
* @verifypeer: boolean to enable peer verification (form of authorization)
* @certEncSecretAlias: alias of a 'secret' object for decrypting TLS private key
* (optional)
--
2.21.0
5 years, 9 months
[libvirt] [PATCH] news: Document parallel migration
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
docs/news.xml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 83e965e0f3..2067830848 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -104,6 +104,18 @@
E.g. <code><controller type='xenbus' maxGrantFrames='64'/></code>
</description>
</change>
+ <change>
+ <summary>
+ qemu: Add support for parallel migration
+ </summary>
+ <description>
+ With QEMU 4.0.0 libvirt can enable parallel migration which causes
+ the memory pages to be processed in parallel by several threads and
+ sent to the destination host using several connections at the same
+ time. This may increase migration speed in case a single thread is
+ unable to saturate the network link.
+ </description>
+ </change>
</section>
<section title="Removed features">
<change>
--
2.21.0
5 years, 9 months