[PATCH v4 00/19] Add 'version' to other exported types
by Victor Toso
Hi,
The 4th is coming!
v3: https://listman.redhat.com/archives/libvir-list/2022-April/230200.html
v2: https://listman.redhat.com/archives/libvir-list/2022-April/230097.html
v1: https://listman.redhat.com/archives/libvir-list/2022-April/229881.html
I tried to be more careful this time in regards to the patch flow.
- The first 4 patches are related to wrong versions introduced in
https://gitlab.com/libvirt/libvirt/-/commit/034432e47b
Each commit log points out the error I did in v3 and fixes it. If you
rather squash them, feel free.
- 05/19 "remove comments between enum values" are following Andrea and
Peter's suggestion that this should be fixed before adding the version
tags:
https://listman.redhat.com/archives/libvir-list/2022-April/230304.html
- 06/19 "avoid sc_prohibit_nonreentrant in a comment" is the workaround
proposed by Peter to avoid syntax-check failure
https://listman.redhat.com/archives/libvir-list/2022-April/230238.html
- I have set the virAdm exported types to be minimum = v2.0.0. This is
for all related types of libvirt-admin:
* 08/19 for enums;
* 09/19 for macros;
* 10/19 for typedefs;
* 12/19 for functions;
- For exported version of functions, the syms file are the source of
truth apart from 4 functions (Peter)
https://listman.redhat.com/archives/libvir-list/2022-April/230236.html
- Variable's comments are now properly sanitized (Andrea)
https://listman.redhat.com/archives/libvir-list/2022-April/230352.html
- Removed an extra line in the block of comments (Andrea)
https://listman.redhat.com/archives/libvir-list/2022-April/230291.html
The CI run for this series:
https://gitlab.com/victortoso/libvirt/-/pipelines/522757286
Have a great weekend,
Victor
Victor Toso (19):
docstring: typedef: fix version of virConnectListAllStoragePoolsFlags
docstring: typedef: fix version of virDomainDeviceModifyFlags
docstring: typedef: fix version of virDomainMemoryModFlags
docstring: typedef: fix version of virDomainVcpuFlags
docstring: remove comments between enum values
docstring: avoid sc_prohibit_nonreentrant in a comment
docstring: enums: libvirt: Add 'Since version' metadata
docstring: enums: admin: Add 'Since version' metadata
docstring: macros: admin: Add 'Since version' metadata
docstring: typedef: admin:: Add 'Since version' metadata
docstring: function: libvirt: Add 'Since version' metadata
docstring: function: admin: Add 'Since version' metadata
scripts: apibuild: parse 'Since' version for enums
scripts: apibuild: fix parsing block comments from typedef enum
scripts: apibuild: parse 'Since' for typedefs
scripts: apibuild: parse 'Since' for macros
scripts: apibuild: parse 'Since' for functions
scripts: apibuild: factor out comment cleaning
scripts: apibuild: add parsing variable's comments
include/libvirt/libvirt-admin.h | 67 +-
include/libvirt/libvirt-domain-checkpoint.h | 28 +-
include/libvirt/libvirt-domain-snapshot.h | 60 +-
include/libvirt/libvirt-domain.h | 1260 +++++++++++--------
include/libvirt/libvirt-event.h | 24 +-
include/libvirt/libvirt-host.h | 62 +-
include/libvirt/libvirt-interface.h | 8 +-
include/libvirt/libvirt-network.h | 92 +-
include/libvirt/libvirt-nodedev.h | 70 +-
include/libvirt/libvirt-nwfilter.h | 4 +-
include/libvirt/libvirt-secret.h | 40 +-
include/libvirt/libvirt-storage.h | 173 +--
include/libvirt/libvirt-stream.h | 24 +-
include/libvirt/virterror.h | 408 +++---
scripts/apibuild.py | 163 ++-
src/admin/libvirt-admin.c | 62 +
src/libvirt-domain-checkpoint.c | 24 +
src/libvirt-domain-snapshot.c | 42 +
src/libvirt-domain.c | 371 +++++-
src/libvirt-host.c | 68 +
src/libvirt-interface.c | 42 +
src/libvirt-network.c | 89 ++
src/libvirt-nodedev.c | 54 +
src/libvirt-nwfilter.c | 48 +
src/libvirt-secret.c | 40 +
src/libvirt-storage.c | 114 ++
src/libvirt-stream.c | 34 +
src/libvirt.c | 12 +
src/util/virerror.c | 30 +
src/util/virevent.c | 18 +
30 files changed, 2497 insertions(+), 1034 deletions(-)
--
2.35.1
2 years, 6 months
[libvirt PATCH] tests: Add test for missing network attribute in graphics' listen element
by Martin Kletzander
This tests a change done in commit 871a071abb9c.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
.../graphics-listen-network-invalid.xml | 29 +++++++++++++++++++
tests/genericxml2xmltest.c | 1 +
2 files changed, 30 insertions(+)
create mode 100644 tests/genericxml2xmlindata/graphics-listen-network-invalid.xml
diff --git a/tests/genericxml2xmlindata/graphics-listen-network-invalid.xml b/tests/genericxml2xmlindata/graphics-listen-network-invalid.xml
new file mode 100644
index 000000000000..87b5a32abe87
--- /dev/null
+++ b/tests/genericxml2xmlindata/graphics-listen-network-invalid.xml
@@ -0,0 +1,29 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</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>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc'>
+ <listen type='network'/>
+ </graphics>
+ <video>
+ <model type='cirrus' vram='16384' heads='1' primary='yes'/>
+ </video>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c
index 34ccaff61503..87014e3e531f 100644
--- a/tests/genericxml2xmltest.c
+++ b/tests/genericxml2xmltest.c
@@ -174,6 +174,7 @@ mymain(void)
DO_TEST_DIFFERENT("graphics-vnc-socket-attr-listen-socket");
DO_TEST_FAIL_ACTIVE("graphics-vnc-socket-attr-listen-socket-mismatch");
DO_TEST("graphics-vnc-autoport-no");
+ DO_TEST_FAIL_INACTIVE("graphics-listen-network-invalid");
DO_TEST_FAIL_ACTIVE("name-slash-fail");
--
2.35.1
2 years, 6 months
[PATCH v2] conf: virDomainGraphicsDefValidate: validate attribute 'network' for listen type 'network'
by Amneesh Singh
Related: https://gitlab.com/libvirt/libvirt/-/issues/93
Signed-off-by: Amneesh Singh <natto(a)weirdnatto.in>
---
v1 PATCH: https://listman.redhat.com/archives/libvir-list/2022-April/230021.html
src/conf/domain_validate.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 68190fc..e58b84e 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2347,10 +2347,35 @@ virDomainAudioDefValidate(const virDomainDef *def,
return 0;
}
+static int
+virDomainGraphicsDefListensValidate(const virDomainGraphicsDef *def)
+{
+ size_t i;
+
+ for (i = 0; i < def->nListens; i++) {
+ if (def->listens[i].type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK &&
+ !def->listens[i].network) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("'network' attribute is required for "
+ "listen type 'network'"));
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
static int
virDomainGraphicsDefValidate(const virDomainDef *def,
const virDomainGraphicsDef *graphics)
{
+ if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC ||
+ graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE ||
+ graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_RDP) {
+ if (virDomainGraphicsDefListensValidate(graphics) < 0)
+ return -1;
+ }
+
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC)
return virDomainEnsureAudioID(def, graphics->data.vnc.audioId);
--
2.35.1
2 years, 6 months
[RFC PATCH 0/2] Introduce 'absolute' clock offset
by Peter Krempa
Based on
https://listman.redhat.com/archives/libvirt-users/2022-April/013537.html
Looked as a very simple addition.
Peter Krempa (2):
conf: Introduce 'absolute' clock offset
qemu: Implement 'absolute' clock offset mode
docs/formatdomain.rst | 4 ++
src/conf/domain_conf.c | 13 +++++++
src/conf/domain_conf.h | 4 ++
src/conf/schemas/domaincommon.rng | 8 ++++
src/libxl/libxl_conf.c | 1 +
src/qemu/qemu_command.c | 10 ++++-
.../clock-absolute.x86_64-latest.args | 36 ++++++++++++++++++
tests/qemuxml2argvdata/clock-absolute.xml | 30 +++++++++++++++
tests/qemuxml2argvtest.c | 1 +
.../clock-absolute.x86_64-latest.xml | 38 +++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
11 files changed, 145 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/clock-absolute.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/clock-absolute.xml
create mode 100644 tests/qemuxml2xmloutdata/clock-absolute.x86_64-latest.xml
--
2.35.1
2 years, 6 months
[PATCH] qemu: do not use domain virt type to get default version
by Liang Yan
We do not need VIR_DOMAIN_VIRT_QEMU to get qemu default
version. With the 'os_type' and 'arch'in capabilities,
we could identify 'emulator' which is enough to get the version.
Actually VIR_DOMAIN_VIRT_QEMU is not the only domain virt type for
qemu driver, there are VIR_DOMAIN_VIRT_KVM and VIR_DOMAIN_VIRT_HVF.
If TCG is disabled in qemu, it will cause the error that could not
find suitable emulater when access version.
Signed-off-by: Liang Yan <lyan(a)digtalocean.com>
---
src/qemu/qemu_capabilities.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b91db851bb..9a0b7ebeb4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1857,7 +1857,7 @@ int virQEMUCapsGetDefaultVersion(virCaps *caps,
hostarch = virArchFromHost();
if (!(capsdata = virCapabilitiesDomainDataLookup(caps,
- VIR_DOMAIN_OSTYPE_HVM, hostarch, VIR_DOMAIN_VIRT_QEMU,
+ VIR_DOMAIN_OSTYPE_HVM, hostarch, VIR_DOMAIN_VIRT_NONE,
NULL, NULL))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Cannot find suitable emulator for %s"),
--
2.34.1
2 years, 6 months
[libvirt PATCH v3 00/16] Add QEMU "-display dbus" support
by marcandre.lureau@redhat.com
From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Hi,
This series implements supports for the uQEMU "-display dbus" support, that
landed earlier this week for 7.0.
By default, libvirt will start a private VM bus (sharing and reusing the
existing "vmstate" VM bus & code).
The feature set should cover the needs to replace Spice as local client of choice,
including 3daccel/dmabuf, audio, clipboard sharing, usb redirection, and arbitrary
chardev/channels (for serial etc).
The test Gtk4 client is also in progress, currently in development at
https://gitlab.com/marcandre.lureau/qemu-display/. A few dependencies, such as
zbus, require an upcoming release. virt-viewer & boxes will need a port to Gtk4
to make use of the shared widget.
Comments welcome, as we can still adjust the QEMU side etc.
thanks
v3: after QEMU 7.0 dev cycle opening and merge
- rebased
- add 7.0 x86-64 capabilities (instead of tweaking 6.2)
- fix version annotations
Marc-André Lureau (16):
qemu: add chardev-vdagent capability check
qemu: add -display dbus capability check
qemucapabilitiestest: Add x64 test data for the qemu-7.0 development
cycle
conf: add <graphics type='dbus'>
qemu: start the D-Bus daemon for the display
qemu: add -display dbus support
virsh: refactor/split cmdDomDisplay()
virsh: report the D-Bus bus URI for domdisplay
conf: add <audio type='dbus'> support
qemu: add audio type 'dbus'
conf: add dbus <clipboard>
qemu: add dbus clipboard sharing
conf: add <serial type='dbus'>
qemu: add -chardev dbus support
qemu: add usbredir type 'dbus'
docs: document <graphics> type dbus
NEWS.rst | 7 +-
docs/formatdomain.rst | 43 +-
docs/schemas/basictypes.rng | 7 +
docs/schemas/domaincommon.rng | 71 +
src/bhyve/bhyve_command.c | 1 +
src/conf/domain_conf.c | 141 +-
src/conf/domain_conf.h | 15 +
src/conf/domain_validate.c | 41 +-
src/libxl/libxl_conf.c | 1 +
src/qemu/qemu_capabilities.c | 8 +
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_command.c | 77 +-
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_driver.c | 10 +-
src/qemu/qemu_extdevice.c | 13 +
src/qemu/qemu_hotplug.c | 1 +
src/qemu/qemu_monitor_json.c | 10 +
src/qemu/qemu_process.c | 41 +-
src/qemu/qemu_validate.c | 33 +
src/security/security_dac.c | 2 +
src/vmx/vmx.c | 1 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 231 +
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 237 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 231 +
.../caps_6.1.0.x86_64.xml | 1 +
.../caps_6.2.0.aarch64.xml | 1 +
.../caps_6.2.0.x86_64.xml | 1 +
.../caps_7.0.0.x86_64.replies | 37335 ++++++++++++++++
.../caps_7.0.0.x86_64.xml | 3720 ++
.../graphics-dbus-address.args | 30 +
.../graphics-dbus-address.xml | 35 +
.../qemuxml2argvdata/graphics-dbus-audio.args | 33 +
.../qemuxml2argvdata/graphics-dbus-audio.xml | 45 +
.../graphics-dbus-chardev.args | 32 +
.../graphics-dbus-chardev.xml | 43 +
.../graphics-dbus-clipboard.args | 31 +
.../graphics-dbus-clipboard.xml | 35 +
tests/qemuxml2argvdata/graphics-dbus-p2p.args | 30 +
tests/qemuxml2argvdata/graphics-dbus-p2p.xml | 33 +
.../graphics-dbus-usbredir.args | 34 +
.../graphics-dbus-usbredir.xml | 30 +
tests/qemuxml2argvdata/graphics-dbus.args | 30 +
tests/qemuxml2argvdata/graphics-dbus.xml | 33 +
tests/qemuxml2argvtest.c | 22 +
.../graphics-dbus-address.xml | 1 +
.../graphics-dbus-audio.xml | 1 +
.../graphics-dbus-chardev.xml | 1 +
.../graphics-dbus-clipboard.xml | 1 +
.../qemuxml2xmloutdata/graphics-dbus-p2p.xml | 1 +
tests/qemuxml2xmloutdata/graphics-dbus.xml | 1 +
tests/qemuxml2xmltest.c | 20 +
tools/virsh-domain.c | 366 +-
52 files changed, 42981 insertions(+), 192 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
create mode 100644 tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
create mode 100644 tests/domaincapsdata/qemu_7.0.0.x86_64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_7.0.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-chardev.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-clipboard.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus.xml
--
2.34.1.8.g35151cf07204
2 years, 6 months
[libvirt PATCH 0/2] Fix tests on macOS
by Daniel P. Berrangé
NB, even with this done there is still a latent bug affecting all
platforms. When we call g_source_destroy the removal is async but
we usually close the FD synchronously. This leads to poll'ing on
a bad FD.
We've actually had this race in libvirt since day 1 - our previous
poll() event loop impl before glib would also implement the
virEventRemoveHandle call async by just writing to a pipe to
interrupt the other thread in poll, just as glib does.
We've always relied on parallelism to make this async call almost
instantaneous but under the right load conditions we trigger the
POLLNVAL / EBADF issue.
The only viable solution to this that I see is to only ever
call g_source_destroy + g_source_unref from an idle callback,
to guarantee that poll() isn't currently running.
We know this has a bit of a perf hit on code that is sensitive
to main loop iterations, so we tried to avoid it where possible
right now:
https://listman.redhat.com/archives/libvir-list/2020-November/212411.html
I think we'll need to revisit this though, as known BADF problems
are not good.
Daniel P. Berrangé (2):
ci: print stack traces on macOS if any tests fail
tests: don't set G_DEBUG=fatal-warnings on macOS
ci/cirrus/build.yml | 2 +-
tests/meson.build | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
--
2.35.1
2 years, 6 months
[libvirt PATCH] conf: ensure only one vgpu has ramfb enabled
by Jonathon Jongsma
Validate the domain configuration to ensure that if there are more than
one vgpu assigned to a domain, only one of them has 'ramfb' enabled.
This was never a supported configuration. QEMU failed confusingly when
attempting to start a domain with this configuration. This change
attempts to provide better information about the error.
https://bugzilla.redhat.com/show_bug.cgi?id=2079760
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
src/conf/domain_validate.c | 19 ++++++++--
...v-display-ramfb-multiple.x86_64-latest.err | 1 +
.../hostdev-mdev-display-ramfb-multiple.xml | 38 +++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
4 files changed, 56 insertions(+), 3 deletions(-)
create mode 100644 tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.xml
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 68190fc3e2..f4d6e6e0c5 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -1194,20 +1194,33 @@ virDomainDefDuplicateDiskInfoValidate(const virDomainDef *def)
}
static int
-virDomainDefDuplicateHostdevInfoValidate(const virDomainDef *def)
+virDomainDefHostdevValidate(const virDomainDef *def)
{
size_t i;
size_t j;
+ bool ramfbEnabled = false;
for (i = 0; i < def->nhostdevs; i++) {
+ virDomainHostdevDef *dev = def->hostdevs[i];
+
for (j = i + 1; j < def->nhostdevs; j++) {
- if (virDomainHostdevMatch(def->hostdevs[i],
+ if (virDomainHostdevMatch(dev,
def->hostdevs[j])) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Hostdev already exists in the domain configuration"));
return -1;
}
}
+
+ if (dev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV &&
+ dev->source.subsys.u.mdev.ramfb == VIR_TRISTATE_SWITCH_ON) {
+ if (ramfbEnabled) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Only one vgpu device can have 'ramfb' enabled"));
+ return -1;
+ }
+ ramfbEnabled = true;
+ }
}
return 0;
@@ -1664,7 +1677,7 @@ virDomainDefValidateInternal(const virDomainDef *def,
if (virDomainDefDuplicateDiskInfoValidate(def) < 0)
return -1;
- if (virDomainDefDuplicateHostdevInfoValidate(def) < 0)
+ if (virDomainDefHostdevValidate(def) < 0)
return -1;
if (virDomainDefDuplicateDriveAddressesValidate(def) < 0)
diff --git a/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.x86_64-latest.err b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.x86_64-latest.err
new file mode 100644
index 0000000000..07ce47abf7
--- /dev/null
+++ b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.x86_64-latest.err
@@ -0,0 +1 @@
+unsupported configuration: Only one vgpu device can have 'ramfb' enabled
diff --git a/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.xml b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.xml
new file mode 100644
index 0000000000..1fe53726b5
--- /dev/null
+++ b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb-multiple.xml
@@ -0,0 +1,38 @@
+<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='x86_64' 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-x86_64</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>
+ <hostdev mode='subsystem' type='mdev' model='vfio-pci' display='on' ramfb='on'>
+ <source>
+ <address uuid='53764d0e-85a0-42b4-af5c-2046b460b1dd'/>
+ </source>
+ </hostdev>
+ <video>
+ <model type='qxl' heads='1'/>
+ </video>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 41fd032f19..e334c59eb7 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1896,6 +1896,7 @@ mymain(void)
QEMU_CAPS_DEVICE_VFIO_PCI,
QEMU_CAPS_VFIO_PCI_DISPLAY);
DO_TEST_CAPS_LATEST("hostdev-mdev-display-ramfb");
+ DO_TEST_CAPS_LATEST_PARSE_ERROR("hostdev-mdev-display-ramfb-multiple");
DO_TEST_PARSE_ERROR("hostdev-vfio-zpci-wrong-arch",
QEMU_CAPS_DEVICE_VFIO_PCI);
DO_TEST("hostdev-vfio-zpci",
--
2.35.1
2 years, 6 months
Release of libvirt-8.3.0
by Jiri Denemark
The 8.3.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at
https://libvirt.org/sources/
https://libvirt.org/sources/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.
* Removed features
* qemu: Remove support for QEMU < 3.1
In accordance with our platform support policy, the oldest supported QEMU
version is now bumped from 2.11 to 3.1.
* New features
* qemu: Introduce support for virtio-iommu
This IOMMU device can be used with both Q35 and ARM virt guests.
Enjoy.
Jirka
2 years, 6 months