[PATCH 0/5] qemu: backup: Memory handling fixes
by Peter Krempa
See individual patches.
Peter Krempa (5):
qemuBackupBegin: Don't leak 'def' on early failures
qemu: backup: Initialize 'store' source properly and just once
qemuBackupDiskStarted: Fix improper dereference of array
qemuBackupDiskDataCleanupOne: Don't exit early when the job has
started
qemuBackupDiskDataCleanupOne: Free 'incrementalBitmap'
src/qemu/qemu_backup.c | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
--
2.26.2
4 years, 6 months
[libvirt PATCH] qemu: format 'ramfb' attribute for mediated devices
by Jonathon Jongsma
It's possible to use ramfb as the boot display of an assigned vgpu
device. This was introduced in 4b95738c, but unfortunately the attribute
was not formatted into the xml output for such a device. This patch
fixes that oversight and adds a xml2xml test to verify proper behavior.
https://bugzilla.redhat.com/show_bug.cgi?id=1847791
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
src/conf/domain_conf.c | 3 ++
...stdev-mdev-display-ramfb.x86_64-latest.xml | 44 +++++++++++++++++++
.../hostdev-mdev-display-ramfb.xml | 33 ++++++++++++++
tests/qemuxml2xmltest.c | 1 +
4 files changed, 81 insertions(+)
create mode 100644 tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.x86_64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.xml
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e9336fd72d..e942dc41ae 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -28312,6 +28312,9 @@ virDomainHostdevDefFormat(virBufferPtr buf,
if (mdevsrc->display != VIR_TRISTATE_SWITCH_ABSENT)
virBufferAsprintf(buf, " display='%s'",
virTristateSwitchTypeToString(mdevsrc->display));
+ if (mdevsrc->ramfb != VIR_TRISTATE_SWITCH_ABSENT)
+ virBufferAsprintf(buf, " ramfb='%s'",
+ virTristateSwitchTypeToString(mdevsrc->display));
}
}
diff --git a/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.x86_64-latest.xml b/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.x86_64-latest.xml
new file mode 100644
index 0000000000..c134400486
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.x86_64-latest.xml
@@ -0,0 +1,44 @@
+<domain type='qemu'>
+ <name>QEMUGuest2</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i386</emulator>
+ <controller type='usb' index='0' model='piix3-uhci'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc' port='-1' autoport='yes'>
+ <listen type='address'/>
+ </graphics>
+ <video>
+ <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </video>
+ <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on' ramfb='on'>
+ <source>
+ <address uuid='53764d0e-85a0-42b4-af5c-2046b460b1dc'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </hostdev>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.xml b/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.xml
new file mode 100644
index 0000000000..6fdc477ca2
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/hostdev-mdev-display-ramfb.xml
@@ -0,0 +1,33 @@
+<domain type='qemu'>
+ <name>QEMUGuest2</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i386</emulator>
+ <controller type='usb' index='0'>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='ide' index='0'>
+ </controller>
+ <graphics type='vnc'/>
+ <hostdev mode='subsystem' type='mdev' model='vfio-pci' display='on' ramfb='on'>
+ <source>
+ <address uuid='53764d0e-85a0-42b4-af5c-2046b460b1dc'/>
+ </source>
+ </hostdev>
+ <video>
+ <model type='qxl' heads='1'/>
+ </video>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 022f6786b9..e3919821af 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -529,6 +529,7 @@ mymain(void)
QEMU_CAPS_VFIO_PCI_DISPLAY,
QEMU_CAPS_DEVICE_VFIO_PCI,
QEMU_CAPS_VNC);
+ DO_TEST_CAPS_LATEST("hostdev-mdev-display-ramfb");
DO_TEST("pci-rom", NONE);
DO_TEST("pci-rom-disabled", NONE);
DO_TEST("pci-rom-disabled-invalid", NONE);
--
2.21.3
4 years, 6 months
[libvirt PATCH 00/23] remove use of terms 'whitelist'/'blacklist' and 'master'/'slave'
by Daniel P. Berrangé
The terms "whitelist" / "blacklist" perpetuate the notion that
white is good and black is bad[1]. Their usage is trivially
eliminated from libvirt with a variety of alternative terms.
The replacements are more applicable to the usage context in
most cases. The only exceptions are
• Libvirt needs to keep "seccomp-blacklist" back compat for
running guest capabilities on upgrade
• kmod uses "blacklist" for modprobe config file key
The terms "master" / "slave" have inescapable historical context
that makes them a bad choice for metaphors in software[1]. Again
there are a variety of alternatives that can be used, many of which
are more applicable to the usage context. Eliminating all usage
though is not practical, due to libvirt's need to interface with
external systems, where the terminology is part of the formal API.
The unfixable exceptions are:
• Libvirt uses slave=NNN master=NNN in XML schema for FreeBSD nmdm devs
• Linux kernel sysfs uses "slave_$NIC" for bonding NIC members
• Linux kernel mount options MS_SLAVE for mount propagation
• QEMU uses "slave" in many device/property names
• Jenkins website calls the libvirt plugin "libvirt-slave"
• VirtualBox uses 'Slave' in many config file attributes
Note, this doesn't attempt to remove cases of the word "master" which
are used in isolation, only those paired with usage of the word "slave".
Remaining usage of "master" needs evaluating, as some of these contexts
are none the less implicitly associated with the "master/slave" concept.
Nothing in the po/ directory is updated. This will be updated when
we refresh translations at time of freeze.
There should be no functional change in any of these patches with the
exception of the patch tweaking matching for NICs in the interface
driver.
[1] There are many docs on the web covering this in detail, with
one fairly clear description being:
https://tools.ietf.org/id/draft-knodel-terminology-00.html
Daniel P. Berrangé (23):
scripts: remove use of the term 'whitelist' from build helpers
rpc: remove use of the term 'whitelist' from RPC code
cgroup: remove use of the term 'whitelist' from cgroup code
qemu: remove use of the terms 'whitelist' and 'blacklist' from CPU
code
qemu: remove use of the term 'blacklist' in seccomp capability
util: use short form -g arg to scsi_id
docs: remove use of the term 'whitelist' from documentation
util: rename method to virKModIsProhibited
nodedev: remove use of the term 'blacklist' from enumeration code
build: remove use of the term 'blacklist' from helper files
src: remove use of the term 'whitelist' from remaining code
interface: use a constant for the sysfs bond device file prefix
interface: remove most use of the term 'slave' from bonding code
docs: remove use of the term 'enslaved' wrt tap & bridge devices
tools: remove use of the term 'slave' in code dealing with bridges
util: remove use of the terms 'master' and 'slave' in PTY code
qemu: remove use of the terms 'master' and 'slave' when iterating CPUs
lxc: remove use of the terms 'master' and 'slave' in PTY setup
docs: update link to the libvirt jenkins plugin
docs: remove use of the term 'slave' in Jenkins agent docs
conf: remove use of the terms 'master' and 'slave' in mndm config
lxc: replace use of term 'slave' filesystem mount setup
build: add syntax-check rules for undesirable terms
build-aux/syntax-check.mk | 18 ++++-
docs/apps.html.in | 6 +-
docs/drvqemu.html.in | 12 ++--
docs/firewall.html.in | 6 +-
docs/formatdomain.html.in | 4 +-
docs/internals/rpc.html.in | 9 +--
docs/kbase/qemu-passthrough-security.rst | 3 +-
docs/schemas/interface.rng | 2 +-
m4/virt-compile-warnings.m4 | 2 +-
scripts/check-aclrules.py | 8 +--
scripts/check-file-access.py | 16 ++---
scripts/mock-noinline.py | 1 -
src/bhyve/bhyve_driver.c | 2 +-
src/bhyve/bhyve_parse_command.c | 20 +++---
src/conf/domain_conf.c | 24 +++----
src/conf/domain_conf.h | 4 +-
src/interface/interface_backend_udev.c | 65 +++++++++----------
src/libvirt.c | 2 +-
src/libvirt_private.syms | 2 +-
src/lxc/lxc_cgroup.c | 2 +-
src/lxc/lxc_controller.c | 20 +++---
src/node_device/node_device_udev.c | 6 +-
src/qemu/qemu.conf | 4 +-
src/qemu/qemu_capabilities.c | 22 +++----
src/qemu/qemu_capabilities.h | 6 +-
src/qemu/qemu_cgroup.c | 2 +-
src/qemu/qemu_command.c | 6 +-
src/qemu/qemu_conf.c | 4 +-
src/qemu/qemu_domain.c | 10 ++-
src/qemu/qemu_monitor.c | 46 ++++++-------
src/remote/libvirtd.conf.in | 6 +-
src/remote/remote_daemon_dispatch.c | 4 +-
src/rpc/gendispatch.pl | 2 +-
src/rpc/virnetsaslcontext.c | 10 +--
src/rpc/virnetsaslcontext.h | 2 +-
src/rpc/virnettlscontext.c | 32 ++++-----
src/rpc/virnettlscontext.h | 4 +-
src/util/vircgroup.c | 2 +-
src/util/virfile.c | 42 ++++++------
src/util/virkmod.c | 24 +++----
src/util/virkmod.h | 2 +-
src/util/virnetdevtap.c | 2 +-
src/util/virpci.c | 4 +-
src/util/virprocess.c | 2 +-
src/util/virstoragefile.c | 4 +-
src/vbox/vbox_common.c | 4 +-
tests/Makefile.am | 4 +-
...hitelist.txt => permitted_file_access.txt} | 6 +-
.../caps_2.11.0.s390x.xml | 2 +-
.../caps_2.11.0.x86_64.xml | 2 +-
.../caps_2.12.0.aarch64.xml | 2 +-
.../caps_2.12.0.ppc64.xml | 2 +-
.../caps_2.12.0.s390x.xml | 2 +-
.../caps_2.12.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 2 +-
.../caps_3.0.0.riscv32.xml | 2 +-
.../caps_3.0.0.riscv64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 2 +-
.../caps_3.0.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 2 +-
.../caps_3.1.0.x86_64.xml | 2 +-
.../caps_4.0.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 2 +-
.../caps_4.0.0.riscv32.xml | 2 +-
.../caps_4.0.0.riscv64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 2 +-
.../caps_4.0.0.x86_64.xml | 2 +-
.../caps_4.1.0.x86_64.xml | 2 +-
.../caps_4.2.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 2 +-
.../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 2 +-
.../caps_4.2.0.x86_64.xml | 2 +-
.../caps_5.0.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 +-
.../caps_5.0.0.riscv64.xml | 2 +-
.../caps_5.0.0.x86_64.xml | 2 +-
.../caps_5.1.0.x86_64.xml | 2 +-
.../qemustatusxml2xmldata/backup-pull-in.xml | 2 +-
.../blockjob-blockdev-in.xml | 2 +-
tests/qemuxml2argvtest.c | 2 +-
tests/virconfdata/libvirtd.conf | 6 +-
tests/virconfdata/libvirtd.out | 6 +-
tools/virsh-interface.c | 16 ++---
83 files changed, 301 insertions(+), 281 deletions(-)
rename tests/{file_access_whitelist.txt => permitted_file_access.txt} (82%)
--
2.24.1
4 years, 6 months
[libvirt PATCH] qemu: don't continue loading caps if outdated
by Daniel P. Berrangé
The XML format used for QEMU capabilities is not required to be
stable across releases, as we invalidate the cache whenever the
libvirt binary changes.
We none the less always try to parse te entire XML file before
we do any validity checks. Thus if we change the format of any
part of the data, or change permitted values for enums, then
libvirtd logs will be spammed with errors.
These are not in fact errors, but an expected scenario.
This change makes the loading code validate the cache timestamp
against the libvirtd timestamp immediately. If they don't match
then we stop loading the rest of the XML file.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 48 ++++++++++++++++++++++++++----------
src/util/virfilecache.c | 11 ++++++---
src/util/virfilecache.h | 11 ++++++---
tests/virfilecachetest.c | 3 ++-
4 files changed, 52 insertions(+), 21 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 310be800e2..8694db2463 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -4205,6 +4205,8 @@ virQEMUCapsParseSEVInfo(virQEMUCapsPtr qemuCaps, xmlXPathContextPtr ctxt)
* <machine name='pc-1.0' alias='pc' hotplugCpus='yes' maxCpus='4' default='yes' numaMemSupported='yes'/>
* ...
* </qemuCaps>
+ *
+ * Returns 0 on success, 1 if outdated, -1 on error
*/
int
virQEMUCapsLoadCache(virArch hostArch,
@@ -4237,6 +4239,30 @@ virQEMUCapsLoadCache(virArch hostArch,
goto cleanup;
}
+ if (virXPathLongLong("string(./selfctime)", ctxt, &l) < 0) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("missing selfctime in QEMU capabilities XML"));
+ goto cleanup;
+ }
+ qemuCaps->libvirtCtime = (time_t)l;
+
+ qemuCaps->libvirtVersion = 0;
+ if (virXPathULong("string(./selfvers)", ctxt, &lu) == 0)
+ qemuCaps->libvirtVersion = lu;
+
+ if (qemuCaps->libvirtCtime != virGetSelfLastChanged() ||
+ qemuCaps->libvirtVersion != LIBVIR_VERSION_NUMBER) {
+ VIR_DEBUG("Outdated capabilities in %s: libvirt changed "
+ "(%lld vs %lld, %lu vs %lu), stopping load",
+ qemuCaps->binary,
+ (long long)qemuCaps->libvirtCtime,
+ (long long)virGetSelfLastChanged(),
+ (unsigned long)qemuCaps->libvirtVersion,
+ (unsigned long)LIBVIR_VERSION_NUMBER);
+ ret = 1;
+ goto cleanup;
+ }
+
if (!(str = virXPathString("string(./emulator)", ctxt))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing emulator in QEMU capabilities cache"));
@@ -4256,17 +4282,6 @@ virQEMUCapsLoadCache(virArch hostArch,
}
qemuCaps->ctime = (time_t)l;
- if (virXPathLongLong("string(./selfctime)", ctxt, &l) < 0) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("missing selfctime in QEMU capabilities XML"));
- goto cleanup;
- }
- qemuCaps->libvirtCtime = (time_t)l;
-
- qemuCaps->libvirtVersion = 0;
- if (virXPathULong("string(./selfvers)", ctxt, &lu) == 0)
- qemuCaps->libvirtVersion = lu;
-
if ((n = virXPathNodeSet("./flag", ctxt, &nodes)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to parse qemu capabilities flags"));
@@ -5489,16 +5504,23 @@ virQEMUCapsNewData(const char *binary,
static void *
virQEMUCapsLoadFile(const char *filename,
const char *binary,
- void *privData)
+ void *privData,
+ bool *outdated)
{
virQEMUCapsPtr qemuCaps = virQEMUCapsNewBinary(binary);
virQEMUCapsCachePrivPtr priv = privData;
+ int ret;
if (!qemuCaps)
return NULL;
- if (virQEMUCapsLoadCache(priv->hostArch, qemuCaps, filename) < 0)
+ ret = virQEMUCapsLoadCache(priv->hostArch, qemuCaps, filename);
+ if (ret < 0)
goto error;
+ if (ret == 1) {
+ *outdated = true;
+ goto error;
+ }
return qemuCaps;
diff --git a/src/util/virfilecache.c b/src/util/virfilecache.c
index aecabf173d..2162917b11 100644
--- a/src/util/virfilecache.c
+++ b/src/util/virfilecache.c
@@ -130,6 +130,7 @@ virFileCacheLoad(virFileCachePtr cache,
g_autofree char *file = NULL;
int ret = -1;
void *loadData = NULL;
+ bool outdated = false;
*data = NULL;
@@ -148,10 +149,12 @@ virFileCacheLoad(virFileCachePtr cache,
goto cleanup;
}
- if (!(loadData = cache->handlers.loadFile(file, name, cache->priv))) {
- VIR_WARN("Failed to load cached data from '%s' for '%s': %s",
- file, name, virGetLastErrorMessage());
- virResetLastError();
+ if (!(loadData = cache->handlers.loadFile(file, name, cache->priv, &outdated))) {
+ if (!outdated) {
+ VIR_WARN("Failed to load cached data from '%s' for '%s': %s",
+ file, name, virGetLastErrorMessage());
+ virResetLastError();
+ }
ret = 0;
goto cleanup;
}
diff --git a/src/util/virfilecache.h b/src/util/virfilecache.h
index 006a9717cb..9a7edf07e6 100644
--- a/src/util/virfilecache.h
+++ b/src/util/virfilecache.h
@@ -62,15 +62,20 @@ typedef void *
* @filename: name of a file with cached data
* @name: name of the cached data
* @priv: private data created together with cache
+ * @outdated: set to true if data was outdated
*
- * Loads the cached data from a file @filename.
+ * Loads the cached data from a file @filename. If
+ * NULL is returned, then @oudated indicates whether
+ * this was due to the data being outdated, or an
+ * error loading the cache.
*
- * Returns cached data object or NULL on error.
+ * Returns cached data object or NULL on outdated data or error.
*/
typedef void *
(*virFileCacheLoadFilePtr)(const char *filename,
const char *name,
- void *priv);
+ void *priv,
+ bool *outdated);
/**
* virFileCacheSaveFilePtr:
diff --git a/tests/virfilecachetest.c b/tests/virfilecachetest.c
index 6d280b3bec..34e0d0ab2f 100644
--- a/tests/virfilecachetest.c
+++ b/tests/virfilecachetest.c
@@ -110,7 +110,8 @@ testFileCacheNewData(const char *name G_GNUC_UNUSED,
static void *
testFileCacheLoadFile(const char *filename,
const char *name G_GNUC_UNUSED,
- void *priv G_GNUC_UNUSED)
+ void *priv G_GNUC_UNUSED,
+ bool *outdated G_GNUC_UNUSED)
{
testFileCacheObjPtr obj;
char *data;
--
2.24.1
4 years, 6 months
[libvirt PATCH 0/2] util: simplify virKMod code
by Daniel P. Berrangé
Daniel P. Berrangé (2):
src: remove redundant arg to virKModLoad
util: remove unused virKModConfig method
src/libvirt_private.syms | 1 -
src/util/virfile.c | 2 +-
src/util/virkmod.c | 27 ++-------------
src/util/virkmod.h | 3 +-
src/util/virpci.c | 2 +-
tests/virkmodtest.c | 71 ++++++----------------------------------
6 files changed, 16 insertions(+), 90 deletions(-)
--
2.24.1
4 years, 6 months
[PATCH v3 00/19] audio: deprecate -soundhw
by Gerd Hoffmann
v2:
- use g_assert_not_reached() for stubs.
- add deprecation notice.
v3:
- rebase to latest master.
- adapt to armbru's device initialization changes.
Gerd Hoffmann (19):
stubs: add isa_create_simple
stubs: add pci_create_simple
audio: add deprecated_register_soundhw
audio: deprecate -soundhw ac97
audio: deprecate -soundhw es1370
audio: deprecate -soundhw adlib
audio: deprecate -soundhw cs4231a
audio: deprecate -soundhw gus
audio: deprecate -soundhw sb16
audio: deprecate -soundhw hda
audio: deprecate -soundhw pcspk
audio: add soundhw deprecation notice
pc_basic_device_init: pass PCMachineState
pc_basic_device_init: drop has_pit arg
pc_basic_device_init: drop no_vmport arg
softmmu: initialize spice and audio earlier
audio: rework pcspk_init()
audio: create pcspk device early, add audiodev alias.
audio: set default value for pcspk.iobase property
include/hw/audio/pcspk.h | 12 ++----------
include/hw/audio/soundhw.h | 2 ++
include/hw/i386/pc.h | 6 +++---
hw/audio/ac97.c | 9 ++-------
hw/audio/adlib.c | 8 +-------
hw/audio/cs4231a.c | 8 +-------
hw/audio/es1370.c | 9 ++-------
hw/audio/gus.c | 8 +-------
hw/audio/intel-hda.c | 3 +++
hw/audio/pcspk.c | 26 ++++++++++++++++++++++----
hw/audio/sb16.c | 9 ++-------
hw/audio/soundhw.c | 24 +++++++++++++++++++++++-
hw/i386/pc.c | 14 ++++++++------
hw/i386/pc_piix.c | 3 +--
hw/i386/pc_q35.c | 3 +--
hw/isa/i82378.c | 2 +-
qdev-monitor.c | 2 ++
softmmu/vl.c | 14 ++++++++------
stubs/isa-bus.c | 7 +++++++
stubs/pci-bus.c | 7 +++++++
docs/system/deprecated.rst | 9 +++++++++
stubs/Makefile.objs | 2 ++
22 files changed, 110 insertions(+), 77 deletions(-)
create mode 100644 stubs/isa-bus.c
create mode 100644 stubs/pci-bus.c
--
2.18.4
4 years, 6 months
CFP: KVM Forum 2020
by Paolo Bonzini
================================================================
KVM Forum 2020: Call For Participation
October 28-30, 2020 - Convention Centre Dublin - Dublin, Ireland
(All submissions must be received before June 15, 2020 at 23:59 PST)
=================================================================
KVM Forum is an annual event that presents a rare opportunity for
developers and users to meet, discuss the state of Linux virtualization
technology, and plan for the challenges ahead. This highly technical
conference unites the developers who drive KVM development and the users
who depend on KVM as part of their offerings, or to power their data
centers and clouds.
Sessions include updates on the state of the KVM virtualization stack,
planning for the future, and many opportunities for attendees to
collaborate. After more than ten years in the mainline kernel, KVM
continues to be a critical part of the FOSS cloud infrastructure. Come
join us in continuing to improve the KVM ecosystem.
We understand that these are uncertain times and we are continuously
monitoring the COVID-19/Novel Coronavirus situation. Our attendees'
safety is of the utmost importance. If we feel it is not safe to meet in
person, we will turn the event into a virtual experience. We hope to
announce this at the same time as the speaker notification. Speakers
will still be expected to attend if a physical event goes ahead, but we
understand that exceptional circumstances might arise after speakers are
accepted and we will do our best to accommodate such circumstances.
Based on these factors, we encourage you to submit and reach out to us
should you have any questions. The program committee may be contacted as
a group via email: kvm-forum-2020-pc(a)redhat.com.
SUGGESTED TOPICS
----------------
* Scaling, latency optimizations, performance tuning
* Hardening and security
* New features
* Testing
KVM and the Linux Kernel:
* Nested virtualization
* Resource management (CPU, I/O, memory) and scheduling
* VFIO: IOMMU, SR-IOV, virtual GPU, etc.
* Networking: Open vSwitch, XDP, etc.
* virtio and vhost
* Architecture ports and new processor features
QEMU:
* Management interfaces: QOM and QMP
* New devices, new boards, new architectures
* New storage features
* High availability, live migration and fault tolerance
* Emulation and TCG
* Firmware: ACPI, UEFI, coreboot, U-Boot, etc.
Management & Infrastructure
* Managing KVM: Libvirt, OpenStack, oVirt, KubeVirt, etc.
* Storage: Ceph, Gluster, SPDK, etc.
* Network Function Virtualization: DPDK, OPNFV, OVN, etc.
* Provisioning
SUBMITTING YOUR PROPOSAL
------------------------
Abstracts due: June 15, 2020
Please submit a short abstract (~150 words) describing your presentation
proposal. Slots vary in length up to 45 minutes.
Submit your proposal here:
https://events.linuxfoundation.org/kvm-forum/program/cfp/
Please only use the categories "presentation" and "panel discussion"
You will receive a notification whether or not your presentation
proposal was accepted by August 17, 2020.
Speakers will receive a complimentary pass for the event. In case your
submission has multiple presenters, only the primary speaker for a
proposal will receive a complimentary event pass. For panel discussions,
all panelists will receive a complimentary event pass.
TECHNICAL TALKS
A good technical talk should not just report on what has happened over
the last year; it should present a concrete problem and how it impacts
the user and/or developer community. Whenever applicable, focus on work
that needs to be done, difficulties that haven't yet been solved, and on
decisions that other developers should be aware of. Summarizing recent
developments is okay but it should not be more than a small portion of
the overall talk.
END-USER TALKS
One of the big challenges as developers is to know what, where and how
people actually use our software. We will reserve a few slots for end
users talking about their deployment challenges and achievements.
If you are using KVM in production you are encouraged submit a speaking
proposal. Simply mark it as an end-user talk. As an end user, this is a
unique opportunity to get your input to developers.
PANEL DISCUSSIONS
If you are proposing a panel discussion, please make sure that you list
all of your potential panelists in your the abstract. We will request
full biographies if a panel is accepted.
HANDS-ON / BOF SESSIONS
We will reserve some time for people to get together and discuss
strategic decisions as well as other topics that are best solved within
smaller groups.
These sessions will be announced during the event. If you are interested
in organizing such a session, please add it to the list at
http://www.linux-kvm.org/page/KVM_Forum_2020_BOF
Let people you think who might be interested know about your BOF, and
encourage them to add their names to the wiki page as well. Please add
your ideas to the list before KVM Forum starts.
HOTEL / TRAVEL
--------------
This year's event will take place at the Conference Center Dublin. For
information on hotels close to the conference, please visit
https://events.linuxfoundation.org/kvm-forum/attend/venue-travel/.
Information on conference hotel blocks will be available later in
Spring 2020.
DATES TO REMEMBER
-----------------
* CFP Opens: Monday, April 27, 2020
* CFP Closes: Monday, June 15 at 11:59 PM PST
* CFP Notifications: Monday, August 17
* Schedule Announcement: Thursday, August 20
* Slide Due Date: Monday, October 26
* Event Dates: Wednesday, October 28 – Friday, October 30
Thank you for your interest in KVM. We're looking forward to your
submissions and, if the conditions will permit it, to seeing you at the
KVM Forum 2020 in October!
-your KVM Forum 2020 Program Committee
Please contact us with any questions or comments at
kvm-forum-2020-pc(a)redhat.com
4 years, 6 months
[PATCH 00/32] qemu: backup: Rewrite/simplify internals and document semantics
by Peter Krempa
Simplify how we approach bitmap handling to increase robustness and
understanding of the code. Additionally document intricacies of how we
approach handling of bitmaps so that in cases when users decide to
do snapshots outside of libvirt they can re-create the bitmaps so that
they will still work with backups (requires new qemu-img).
I'll also follow up documenting implicationsof blockjobs on bitmaps
later.
To fetch this including a commit which allows testing:
git fetch https://gitlab.com/pipo.sk/libvirt.git checkpoint-rewrite-and-document
This doesn't require any special qemu patches.
Note that this shares many patches from my previous posting which tried
to make use of 'block-dirty-bitmap-populate', but keeps explicit bitmap
tracking for now. We'll be able to revisit use of the blockjob if the
qemu work will continue somehow.
Peter Krempa (32):
qemu: backup: Split up code traversing checkpoint list looking for
bitmaps
qemu: backup: Fix backup of disk skipped in an intermediate checkpoint
conf: backup: Store incremental backup checkpoint name per-disk
qemu: backup: Move fetching of checkpoint list for incremental backup
qemublocktest: Add 'empty' test case for bitmaps
qemublocktest: Add 'empty' case for incremental backup test
qemublocktest: Add 'empty' case for checkpoint deletion
qemublocktest: Add 'empty' case for blockcopy bitmap handling test
qemublocktest: Add 'empty' case for checkpoint bitmap handling
qemublocktest: Disable testcases for all bitmap handling
qemublocktest: Delete 'synthetic' bitmap test cases
qemublocktest: Extract printing of nodename list
qemu: checkpoint: Don't chain bitmaps for checkpoints
qemublocktest: Replace 'basic' bitmap detection test case data
qemublocktest: Replace 'snapshots' bitmap detection test case data
qemuBlockBitmapChainIsValid: Adjust to new semantics of bitmaps
qemublocktest: Re-add bitmap validation for 'basic' and 'snapshots'
cases
qemublocktest: Add new 'synthetic' bitmap detection and validation
test case
qemu: checkpoint: Don't merge checkpoints during deletion
qemublocktest: Rename TEST_CHECKPOINT_DELETE_MERGE to
TEST_CHECKPOINT_DELETE
qemublocktest: Re-introduce testing of checkpoint deletion
qemu: block: Add universal helper for merging dirty bitmaps for all
scenarios
qemu: backup: Rewrite backup bitmap handling to the new bitmap
semantics
qemublocktest: Add 'basic' tests for backup bitmap handling
qemublocktest: Add 'snapshots' tests for backup bitmap handling
qemu: Rewrite bitmap handling for block commit
qemublocktest: Add 'basic' tests for commit bitmap handling
qemublocktest: Add 'snapshots' tests for block commit bitmap handling
qemu: blockjob: Remove 'disabledBitmapsBase' field from commit job
private data
qemu: Rewrite bitmap handling for block copy
qemublocktest: Add test cases for handling bitmaps during block-copy
kbase: Add document outlining internals of incremental backup in qemu
docs/kbase.html.in | 3 +
docs/kbase/incrementalbackupinternals.rst | 210 +++
src/conf/backup_conf.c | 8 +
src/conf/backup_conf.h | 1 +
src/qemu/qemu_backup.c | 199 +--
src/qemu/qemu_backup.h | 12 +-
src/qemu/qemu_block.c | 500 +++---
src/qemu/qemu_block.h | 21 +-
src/qemu/qemu_blockjob.c | 109 +-
src/qemu/qemu_blockjob.h | 3 -
src/qemu/qemu_checkpoint.c | 174 +--
src/qemu/qemu_checkpoint.h | 1 -
src/qemu/qemu_domain.c | 22 -
src/qemu/qemu_driver.c | 70 +-
tests/qemublocktest.c | 254 ++-
.../backupmerge/basic-deep-out.json | 35 +-
.../backupmerge/basic-flat-out.json | 23 +-
.../backupmerge/basic-intermediate-out.json | 23 +-
.../backupmerge/empty-out.json | 3 +
.../backupmerge/snapshot-deep-out.json | 38 -
.../backupmerge/snapshot-flat-out.json | 6 -
.../snapshot-intermediate-out.json | 14 -
.../backupmerge/snapshots-deep-out.json | 41 +
.../backupmerge/snapshots-flat-out.json | 25 +
.../snapshots-intermediate-out.json | 29 +
tests/qemublocktestdata/bitmap/basic.json | 229 +--
tests/qemublocktestdata/bitmap/basic.out | 8 +-
tests/qemublocktestdata/bitmap/empty.json | 70 +
tests/qemublocktestdata/bitmap/empty.out | 1 +
.../bitmap/snapshots-synthetic-broken.json | 837 ----------
.../bitmap/snapshots-synthetic-broken.out | 14 -
.../snapshots-synthetic-checkpoint.json | 827 ----------
.../bitmap/snapshots-synthetic-checkpoint.out | 13 -
tests/qemublocktestdata/bitmap/snapshots.json | 1382 +++++++----------
tests/qemublocktestdata/bitmap/snapshots.out | 13 +-
tests/qemublocktestdata/bitmap/synthetic.json | 606 ++++++--
tests/qemublocktestdata/bitmap/synthetic.out | 19 +-
.../bitmapblockcommit/basic-1-2 | 54 +-
.../bitmapblockcommit/basic-1-3 | 54 +-
.../bitmapblockcommit/basic-2-3 | 1 -
.../qemublocktestdata/bitmapblockcommit/empty | 1 +
.../bitmapblockcommit/snapshots-1-2 | 76 +-
.../bitmapblockcommit/snapshots-1-3 | 77 +-
.../bitmapblockcommit/snapshots-1-4 | 99 +-
.../bitmapblockcommit/snapshots-1-5 | 103 +-
.../bitmapblockcommit/snapshots-2-3 | 48 +-
.../bitmapblockcommit/snapshots-2-4 | 58 +-
.../bitmapblockcommit/snapshots-2-5 | 62 +-
.../bitmapblockcommit/snapshots-3-4 | 34 +-
.../bitmapblockcommit/snapshots-3-5 | 42 +-
.../bitmapblockcommit/snapshots-4-5 | 17 -
.../snapshots-synthetic-broken-1-2 | 57 -
.../snapshots-synthetic-broken-1-3 | 112 --
.../snapshots-synthetic-broken-1-4 | 119 --
.../snapshots-synthetic-broken-1-5 | 119 --
.../snapshots-synthetic-broken-2-3 | 89 --
.../snapshots-synthetic-broken-2-4 | 96 --
.../snapshots-synthetic-broken-2-5 | 96 --
.../snapshots-synthetic-broken-3-4 | 27 -
.../snapshots-synthetic-broken-3-5 | 27 -
.../snapshots-synthetic-broken-4-5 | 20 -
.../bitmapblockcopy/basic-deep-out.json | 53 +-
.../bitmapblockcopy/basic-shallow-out.json | 53 +-
.../bitmapblockcopy/empty-deep-out.json | 0
.../bitmapblockcopy/empty-shallow-out.json | 0
.../bitmapblockcopy/snapshots-deep-out.json | 95 +-
.../snapshots-shallow-out.json | 98 +-
.../checkpointdelete/basic-current-out.json | 20 -
.../basic-intermediate1-out.json | 13 -
.../basic-intermediate2-out.json | 13 -
.../basic-intermediate3-out.json | 13 -
.../checkpointdelete/empty-out.json | 1 +
.../snapshots-current-out.json | 20 -
.../snapshots-intermediate1-out.json | 20 +-
.../snapshots-intermediate2-out.json | 42 +-
.../snapshots-intermediate3-out.json | 43 -
.../snapshots-noparent-out.json | 15 +
...hots-synthetic-checkpoint-current-out.json | 29 -
...ynthetic-checkpoint-intermediate1-out.json | 31 -
...ynthetic-checkpoint-intermediate2-out.json | 34 -
...ynthetic-checkpoint-intermediate3-out.json | 61 -
...ots-synthetic-checkpoint-noparent-out.json | 27 -
.../synthetic-current-out.json | 9 +
.../synthetic-intermediate1-out.json | 11 +
.../synthetic-intermediate2-out.json | 11 +
.../synthetic-intermediate3-out.json | 19 +
.../synthetic-noparent-out.json | 11 +
.../blockjob-blockdev-in.xml | 4 -
88 files changed, 2927 insertions(+), 5150 deletions(-)
create mode 100644 docs/kbase/incrementalbackupinternals.rst
create mode 100644 tests/qemublocktestdata/backupmerge/empty-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-deep-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-flat-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-intermediate-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-deep-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-flat-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-intermediate-out.json
create mode 100644 tests/qemublocktestdata/bitmap/empty.json
create mode 100644 tests/qemublocktestdata/bitmap/empty.out
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-broken.json
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-broken.out
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.json
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.out
create mode 100644 tests/qemublocktestdata/bitmapblockcommit/empty
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-2
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-3
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-3
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-3-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-3-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-4-5
create mode 100644 tests/qemublocktestdata/bitmapblockcopy/empty-deep-out.json
create mode 100644 tests/qemublocktestdata/bitmapblockcopy/empty-shallow-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/empty-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-current-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate1-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate2-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate3-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-noparent-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-current-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate1-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate2-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate3-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-noparent-out.json
--
2.26.2
4 years, 6 months
[libvirt PATCH] ci: Use fedora image for code style checking
by Jonathon Jongsma
Centos does not have the cppi package, so some code style checks are
skipped. Switch to a fedora image to do the code style checks.
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
.gitlab-ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bfb66a652d..b8d0645e99 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -496,7 +496,7 @@ website:
codestyle:
stage: builds
- image: $CI_REGISTRY_IMAGE/ci-centos-8:latest
+ image: $CI_REGISTRY_IMAGE/ci-fedora-32:latest
before_script:
- *script_variables
script:
--
2.21.3
4 years, 6 months
[RFC PATCH 00/41] qemu: Rewrite checkpoint code for 'block-dirty-bitmap-populate'
by Peter Krempa
Use 'block-dirty-bitmap-populate' and change how we create bitmaps
corresponding to checkpoints to simplify the code and also properly
integrate with backing chain images created outside of libvirt.
This patchset changes how we approach checkpoints by keeping one bitmap
per checkpoint and disk and not propagating the bitmaps into overlays on
snapshots. This massively simplifies the code handling all the
operations during blockjobs and backups.
While the change isn't compatible with checkpoints created previously,
we didn't yet enable the support for checkpoints/backups.
Note that 'block-dirty-bitmap-populate' is _not_ in finished state in
qemu yet, so I'm posting this as RFC and as reference for qemu
developers of the usefulnes of it.
The changes can be fetched by:
git fetch https://gitlab.com/pipo.sk/libvirt.git checkpoint-bitmap-populate
Note that the above branch also contains a commit enabling incremental
backup for simpler testing.
I've pushed the appropriate qemu patches for convenience here:
git fetch https://gitlab.com/pipo.sk/qemu.git block-dirty-bitmap-populate
Peter Krempa (41):
virErrorPreserveLast: Return the saved error object in addition to
storing it
util: error: Introduce VIR_ERROR_AUTOPRESERVE_LAST macro
qemuBackupDiskDataCleanup: Use VIR_ERROR_AUTO_PRESERVE_LAST
qemu: backup: Split up code traversing checkpoint list looking for
bitmaps
qemu: backup: Fix backup of disk skipped in an intermediate checkpoint
conf: backup: Store incremental backup checkpoint name per-disk
qemu: backup: Move fetching of checkpoint list for incremental backup
qemublocktest: Add 'empty' test case for bitmaps
qemublocktest: Add 'empty' case for incremental backup test
qemublocktest: Add 'empty' case for checkpoint deletion
qemublocktest: Add 'empty' case for blockcopy bitmap handling test
qemublocktest: Add 'empty' case for checkpoint bitmap handling
qemublocktest: Disable testcases for all bitmap handling
qemublocktest: Delete 'synthetic' bitmap test cases
qemublocktest: Extract printing of nodename list
qemu: checkpoint: Don't chain bitmaps for checkpoints
qemublocktest: Replace 'basic' bitmap detection test case data
qemu: snapshot: Don't propagate bitmaps to upper layers
qemublocktest: Replace 'snapshots' bitmap detection test case data
qemuBlockBitmapChainIsValid: Adjust to new semantics of bitmaps
qemublocktest: Re-add bitmap validation for 'basic' and 'snapshots'
cases
qemublocktest: Add new 'synthetic' bitmap detection and validation
test case
qemu: checkpoint: Don't merge checkpoints during deletion
qemublocktest: Rename TEST_CHECKPOINT_DELETE_MERGE to
TEST_CHECKPOINT_DELETE
qemublocktest: Re-introduce testing of checkpoint deletion
qemucapabilitiestest: Bump qemu-5.1 caps on x86_64 for
'dirty-bitmap-populate'
qemu: monitor: Add support for 'block-dirty-bitmap-populate'
transaction member
qemuDomainStorageSourcePrivate: Add per-source private blockjob
qemu: blockjob: Introduce 'populate' blockjob
qemu: domain: Introduce helper for always fetching virStorageSource
private data
qemu: block: Add helper to add temporary block bitmaps from allocation
maps
qemu: block: Add universal helper for merging dirty bitmaps for all
scenarios
qemu: backup: Rewrite backup bitmap handling to the new bitmap
semantics
qemublocktest: Add 'basic' tests for backup bitmap handling
qemublocktest: Add 'snapshots' tests for backup bitmap handling
qemu: Rewrite bitmap handling for block commit
qemublocktest: Add 'basic' tests for commit bitmap handling
qemublocktest: Add 'snapshots' tests for block commit bitmap handling
qemu: blockjob: Remove 'disabledBitmapsBase' field from commit job
private data
qemu: Rewrite bitmap handling for block copy
qemublocktest: Add test cases for handling bitmaps during block-copy
src/conf/backup_conf.c | 8 +
src/conf/backup_conf.h | 1 +
src/qemu/qemu_backup.c | 221 +-
src/qemu/qemu_backup.h | 13 +-
src/qemu/qemu_block.c | 674 ++--
src/qemu/qemu_block.h | 35 +-
src/qemu/qemu_blockjob.c | 182 +-
src/qemu/qemu_blockjob.h | 16 +-
src/qemu/qemu_checkpoint.c | 174 +-
src/qemu/qemu_checkpoint.h | 1 -
src/qemu/qemu_domain.c | 46 +-
src/qemu/qemu_domain.h | 6 +
src/qemu/qemu_driver.c | 112 +-
src/qemu/qemu_monitor.c | 11 +
src/qemu/qemu_monitor.h | 7 +
src/qemu/qemu_monitor_json.c | 18 +
src/qemu/qemu_monitor_json.h | 6 +
src/util/virerror.c | 18 +-
src/util/virerror.h | 12 +-
tests/qemublocktest.c | 267 +-
.../backupmerge/basic-deep-out.json | 35 +-
.../backupmerge/basic-flat-out.json | 23 +-
.../backupmerge/basic-intermediate-out.json | 23 +-
.../backupmerge/empty-out.json | 3 +
.../backupmerge/snapshot-deep-out.json | 38 -
.../backupmerge/snapshot-flat-out.json | 6 -
.../snapshot-intermediate-out.json | 14 -
.../backupmerge/snapshots-deep-out.json | 46 +
.../backupmerge/snapshots-flat-out.json | 25 +
.../snapshots-intermediate-out.json | 31 +
tests/qemublocktestdata/bitmap/basic.json | 229 +-
tests/qemublocktestdata/bitmap/basic.out | 8 +-
tests/qemublocktestdata/bitmap/empty.json | 70 +
tests/qemublocktestdata/bitmap/empty.out | 1 +
.../bitmap/snapshots-synthetic-broken.json | 837 -----
.../bitmap/snapshots-synthetic-broken.out | 14 -
.../snapshots-synthetic-checkpoint.json | 827 -----
.../bitmap/snapshots-synthetic-checkpoint.out | 13 -
tests/qemublocktestdata/bitmap/snapshots.json | 1254 +++-----
tests/qemublocktestdata/bitmap/snapshots.out | 6 +-
tests/qemublocktestdata/bitmap/synthetic.json | 606 +++-
tests/qemublocktestdata/bitmap/synthetic.out | 19 +-
.../bitmapblockcommit/basic-1-2 | 66 +-
.../bitmapblockcommit/basic-1-3 | 66 +-
.../bitmapblockcommit/basic-2-3 | 1 -
.../qemublocktestdata/bitmapblockcommit/empty | 1 +
.../bitmapblockcommit/snapshots-1-2 | 24 +-
.../bitmapblockcommit/snapshots-1-3 | 42 +-
.../bitmapblockcommit/snapshots-1-4 | 97 +-
.../bitmapblockcommit/snapshots-1-5 | 99 +-
.../bitmapblockcommit/snapshots-2-3 | 23 -
.../bitmapblockcommit/snapshots-2-4 | 55 +-
.../bitmapblockcommit/snapshots-2-5 | 59 +-
.../bitmapblockcommit/snapshots-3-4 | 25 +-
.../bitmapblockcommit/snapshots-3-5 | 29 +-
.../bitmapblockcommit/snapshots-4-5 | 32 -
.../snapshots-synthetic-broken-1-2 | 57 -
.../snapshots-synthetic-broken-1-3 | 112 -
.../snapshots-synthetic-broken-1-4 | 119 -
.../snapshots-synthetic-broken-1-5 | 119 -
.../snapshots-synthetic-broken-2-3 | 89 -
.../snapshots-synthetic-broken-2-4 | 96 -
.../snapshots-synthetic-broken-2-5 | 96 -
.../snapshots-synthetic-broken-3-4 | 27 -
.../snapshots-synthetic-broken-3-5 | 27 -
.../snapshots-synthetic-broken-4-5 | 20 -
.../bitmapblockcopy/basic-deep-out.json | 65 +-
.../bitmapblockcopy/basic-shallow-out.json | 65 +-
.../bitmapblockcopy/empty-deep-out.json | 0
.../bitmapblockcopy/empty-shallow-out.json | 0
.../bitmapblockcopy/snapshots-deep-out.json | 104 +-
.../snapshots-shallow-out.json | 24 +-
.../checkpointdelete/basic-current-out.json | 20 -
.../basic-intermediate1-out.json | 13 -
.../basic-intermediate2-out.json | 13 -
.../basic-intermediate3-out.json | 13 -
.../checkpointdelete/empty-out.json | 1 +
.../snapshots-current-out.json | 20 -
.../snapshots-intermediate1-out.json | 13 -
.../snapshots-intermediate2-out.json | 51 -
.../snapshots-intermediate3-out.json | 50 -
.../snapshots-noparent-out.json | 16 -
...hots-synthetic-checkpoint-current-out.json | 29 -
...ynthetic-checkpoint-intermediate1-out.json | 31 -
...ynthetic-checkpoint-intermediate2-out.json | 34 -
...ynthetic-checkpoint-intermediate3-out.json | 61 -
...ots-synthetic-checkpoint-noparent-out.json | 27 -
.../synthetic-current-out.json | 9 +
.../synthetic-intermediate1-out.json | 11 +
.../synthetic-intermediate2-out.json | 11 +
.../synthetic-intermediate3-out.json | 19 +
.../synthetic-noparent-out.json | 11 +
.../caps_5.1.0.x86_64.replies | 2737 +++++++++--------
.../caps_5.1.0.x86_64.xml | 2 +-
tests/qemumonitorjsontest.c | 3 +-
.../blockjob-blockdev-in.xml | 4 -
96 files changed, 4077 insertions(+), 6717 deletions(-)
create mode 100644 tests/qemublocktestdata/backupmerge/empty-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-deep-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-flat-out.json
delete mode 100644 tests/qemublocktestdata/backupmerge/snapshot-intermediate-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-deep-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-flat-out.json
create mode 100644 tests/qemublocktestdata/backupmerge/snapshots-intermediate-out.json
create mode 100644 tests/qemublocktestdata/bitmap/empty.json
create mode 100644 tests/qemublocktestdata/bitmap/empty.out
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-broken.json
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-broken.out
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.json
delete mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.out
create mode 100644 tests/qemublocktestdata/bitmapblockcommit/empty
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-2
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-3
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-1-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-3
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-2-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-3-4
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-3-5
delete mode 100644 tests/qemublocktestdata/bitmapblockcommit/snapshots-synthetic-broken-4-5
create mode 100644 tests/qemublocktestdata/bitmapblockcopy/empty-deep-out.json
create mode 100644 tests/qemublocktestdata/bitmapblockcopy/empty-shallow-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/empty-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-current-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate1-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate2-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate3-out.json
delete mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-noparent-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-current-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate1-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate2-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-intermediate3-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/synthetic-noparent-out.json
--
2.26.2
4 years, 6 months