[libvirt] [PATCH 0/2] Minor fixes for maxphysaddr
by Lin Ma
Lin Ma (2):
docs: Fix missing slashes in the maxphysaddr example
qemu: Remove host-passthrough validation check for host-phys-bits=on
docs/formatdomain.rst | 4 ++--
src/qemu/qemu_validate.c | 7 -------
2 files changed, 2 insertions(+), 9 deletions(-)
--
2.26.2
2 years, 2 months
[PATCH] cpu_map: Introduce A64FX
by Liu Yiding
Add A64FX as a supported cpu model.
Signed-off-by: Liu Yiding <liuyd.fnst(a)fujitsu.com>
---
src/cpu_map/arm_A64FX.xml | 6 ++++++
src/cpu_map/arm_vendors.xml | 1 +
src/cpu_map/index.xml | 3 +++
src/cpu_map/meson.build | 1 +
4 files changed, 11 insertions(+)
create mode 100644 src/cpu_map/arm_A64FX.xml
diff --git a/src/cpu_map/arm_A64FX.xml b/src/cpu_map/arm_A64FX.xml
new file mode 100644
index 0000000000..db7b328cd1
--- /dev/null
+++ b/src/cpu_map/arm_A64FX.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='a64fx'>
+ <vendor name='FUJITSU'/>
+ <pvr value='0x001'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/arm_vendors.xml b/src/cpu_map/arm_vendors.xml
index 4465463b5b..b10c07815a 100644
--- a/src/cpu_map/arm_vendors.xml
+++ b/src/cpu_map/arm_vendors.xml
@@ -3,6 +3,7 @@
<vendor name='Broadcom' value='0x42'/>
<vendor name='Cavium' value='0x43'/>
<vendor name='DigitalEquipment' value='0x44'/>
+ <vendor name='FUJITSU' value='0x46'/>
<vendor name='HiSilicon' value='0x48'/>
<vendor name='Infineon' value='0x49'/>
<vendor name='Freescale' value='0x4D'/>
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 351c2ae4fa..44534f067a 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -104,6 +104,9 @@
<!-- Cavium-based CPU models -->
<include filename='arm_ThunderX299xx.xml'/>
+ <!-- Fujitsu-based CPU models -->
+ <include filename='arm_A64FX.xml'/>
+
<!-- Hisilicon-based CPU models -->
<include filename='arm_Kunpeng-920.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 99815981b5..af7e5bc9f3 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -1,4 +1,5 @@
cpumap_data = [
+ 'arm_A64FX.xml',
'arm_cortex-a53.xml',
'arm_cortex-a57.xml',
'arm_cortex-a72.xml',
--
2.34.1
2 years, 2 months
[PATCH v1 15/25] Deprecate 32 bit big-endian MIPS
by Alex Bennée
It's becoming harder to maintain a cross-compiler to test this host
architecture as the old stable Debian 10 ("Buster") moved into LTS
which supports fewer architectures. For now:
- mark it's deprecation in the docs
- downgrade the containers to build TCG tests only
- drop the cross builds from our CI
Users with an appropriate toolchain and user-space can still take
their chances building it.
Signed-off-by: Alex Bennée <alex.bennee(a)linaro.org>
---
docs/about/build-platforms.rst | 2 +-
docs/about/deprecated.rst | 13 ++++++
.gitlab-ci.d/container-cross.yml | 1 -
.gitlab-ci.d/crossbuilds.yml | 14 -------
tests/docker/Makefile.include | 5 +--
.../dockerfiles/debian-mips-cross.docker | 40 +++++--------------
6 files changed, 27 insertions(+), 48 deletions(-)
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 26028756d0..1ca9144a7d 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -41,7 +41,7 @@ Those hosts are officially supported, with various accelerators:
- Accelerators
* - Arm
- kvm (64 bit only), tcg, xen
- * - MIPS
+ * - MIPS (LE only)
- kvm, tcg
* - PPC
- kvm, tcg
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 91b03115ee..22c2f4f4de 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -213,6 +213,19 @@ MIPS ``Trap-and-Emul`` KVM support (since 6.0)
The MIPS ``Trap-and-Emul`` KVM host and guest support has been removed
from Linux upstream kernel, declare it deprecated.
+Host Architectures
+------------------
+
+BE MIPS (since 7.2)
+'''''''''''''''''''
+
+A Debian 10 ("Buster") moved into LTS the big endian 32 bit version of
+MIPS moved out of support making it hard to maintain our
+cross-compilation CI tests of the architecture. As we no longer have
+CI coverage support may bitrot away before the deprecation process
+completes. The little endian variants of MIPS (both 32 and 64 bit) are
+still a supported host architecture.
+
QEMU API (QAPI) events
----------------------
diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml
index 611c6c0b39..95d57e1c5d 100644
--- a/.gitlab-ci.d/container-cross.yml
+++ b/.gitlab-ci.d/container-cross.yml
@@ -89,7 +89,6 @@ mips64el-debian-cross-container:
mips-debian-cross-container:
extends: .container_job_template
stage: containers
- needs: ['amd64-debian10-container']
variables:
NAME: debian-mips-cross
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 4a5fb6ea2a..c4cd96433d 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -70,20 +70,6 @@ cross-i386-tci:
EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,aarch64-softmmu,aarch64-linux-user,ppc-softmmu,ppc-linux-user
MAKE_CHECK_ARGS: check check-tcg
-cross-mips-system:
- extends: .cross_system_build_job
- needs:
- job: mips-debian-cross-container
- variables:
- IMAGE: debian-mips-cross
-
-cross-mips-user:
- extends: .cross_user_build_job
- needs:
- job: mips-debian-cross-container
- variables:
- IMAGE: debian-mips-cross
-
cross-mipsel-system:
extends: .cross_system_build_job
needs:
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index c3375f89c5..b1bf56434f 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -81,14 +81,12 @@ endif
# For non-x86 hosts not all cross-compilers have been packaged
ifneq ($(HOST_ARCH),x86_64)
-DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
+DOCKER_PARTIAL_IMAGES += debian-mipsel-cross debian-mips64el-cross
DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
DOCKER_PARTIAL_IMAGES += debian-s390x-cross
DOCKER_PARTIAL_IMAGES += fedora
endif
-docker-image-debian-mips-cross: docker-image-debian10
-
# The native build should never use the registry
docker-image-debian-native: DOCKER_REGISTRY=
@@ -144,6 +142,7 @@ DOCKER_PARTIAL_IMAGES += debian-hppa-cross
DOCKER_PARTIAL_IMAGES += debian-loongarch-cross
DOCKER_PARTIAL_IMAGES += debian-m68k-cross debian-mips64-cross
DOCKER_PARTIAL_IMAGES += debian-microblaze-cross
+DOCKER_PARTIAL_IMAGES += debian-mips-cross
DOCKER_PARTIAL_IMAGES += debian-nios2-cross
DOCKER_PARTIAL_IMAGES += debian-riscv64-test-cross
DOCKER_PARTIAL_IMAGES += debian-sh4-cross debian-sparc64-cross
diff --git a/tests/docker/dockerfiles/debian-mips-cross.docker b/tests/docker/dockerfiles/debian-mips-cross.docker
index 26c154014d..75943619df 100644
--- a/tests/docker/dockerfiles/debian-mips-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips-cross.docker
@@ -1,32 +1,14 @@
#
-# Docker mips cross-compiler target
+# Docker cross-compiler target
#
-# This docker target builds on the debian Buster base image.
+# This docker target builds on the Debian Bullseye base image.
#
-FROM qemu/debian10
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug(a)amsat.org>
-
-# Add the foreign architecture we want and install dependencies
-RUN dpkg --add-architecture mips
-RUN apt update && \
- DEBIAN_FRONTEND=noninteractive eatmydata \
- apt install -y --no-install-recommends \
- gcc-mips-linux-gnu
-
-RUN apt update && \
- DEBIAN_FRONTEND=noninteractive eatmydata \
- apt build-dep -yy -a mips --arch-only qemu
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips-linux-gnu-
-ENV DEF_TARGET_LIST mips-softmmu,mipsel-linux-user
-
-# Install extra libraries to increase code coverage
-RUN apt update && \
- DEBIAN_FRONTEND=noninteractive eatmydata \
- apt install -y --no-install-recommends \
- libbz2-dev:mips \
- liblzo2-dev:mips \
- librdmacm-dev:mips \
- libsnappy-dev:mips
+FROM docker.io/library/debian:11-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mips-linux-gnu \
+ libc6-dev-mips-cross
--
2.30.2
2 years, 2 months
[PATCH 00/17] jobs: finish generalization
by Kristina Hanicova
This series finishes the generalization of the jobs-related code across
jobs-using drivers.
This is the last one, I promise.
Kristina Hanicova (17):
qemu & hypervisor: move qemuDomainObjBeginJobInternal() into hyperisor
libxl: remove usage of virDomainJobData
move files: hypervisor/domain_job -> conf/virdomainjob
virdomainjob: add check for callbacks
conf: extend xmlopt with job config & add job object into domain
object
virdomainjob: make drivers use job object in the domain object
qemu: use virDomainObjBeginJob()
libxl: use virDomainObjBeginJob()
LXC: use virDomainObjBeginJob()
CH: use virDomainObjBeginJob()
qemu: use virDomainObjEndJob()
libxl: use virDomainObjEndJob()
LXC: use virDomainObjEndJob()
CH: use virDomainObjEndJob()
qemu & conf: move BeginAgentJob & EndAgentJob into
src/conf/virdomainjob
qemu & conf: move BeginAsyncJob & EndAsyncJob into src/conf
qemu & conf: move BeginNestedJob & BeginJobNowait into src/conf
docs/kbase/internals/qemu-threads.rst | 34 +-
po/POTFILES | 1 +
src/bhyve/bhyve_domain.c | 2 +-
src/ch/ch_conf.c | 2 +-
src/ch/ch_domain.c | 76 --
src/ch/ch_domain.h | 11 +-
src/ch/ch_driver.c | 40 +-
src/conf/domain_conf.c | 14 +-
src/conf/domain_conf.h | 16 +-
src/conf/meson.build | 1 +
src/conf/virconftypes.h | 2 +
src/conf/virdomainjob.c | 664 ++++++++++++++++++
.../domain_job.h => conf/virdomainjob.h} | 37 +-
src/hyperv/hyperv_driver.c | 2 +-
src/hypervisor/domain_job.c | 249 -------
src/hypervisor/meson.build | 1 -
src/libvirt_private.syms | 52 +-
src/libxl/libxl_conf.c | 2 +-
src/libxl/libxl_domain.c | 113 +--
src/libxl/libxl_domain.h | 18 +-
src/libxl/libxl_driver.c | 123 ++--
src/libxl/libxl_migration.c | 20 +-
src/lxc/lxc_conf.c | 2 +-
src/lxc/lxc_domain.c | 86 ---
src/lxc/lxc_domain.h | 14 +-
src/lxc/lxc_driver.c | 103 ++-
src/openvz/openvz_conf.c | 2 +-
src/qemu/qemu_backup.c | 24 +-
src/qemu/qemu_checkpoint.c | 12 +-
src/qemu/qemu_conf.c | 7 +-
src/qemu/qemu_domain.c | 83 ++-
src/qemu/qemu_domain.h | 3 +-
src/qemu/qemu_domainjob.c | 560 ++-------------
src/qemu/qemu_domainjob.h | 25 +-
src/qemu/qemu_driver.c | 482 +++++++------
src/qemu/qemu_migration.c | 201 +++---
src/qemu/qemu_migration_cookie.c | 17 +-
src/qemu/qemu_migration_cookie.h | 3 +-
src/qemu/qemu_migration_params.c | 8 +-
src/qemu/qemu_process.c | 95 ++-
src/qemu/qemu_snapshot.c | 20 +-
src/security/virt-aa-helper.c | 2 +-
src/test/test_driver.c | 2 +-
src/vbox/vbox_common.c | 2 +-
src/vmware/vmware_driver.c | 2 +-
src/vmx/vmx.c | 2 +-
src/vz/vz_driver.c | 2 +-
tests/bhyveargv2xmltest.c | 2 +-
tests/qemumigrationcookiexmltest.c | 3 +-
tests/testutils.c | 2 +-
50 files changed, 1475 insertions(+), 1771 deletions(-)
create mode 100644 src/conf/virdomainjob.c
rename src/{hypervisor/domain_job.h => conf/virdomainjob.h} (86%)
delete mode 100644 src/hypervisor/domain_job.c
--
2.37.1
2 years, 2 months
[PATCH] conf: Add USB redirect devices to domain capabilities
by Jim Fehlig
As qemu becomes more modularized, it is important for libvirt to advertise
availability of the modularized functionality through capabilities. This
change adds USB redirect devices to domain capabilities, allowing clients
such as virt-install to avoid using redirdev devices when not supported
by the target qemu.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
docs/formatdomaincaps.rst | 22 +++++++++++++++++++
src/conf/domain_capabilities.c | 13 +++++++++++
src/conf/domain_capabilities.h | 8 +++++++
src/conf/schemas/domaincaps.rng | 10 +++++++++
src/qemu/qemu_capabilities.c | 17 ++++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 5 +++++
.../qemu_4.2.0-virt.aarch64.xml | 1 +
tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_4.2.0.s390x.xml | 5 +++++
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 5 +++++
.../qemu_5.0.0-virt.aarch64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 5 +++++
tests/domaincapsdata/qemu_5.1.0.sparc.xml | 5 +++++
tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 5 +++++
.../qemu_5.2.0-virt.aarch64.xml | 1 +
tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 5 +++++
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 5 +++++
.../qemu_6.0.0-virt.aarch64.xml | 1 +
tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_6.0.0.s390x.xml | 5 +++++
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 5 +++++
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 5 +++++
.../qemu_6.2.0-virt.aarch64.xml | 5 +++++
tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 5 +++++
tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 5 +++++
.../qemu_7.0.0-virt.aarch64.xml | 5 +++++
tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 5 +++++
tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 5 +++++
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 5 +++++
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 5 +++++
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 5 +++++
54 files changed, 265 insertions(+)
diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst
index 70f46b972a..557b61bf26 100644
--- a/docs/formatdomaincaps.rst
+++ b/docs/formatdomaincaps.rst
@@ -529,6 +529,28 @@ TPM device capabilities are exposed under the ``tpm`` element. For instance:
``backendVersion``
Options for the ``version`` attribute of the ``<tpm><backend/>`` element.
+USB redirect device
+^^^^^^^^^^^^^^^^^^^
+
+USB redirdev device capabilities are exposed under the ``redirdev`` element. For instance:
+
+::
+
+ <domainCapabilities>
+ ...
+ <devices>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
+ ...
+ </devices>
+ </domainCapabilities>
+
+``bus``
+ Options for the ``bus`` attribute of the ``<redirdev/>`` element.
+
Features
~~~~~~~~
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index 653123f293..9cb1dbe7bd 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -559,6 +559,18 @@ virDomainCapsDeviceFilesystemFormat(virBuffer *buf,
}
+static void
+virDomainCapsDeviceRedirdevFormat(virBuffer *buf,
+ const virDomainCapsDeviceRedirdev *redirdev)
+{
+ FORMAT_PROLOGUE(redirdev);
+
+ ENUM_PROCESS(redirdev, bus, virDomainRedirdevBusTypeToString);
+
+ FORMAT_EPILOGUE(redirdev);
+}
+
+
/**
* virDomainCapsFeatureGICFormat:
* @buf: target buffer
@@ -672,6 +684,7 @@ virDomainCapsFormat(const virDomainCaps *caps)
virDomainCapsDeviceRNGFormat(&buf, &caps->rng);
virDomainCapsDeviceFilesystemFormat(&buf, &caps->filesystem);
virDomainCapsDeviceTPMFormat(&buf, &caps->tpm);
+ virDomainCapsDeviceRedirdevFormat(&buf, &caps->redirdev);
virBufferAdjustIndent(&buf, -2);
virBufferAddLit(&buf, "</devices>\n");
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index a526969cda..de2a89c963 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -130,6 +130,13 @@ struct _virDomainCapsDeviceTPM {
virDomainCapsEnum backendVersion; /* virDomainTPMVersion */
};
+STATIC_ASSERT_ENUM(VIR_DOMAIN_REDIRDEV_BUS_LAST);
+typedef struct _virDomainCapsDeviceRedirdev virDomainCapsDeviceRedirdev;
+struct _virDomainCapsDeviceRedirdev {
+ virTristateBool supported;
+ virDomainCapsEnum bus; /* virDomainRedirdevBus */
+};
+
STATIC_ASSERT_ENUM(VIR_DOMAIN_FS_DRIVER_TYPE_LAST);
typedef struct _virDomainCapsDeviceFilesystem virDomainCapsDeviceFilesystem;
struct _virDomainCapsDeviceFilesystem {
@@ -225,6 +232,7 @@ struct _virDomainCaps {
virDomainCapsDeviceRNG rng;
virDomainCapsDeviceFilesystem filesystem;
virDomainCapsDeviceTPM tpm;
+ virDomainCapsDeviceRedirdev redirdev;
/* add new domain devices here */
virDomainCapsFeatureGIC gic;
diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng
index 9cbc2467ab..8da3fbb352 100644
--- a/src/conf/schemas/domaincaps.rng
+++ b/src/conf/schemas/domaincaps.rng
@@ -195,6 +195,9 @@
<optional>
<ref name="tpm"/>
</optional>
+ <optional>
+ <ref name="redirdev"/>
+ </optional>
</element>
</define>
@@ -247,6 +250,13 @@
</element>
</define>
+ <define name="redirdev">
+ <element name="redirdev">
+ <ref name="supported"/>
+ <ref name="enum"/>
+ </element>
+ </define>
+
<define name="features">
<element name="features">
<optional>
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c5338f6830..e54df1788e 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -6349,6 +6349,21 @@ virQEMUCapsFillDomainDeviceTPMCaps(virQEMUCaps *qemuCaps,
}
+void
+virQEMUCapsFillDomainDeviceRedirdevCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsDeviceRedirdev *redirdev)
+{
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR)) {
+ redirdev->supported = VIR_TRISTATE_BOOL_YES;
+ redirdev->bus.report = true;
+ VIR_DOMAIN_CAPS_ENUM_SET(redirdev->bus, VIR_DOMAIN_REDIRDEV_BUS_USB);
+ } else {
+ redirdev->supported = VIR_TRISTATE_BOOL_NO;
+ }
+}
+
+
+
/**
* virQEMUCapsSupportsGICVersion:
* @qemuCaps: QEMU capabilities
@@ -6484,6 +6499,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceRNG *rng = &domCaps->rng;
virDomainCapsDeviceFilesystem *filesystem = &domCaps->filesystem;
virDomainCapsDeviceTPM *tpm = &domCaps->tpm;
+ virDomainCapsDeviceRedirdev *redirdev = &domCaps->redirdev;
virDomainCapsMemoryBacking *memoryBacking = &domCaps->memoryBacking;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
@@ -6516,6 +6532,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virQEMUCapsFillDomainDeviceRNGCaps(qemuCaps, rng);
virQEMUCapsFillDomainDeviceFSCaps(qemuCaps, filesystem);
virQEMUCapsFillDomainDeviceTPMCaps(qemuCaps, tpm);
+ virQEMUCapsFillDomainDeviceRedirdevCaps(qemuCaps, redirdev);
virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8e777297f6..b2de931e2d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -830,6 +830,9 @@ void virQEMUCapsFillDomainDeviceFSCaps(virQEMUCaps *qemuCaps,
void virQEMUCapsFillDomainDeviceTPMCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceTPM *tpm);
+void virQEMUCapsFillDomainDeviceRedirdevCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsDeviceRedirdev *redirdev);
+
bool virQEMUCapsGuestIsNative(virArch host,
virArch guest);
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
index 0ec4c570ac..a39ada0182 100644
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
@@ -216,6 +216,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
index 4e0cb08b72..e054993aaf 100644
--- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
@@ -231,6 +231,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
index 05d606967b..579ca0eed7 100644
--- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
@@ -165,6 +165,7 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
index f19ad5e6db..1632c85d7a 100644
--- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
@@ -163,6 +163,7 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
index 8ea7ad5714..909feac47c 100644
--- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
@@ -136,6 +136,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
index fb162ea578..1c3877ec0c 100644
--- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
@@ -238,6 +238,11 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
index d8793bb38a..666a974489 100644
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
@@ -216,6 +216,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
index 036e446c64..e6625bcdbc 100644
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
@@ -218,6 +218,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
index 4df4e86cf1..9e1ffe3a4d 100644
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
@@ -233,6 +233,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
index bb8500baa6..631bb6b15f 100644
--- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
@@ -177,6 +177,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
index e7227d092f..dcf8d22806 100644
--- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
@@ -175,6 +175,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
index cac329fd08..fcfc2266d2 100644
--- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
@@ -142,6 +142,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
index e901d12918..f08278cfbf 100644
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
@@ -218,6 +218,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
index df1572c901..814f81defc 100644
--- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
@@ -219,6 +219,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
index 3a6dc7b5fc..6391383da7 100644
--- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
@@ -233,6 +233,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0.sparc.xml b/tests/domaincapsdata/qemu_5.1.0.sparc.xml
index 5c1c0c4680..ea4d1d28dd 100644
--- a/tests/domaincapsdata/qemu_5.1.0.sparc.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.sparc.xml
@@ -105,6 +105,11 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
index e0e8e0ed12..5dd7efe165 100644
--- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
@@ -219,6 +219,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 6a49f568be..8b4c1dd954 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -219,6 +219,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index f41f47c346..3306a14ba0 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -233,6 +233,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
index dfd792c031..4571622c4c 100644
--- a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
@@ -177,6 +177,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
index e7227d092f..dcf8d22806 100644
--- a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
@@ -175,6 +175,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
index 88e4837ec3..bc43fb6a38 100644
--- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
@@ -142,6 +142,7 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
index 2a2ca8abcf..041c1ede15 100644
--- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
@@ -240,6 +240,11 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 0a6f72df7e..6147fc84b8 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -219,6 +219,11 @@
<value>1.2</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 40df34edf0..3e36847385 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -221,6 +221,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index e563b0cb59..d622f67ef3 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -235,6 +235,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
index 958c40437f..9bf854869f 100644
--- a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
@@ -179,6 +179,7 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml b/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
index 4164bf49f7..fbd48cac00 100644
--- a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
@@ -177,6 +177,7 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.s390x.xml b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
index 13fa3a637e..880ea5062a 100644
--- a/tests/domaincapsdata/qemu_6.0.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
@@ -241,6 +241,11 @@
</enum>
</filesystem>
<tpm supported='no'/>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index eb60a2105f..84e575829d 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -221,6 +221,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 0480a086c6..a25fa7bacc 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 7baecb0c73..2972e119e7 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -235,6 +235,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 9cbe93ad46..60da420044 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 07b951b81f..61d43e6599 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 367e656b31..057a67c034 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -236,6 +236,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
index 99c0fc03fd..2843599b57 100644
--- a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
@@ -181,6 +181,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml b/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
index 8e04508694..45806a8f10 100644
--- a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
@@ -179,6 +179,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
index 0bbe501383..cc3a45618c 100644
--- a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
@@ -141,6 +141,7 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='no'/>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index f363cf1b79..56fae62434 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 136dadaeb4..5e4d4d48da 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -223,6 +223,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index c684759356..8a18d45fca 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -237,6 +237,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
index 1d6f29db9f..8e3313f383 100644
--- a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
@@ -180,6 +180,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml b/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
index 73097470f8..f25ab0b796 100644
--- a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
@@ -178,6 +178,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
index 7765c941c5..c43c63c741 100644
--- a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
@@ -142,6 +142,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 0f9a65ef1b..410cc84977 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -223,6 +223,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 30082712f4..3b5a846342 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index bcca02f0a4..dd7b8c2ab9 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -235,6 +235,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index f377b8e3a9..d8c83e03f3 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -222,6 +222,11 @@
<value>2.0</value>
</enum>
</tpm>
+ <redirdev supported='yes'>
+ <enum name='bus'>
+ <value>usb</value>
+ </enum>
+ </redirdev>
</devices>
<features>
<gic supported='no'/>
--
2.37.1
2 years, 2 months
[libvirt][PATCH v15 1/9] domain_capabilities: Define SGX capabilities structs
by Lin Yang
From: Haibin Huang <haibin.huang(a)intel.com>
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
Signed-off-by: Haibin Huang <haibin.huang(a)intel.com>
---
src/conf/domain_capabilities.c | 11 +++++++++++
src/conf/domain_capabilities.h | 21 +++++++++++++++++++++
src/libvirt_private.syms | 1 +
3 files changed, 33 insertions(+)
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index 653123f293..869b5d68e6 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -76,6 +76,17 @@ virSEVCapabilitiesFree(virSEVCapability *cap)
}
+void
+virSGXCapabilitiesFree(virSGXCapability *cap)
+{
+ if (!cap)
+ return;
+
+ g_free(cap->sgxSections);
+ g_free(cap);
+}
+
+
static void
virDomainCapsDispose(void *obj)
{
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index a526969cda..ae93622777 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -193,6 +193,21 @@ struct _virSEVCapability {
unsigned int max_es_guests;
};
+typedef struct _virSGXSection virSGXSection;
+struct _virSGXSection {
+ unsigned long long size;
+ unsigned int node;
+};
+
+typedef struct _virSGXCapability virSGXCapability;
+struct _virSGXCapability {
+ bool flc;
+ bool sgx1;
+ bool sgx2;
+ size_t nSgxSections;
+ virSGXSection *sgxSections;
+};
+
typedef enum {
VIR_DOMAIN_CAPS_FEATURE_IOTHREADS = 0,
VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO,
@@ -229,6 +244,7 @@ struct _virDomainCaps {
virDomainCapsFeatureGIC gic;
virSEVCapability *sev;
+ virSGXCapability *sgx;
/* add new domain features here */
virTristateBool features[VIR_DOMAIN_CAPS_FEATURE_LAST];
@@ -277,3 +293,8 @@ void
virSEVCapabilitiesFree(virSEVCapability *capabilities);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virSEVCapability, virSEVCapabilitiesFree);
+
+void
+virSGXCapabilitiesFree(virSGXCapability *capabilities);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virSGXCapability, virSGXCapabilitiesFree);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index ac2802095e..bb539e62fb 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -218,6 +218,7 @@ virDomainCapsEnumSet;
virDomainCapsFormat;
virDomainCapsNew;
virSEVCapabilitiesFree;
+virSGXCapabilitiesFree;
# conf/domain_conf.h
--
2.25.1
2 years, 2 months
[PATCH] NEWS: Fix spelling of 'subelment'
by Jim Fehlig
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
Pushing as trivial
NEWS.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/NEWS.rst b/NEWS.rst
index ff618d5848..82389b48dd 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -25,7 +25,7 @@ v8.7.0 (unreleased)
* qemu: Add support for specifying vCPU physical address size in bits
Users can now specify the number of vCPU physical address bits with
- the `<maxphysaddr>` subelment of the `<cpu>` element.
+ the `<maxphysaddr>` subelement of the `<cpu>` element.
* **Improvements**
--
2.37.1
2 years, 2 months
[PATCH] qemuValidateDomainDef: Clarify error message when S390 PV launch security is unsupported by the kernel
by Peter Krempa
Split up the condition and report a different error message when the
host or host config results in S390 PV launch security being
unavailable.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2122534
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_validate.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 6403266559..63f3459c90 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1454,11 +1454,14 @@ qemuValidateDomainDef(const virDomainDef *def,
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT) ||
- !virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST) ||
- !virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps)) {
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("S390 PV launch security is not supported with "
- "this QEMU binary"));
+ _("S390 PV launch security is not supported with this QEMU binary"));
+ return -1;
+ }
+ if (!virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("S390 PV launch security is not supported by this host or kernel"));
return -1;
}
break;
--
2.37.1
2 years, 2 months
Entering freeze for libvirt-8.7.0
by Jiri Denemark
I have just tagged v8.7.0-rc1 in the repository and pushed signed
tarballs and source RPMs to https://libvirt.org/sources/
Please give the release candidate some testing and in case you find a
serious issue which should have a fix in the upcoming release, feel
free to reply to this thread to make sure the issue is more visible.
If you have not done so yet, please update NEWS.rst to document any
significant change you made since the last release.
Thanks,
Jirka
2 years, 2 months
[PATCH] conf: Add more checks for VDS interface parameters
by Martin Kletzander
Add some checks that commit 0225483adce9 forgot to include.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
src/conf/domain_conf.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6950f7ec1d8f..970cc85ded6c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9336,6 +9336,27 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
goto error;
}
+ if (!portid) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Missing source portid for interface type '%s'"),
+ virDomainNetTypeToString(def->type));
+ goto error;
+ }
+
+ if (!connectionid) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Missing source connectionid for interface type '%s'"),
+ virDomainNetTypeToString(def->type));
+ goto error;
+ }
+
+ if (!portgroup) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Missing source portgroup for interface type '%s'"),
+ virDomainNetTypeToString(def->type));
+ goto error;
+ }
+
if (virUUIDParse(switchid, def->data.vds.switch_id) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unable to parse switchid '%s'"), switchid);
--
2.37.2
2 years, 2 months