[PATCH v5 0/3] Fix virtio console port assignment issue
by Aaron M. Brown
Changelog:
---
v5:
- Added xml tests to tests/qemuxmlconfdata
- Fixed virito -> virtio typo in commit message
---
v4:
- Update commit messages
---
v3:
- Added Reviewed-By
- Included CI Results Link
---
v2:
- Split patch into two commits
- Added fixes tag
---
This libvirt patch series does the following:
1. fixes an issue with virtio console device port auto assignment on vioserial buses
2. updates console port reservation comment and changes the allowZero variable to allowPortZero for clarity
3. Adds tests for virtio console on the vioserial bus
Currently in libvirt, a virtio console device cannot be auto assigned a port number greater than zero on a vioserial bus. This leads to port collision errors when adding more than 1 virtio console device on a single vioserial bus.
After applying this patch, one can add multiple console ports under a single vioserial bus.
Here is a link to CI results for this series: https://gitlab.com/aaronbmalik/libvirt/-/pipelines/1855918840
Aaron M. Brown (3):
qemuxmlconftest: Add console-virtio-vioserial tests
virDomainVirtioSerialAddrAssign: Fix virtio console port auto
assignment on vioserial bus
domain_addr.c: update console port reservation comment and allowZero
var to allowPortZero for clarity
src/conf/domain_addr.c | 27 +++++---
...onsole-virtio-vioserial.x86_64-latest.args | 44 +++++++++++++
...console-virtio-vioserial.x86_64-latest.xml | 63 +++++++++++++++++++
.../console-virtio-vioserial.xml | 48 ++++++++++++++
tests/qemuxmlconftest.c | 1 +
5 files changed, 173 insertions(+), 10 deletions(-)
create mode 100644 tests/qemuxmlconfdata/console-virtio-vioserial.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/console-virtio-vioserial.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/console-virtio-vioserial.xml
--
2.39.5 (Apple Git-154)
1 hour, 33 minutes
[PATCH v4 0/2] Fix virtio console port assignment issue
by Aaron M. Brown
Changelog:
---
v4:
- Update commit messages
---
v3:
- Added Reviewed-By
- Included CI Results Link
---
v2:
- Split patch into two commits
- Added fixes tag
---
This libvirt patch does the following:
1. fixes an issue with virtio console device port assignment on vioserial buses
2. updates console port reservation comment and changes the allowZero variable to allowPortZero for clarity
Currently in libvirt, a virtio console device cannot be assigned a port number greater than zero on a vioserial bus. This leads to port collision errors when adding more than 1 virtio console device on a single vioserial bus.
After applying this patch, one can add multiple console ports under a single vioserial bus.
Here is a link to CI results for this series: https://gitlab.com/aaronbmalik/libvirt/-/pipelines/1832324065
Aaron M. Brown (2):
virDomainVirtioSerialAddrAssign: Fix virtio console port assignment on
vioserial bus
domain_addr.c: Update console port reservation comment and allowZero
variable for clarity
src/conf/domain_addr.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
--
2.39.5 (Apple Git-154)
1 hour, 37 minutes
[PATCH 0/3] Drop unnecessary build dependencies
by Andrea Bolognani
We've recently stopped checking for the presence of several
commands at build time. That means we don't need them in the
RPM or CI build environment either.
Test pipeline: https://gitlab.com/abologna/libvirt/-/pipelines/1855622714
Andrea Bolognani (3):
rpm: Fix/clarify Requires
rpm: Drop unnecessary BuildRequires
ci: Drop unnecessary build dependencies
ci/buildenv/almalinux-9.sh | 9 ---------
ci/buildenv/alpine-321.sh | 6 ------
ci/buildenv/alpine-edge.sh | 6 ------
ci/buildenv/centos-stream-9.sh | 9 ---------
ci/buildenv/debian-12-cross-aarch64.sh | 8 --------
ci/buildenv/debian-12-cross-armv6l.sh | 8 --------
ci/buildenv/debian-12-cross-armv7l.sh | 8 --------
ci/buildenv/debian-12-cross-i686.sh | 8 --------
ci/buildenv/debian-12-cross-mips64el.sh | 8 --------
ci/buildenv/debian-12-cross-mipsel.sh | 8 --------
ci/buildenv/debian-12-cross-ppc64le.sh | 8 --------
ci/buildenv/debian-12-cross-s390x.sh | 8 --------
ci/buildenv/debian-12.sh | 8 --------
ci/buildenv/debian-sid-cross-aarch64.sh | 8 --------
ci/buildenv/debian-sid-cross-armv6l.sh | 8 --------
ci/buildenv/debian-sid-cross-armv7l.sh | 8 --------
ci/buildenv/debian-sid-cross-i686.sh | 8 --------
ci/buildenv/debian-sid-cross-mips64el.sh | 8 --------
ci/buildenv/debian-sid-cross-ppc64le.sh | 8 --------
ci/buildenv/debian-sid-cross-s390x.sh | 8 --------
ci/buildenv/debian-sid.sh | 8 --------
ci/buildenv/fedora-41.sh | 9 ---------
ci/buildenv/fedora-42-cross-mingw32.sh | 9 ---------
ci/buildenv/fedora-42-cross-mingw64.sh | 9 ---------
ci/buildenv/fedora-42.sh | 9 ---------
ci/buildenv/fedora-rawhide-cross-mingw32.sh | 9 ---------
ci/buildenv/fedora-rawhide-cross-mingw64.sh | 9 ---------
ci/buildenv/fedora-rawhide.sh | 9 ---------
ci/buildenv/opensuse-leap-15.sh | 8 --------
ci/buildenv/opensuse-tumbleweed.sh | 8 --------
ci/buildenv/ubuntu-2204.sh | 8 --------
ci/buildenv/ubuntu-2404.sh | 8 --------
ci/cirrus/freebsd-13.vars | 2 +-
ci/cirrus/freebsd-14.vars | 2 +-
ci/containers/almalinux-9.Dockerfile | 9 ---------
ci/containers/alpine-321.Dockerfile | 6 ------
ci/containers/alpine-edge.Dockerfile | 6 ------
ci/containers/centos-stream-9.Dockerfile | 9 ---------
.../debian-12-cross-aarch64.Dockerfile | 8 --------
.../debian-12-cross-armv6l.Dockerfile | 8 --------
.../debian-12-cross-armv7l.Dockerfile | 8 --------
ci/containers/debian-12-cross-i686.Dockerfile | 8 --------
.../debian-12-cross-mips64el.Dockerfile | 8 --------
.../debian-12-cross-mipsel.Dockerfile | 8 --------
.../debian-12-cross-ppc64le.Dockerfile | 8 --------
ci/containers/debian-12-cross-s390x.Dockerfile | 8 --------
ci/containers/debian-12.Dockerfile | 8 --------
.../debian-sid-cross-aarch64.Dockerfile | 8 --------
.../debian-sid-cross-armv6l.Dockerfile | 8 --------
.../debian-sid-cross-armv7l.Dockerfile | 8 --------
ci/containers/debian-sid-cross-i686.Dockerfile | 8 --------
.../debian-sid-cross-mips64el.Dockerfile | 8 --------
.../debian-sid-cross-ppc64le.Dockerfile | 8 --------
.../debian-sid-cross-s390x.Dockerfile | 8 --------
ci/containers/debian-sid.Dockerfile | 8 --------
ci/containers/fedora-41.Dockerfile | 9 ---------
.../fedora-42-cross-mingw32.Dockerfile | 9 ---------
.../fedora-42-cross-mingw64.Dockerfile | 9 ---------
ci/containers/fedora-42.Dockerfile | 9 ---------
.../fedora-rawhide-cross-mingw32.Dockerfile | 9 ---------
.../fedora-rawhide-cross-mingw64.Dockerfile | 9 ---------
ci/containers/fedora-rawhide.Dockerfile | 9 ---------
ci/containers/opensuse-leap-15.Dockerfile | 8 --------
ci/containers/opensuse-tumbleweed.Dockerfile | 8 --------
ci/containers/ubuntu-2204.Dockerfile | 8 --------
ci/containers/ubuntu-2404.Dockerfile | 8 --------
ci/lcitool/projects/libvirt.yml | 9 ---------
libvirt.spec.in | 18 +++---------------
68 files changed, 5 insertions(+), 548 deletions(-)
--
2.49.0
9 hours, 2 minutes
[PATCH 0/3] docs: Small tweaks to downloads page
by Andrea Bolognani
*** CLICK HERE TO BLURB ***
Andrea Bolognani (3):
docs: Unify clone instructions
docs: Drop mention of read-only git mirrors
docs: Add prompt to clone commands
docs/downloads.rst | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
--
2.49.0
10 hours, 14 minutes
[PATCH 0/2] docs: Fix docs for VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES_ZEROES
by Peter Krempa
Remove note about needing a pre-cleared image and document need to
enable discards to obtain a sparse image.
Peter Krempa (2):
Revert "docs: Add warning about using a cleared image with
VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES_ZEROES"
docs: Note that zero detection on migration sparsifies image only when
discard='unmap' is set
docs/manpages/virsh.rst | 7 +++----
include/libvirt/libvirt-domain.h | 12 +++++-------
2 files changed, 8 insertions(+), 11 deletions(-)
--
2.49.0
12 hours, 10 minutes
[PATCH 00/10] Unify argument name of migration APIs
by Michal Privoznik
Some of our APIs have 'bandwidth' argument but then, at internal impl
level it's renamed to 'resource', inconsistently. Since it's really
describing bandwidth that the migration can use, let's rename it.
Michal Prívozník (10):
src: Unify argument name of virDomainMigratePrepare()
src: Unify argument name of virDomainMigratePerform()
src: Unify argument name of virDomainMigratePrepare2()
src: Unify argument name of virDomainMigratePrepareTunnel()
src: Unify argument name of virDomainMigratePrepare3()
src: Unify argument name of virDomainMigratePrepareTunnel3()
src: Unify argument name of virDomainMigrateBegin3()
src: Unify argument name of virDomainMigratePerform3()
qemu: Finish argument rename
gendispatch: Finish rename of the migration argument
src/driver-hypervisor.h | 16 +++----
src/esx/esx_driver.c | 2 +-
src/libvirt_internal.h | 16 +++----
src/qemu/qemu_driver.c | 18 ++++----
src/qemu/qemu_migration.c | 72 ++++++++++++++---------------
src/remote/remote_daemon_dispatch.c | 10 ++--
src/remote/remote_driver.c | 24 +++++-----
src/remote/remote_protocol.x | 16 +++----
src/remote_protocol-structs | 16 +++----
src/rpc/gendispatch.pl | 36 +++++++--------
10 files changed, 113 insertions(+), 113 deletions(-)
--
2.49.0
13 hours, 27 minutes
[PATCH 0/7] virsh: Fix cleanup in 'event' command and introduce 'await' command
by Peter Krempa
'virsh await' is a helper/syntax-sugar command which allows you to wait
until a domain reaches a certain state. Currently this series implements
conditions named 'domain-inactive' and 'guest-agent-available'.
Peter Krempa (7):
virthread: Register auto cleanup function for virMutex
virthread: Add infrastructure for static virCond definitions
virsh: cmdEvent: Ensure that event callbacks are unregistered before
returning
vshCommandRun: Convert to directly return the exit code
vsh: Add support for commands with more return values
virsh: Introduce 'await' command for waiting until target domain state
is reached
virsh: await: Introduce 'guest-agent-available' condition
docs/manpages/virsh.rst | 30 ++++
src/util/virthread.h | 7 +
tools/virsh-domain-event.c | 321 ++++++++++++++++++++++++++++++++++++-
tools/virsh.c | 4 +-
tools/virt-admin.c | 4 +-
tools/vsh.c | 46 ++++--
tools/vsh.h | 3 +-
7 files changed, 398 insertions(+), 17 deletions(-)
--
2.49.0
14 hours, 56 minutes
[PATCH] libxl_capabilities: Make some functions return void
by Michal Privoznik
From: Michal Privoznik <mprivozn(a)redhat.com>
Inside of libxlMakeDomainCapabilities() there are some functions
called and basically all of them never return anything but zero
(indicating success). Yet, they are called in a fashion that
suggests otherwise. Turn those functions into void and drop
checks for their retvals.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/libxl/libxl_capabilities.c | 43 +++++++++++++---------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c
index 6aca4075e7..48f7619cc4 100644
--- a/src/libxl/libxl_capabilities.c
+++ b/src/libxl/libxl_capabilities.c
@@ -512,7 +512,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCaps *caps)
return 0;
}
-static int
+static void
libxlMakeDomainOSCaps(const char *machine,
virDomainCapsOS *os,
virFirmware **firmwares,
@@ -527,7 +527,7 @@ libxlMakeDomainOSCaps(const char *machine,
capsLoader->readonly.report = true;
if (STREQ(machine, "xenpv") || STREQ(machine, "xenpvh"))
- return 0;
+ return;
capsLoader->supported = VIR_TRISTATE_BOOL_YES;
capsLoader->values.values = g_new0(char *, nfirmwares);
@@ -542,11 +542,9 @@ libxlMakeDomainOSCaps(const char *machine,
VIR_DOMAIN_LOADER_TYPE_PFLASH);
VIR_DOMAIN_CAPS_ENUM_SET(capsLoader->readonly,
VIR_TRISTATE_BOOL_YES);
-
- return 0;
}
-static int
+static void
libxlMakeDomainDeviceDiskCaps(virDomainCapsDeviceDisk *dev)
{
dev->supported = VIR_TRISTATE_BOOL_YES;
@@ -562,11 +560,9 @@ libxlMakeDomainDeviceDiskCaps(virDomainCapsDeviceDisk *dev)
VIR_DOMAIN_DISK_BUS_IDE,
VIR_DOMAIN_DISK_BUS_SCSI,
VIR_DOMAIN_DISK_BUS_XEN);
-
- return 0;
}
-static int
+static void
libxlMakeDomainDeviceGraphicsCaps(virDomainCapsDeviceGraphics *dev)
{
dev->supported = VIR_TRISTATE_BOOL_YES;
@@ -576,11 +572,9 @@ libxlMakeDomainDeviceGraphicsCaps(virDomainCapsDeviceGraphics *dev)
VIR_DOMAIN_GRAPHICS_TYPE_SDL,
VIR_DOMAIN_GRAPHICS_TYPE_VNC,
VIR_DOMAIN_GRAPHICS_TYPE_SPICE);
-
- return 0;
}
-static int
+static void
libxlMakeDomainDeviceVideoCaps(virDomainCapsDeviceVideo *dev)
{
dev->supported = VIR_TRISTATE_BOOL_YES;
@@ -590,11 +584,9 @@ libxlMakeDomainDeviceVideoCaps(virDomainCapsDeviceVideo *dev)
VIR_DOMAIN_VIDEO_TYPE_VGA,
VIR_DOMAIN_VIDEO_TYPE_CIRRUS,
VIR_DOMAIN_VIDEO_TYPE_XEN);
-
- return 0;
}
-static int
+static void
libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev)
{
dev->supported = VIR_TRISTATE_BOOL_YES;
@@ -625,10 +617,9 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev)
virDomainCapsEnumClear(&dev->pciBackend);
VIR_DOMAIN_CAPS_ENUM_SET(dev->pciBackend, VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN);
- return 0;
}
-static int
+static void
libxlMakeDomainDeviceConsoleCaps(virDomainCapsDeviceConsole *console)
{
console->supported = VIR_TRISTATE_BOOL_YES;
@@ -643,8 +634,6 @@ libxlMakeDomainDeviceConsoleCaps(virDomainCapsDeviceConsole *console)
VIR_DOMAIN_CHR_TYPE_UDP,
VIR_DOMAIN_CHR_TYPE_UNIX,
VIR_DOMAIN_CHR_TYPE_VC);
-
- return 0;
}
virCaps *
@@ -698,15 +687,15 @@ libxlMakeDomainCapabilities(virDomainCaps *domCaps,
else
domCaps->maxvcpus = PV_MAX_VCPUS;
- if (libxlMakeDomainOSCaps(domCaps->machine, os, firmwares, nfirmwares) < 0 ||
- libxlMakeDomainDeviceDiskCaps(disk) < 0 ||
- libxlMakeDomainDeviceGraphicsCaps(graphics) < 0 ||
- libxlMakeDomainDeviceVideoCaps(video) < 0 ||
- libxlMakeDomainDeviceConsoleCaps(console))
- return -1;
- if (STRNEQ(domCaps->machine, "xenpvh") &&
- libxlMakeDomainDeviceHostdevCaps(hostdev) < 0)
- return -1;
+ libxlMakeDomainOSCaps(domCaps->machine, os, firmwares, nfirmwares);
+ libxlMakeDomainDeviceDiskCaps(disk);
+ libxlMakeDomainDeviceGraphicsCaps(graphics);
+ libxlMakeDomainDeviceVideoCaps(video);
+ libxlMakeDomainDeviceConsoleCaps(console);
+
+ if (STRNEQ(domCaps->machine, "xenpvh")) {
+ libxlMakeDomainDeviceHostdevCaps(hostdev);
+ }
domCaps->features[VIR_DOMAIN_CAPS_FEATURE_IOTHREADS] = VIR_TRISTATE_BOOL_NO;
domCaps->features[VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO] = VIR_TRISTATE_BOOL_NO;
--
2.49.0
16 hours, 50 minutes
[PATCH v2 0/4] conf: graphics def and parse refactor
by Kirill Shchetiniuk
This series refactors the existing parse logic by using the proper utility
functions, it also contains some parameters type changes to void
unnecessary type convertions.
1. 'VNC' graphics pasing were refactored to use the vitXMLProp* utility functions.
'autoport' and 'websocketGenerated' remain their bool type, as this structure
members can be also modified later and not only determined by the initial XML
definition.
2. 'RDP' graphics refactored same as VNC graphics, except that 'multiUser' and
'replaceUser' types changed from bool to tristateBool, as parameters are
determined only by the initial XML.
3. 'SDL' graphics fullscreen option type changed from bool to tristateBool,
to avoid unnecessary type convertions.
4. 'desktop' graphics fullscreen option is removed as it was never used.
Kirill Shchetiniuk (4):
conf: VNC graphics parse refactor
conf: SDL fullscreen option refactor
conf: RDP graphics parse refactor
conf: desktop graphics remove unused option
docs/formatdomain.rst | 5 +-
src/conf/domain_conf.c | 125 ++++++++++++++----------------
src/conf/domain_conf.h | 7 +-
src/conf/schemas/domaincommon.rng | 5 --
src/qemu/qemu_command.c | 2 +-
src/qemu/qemu_process.c | 4 +-
src/qemu/qemu_validate.c | 4 +-
src/vbox/vbox_common.c | 8 +-
8 files changed, 71 insertions(+), 89 deletions(-)
--
2.49.0
1 day, 11 hours
[PATCH 0/4] conf: graphics def and parse refactor
by Kirill Shchetiniuk
This series is supposed to refactor the existing parse logic by
using the proper utility function and some parameters type change.
1. VNC graphics pasing were refactored to use the vitXMLProp* utility functions.
'autoport' and 'websocketGenerated' remain their bool type, as this structure
members can be also modified later and not only determined by the initial XML
definition.
2. RDP graphics refactored same as VNC graphics, exept that 'multiUser' and
'replaceUser' types changed from bool to tristate, as parameters determined
only by the initial XML.
3. SDL graphics fullscreen option type changed from bool to tristate, to avoid
unnecessary type convertions.
4. desktop fullscreen option is removed as it was never used.
Kirill Shchetiniuk (4):
conf: VNC graphics parse refactor
conf: SDL fullscreen option refactor
conf: RDP graphics parse refactor
conf: desktop graphics remove unused option
docs/formatdomain.rst | 5 +-
src/conf/domain_conf.c | 125 ++++++++++++++----------------
src/conf/domain_conf.h | 7 +-
src/conf/schemas/domaincommon.rng | 5 --
src/qemu/qemu_command.c | 2 +-
src/qemu/qemu_process.c | 4 +-
src/qemu/qemu_validate.c | 4 +-
src/vbox/vbox_common.c | 8 +-
8 files changed, 71 insertions(+), 89 deletions(-)
--
2.49.0
1 day, 13 hours