]> git.ipfire.org Git - thirdparty/libvirt.git/log
thirdparty/libvirt.git
2 days agoqemu: add tests for standalone VNC graphics master
Marc-André Lureau [Wed, 22 Apr 2026 14:14:37 +0000 (18:14 +0400)] 
qemu: add tests for standalone VNC graphics

Add xml2argv tests verifying the standalone VNC feature:

- graphics-vnc-standalone: when both <graphics type='dbus'/> and
  <graphics type='vnc'/> are present, the -vnc QEMU argument is
  omitted since qemu-vnc handles VNC externally via D-Bus.

- graphics-vnc-standalone-socket: same behavior with a Unix socket
  listen address.

- graphics-vnc-standalone-p2p: when dbus is p2p mode, standalone
  VNC is NOT triggered and the built-in -vnc argument is preserved.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 days agoqemu: wire up standalone VNC in driver APIs
Marc-André Lureau [Wed, 22 Apr 2026 14:14:36 +0000 (18:14 +0400)] 
qemu: wire up standalone VNC in driver APIs

Route the OpenGraphics, OpenGraphicsFD, and GraphicsReload driver
APIs through the standalone qemu-vnc D-Bus interface when active.
Client connections are passed via D-Bus fd-passing (AddClient),
certificate reloading uses the ReloadCertificates method, and
password changes use SetPassword.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 days agoqemu: integrate standalone VNC in domain lifecycle
Marc-André Lureau [Wed, 22 Apr 2026 14:14:35 +0000 (18:14 +0400)] 
qemu: integrate standalone VNC in domain lifecycle

When both a D-Bus display and a VNC graphics device are configured
and the qemu-vnc binary is available, use the standalone VNC server
instead of QEMU's built-in VNC.

During domain preparation, detect whether the standalone VNC path
applies and allocate the qemuVnc context. Skip the built-in -vnc
command line argument when standalone VNC is active. Start and stop
the qemu-vnc process through the external device hooks.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 days agoqemu: add qemu-vnc helper unit
Marc-André Lureau [Wed, 22 Apr 2026 14:14:34 +0000 (18:14 +0400)] 
qemu: add qemu-vnc helper unit

Add helpers to manage the standalone qemu-vnc VNC server process.
The qemu-vnc server connects to QEMU via the D-Bus display interface,
providing VNC access decoupled from the QEMU process.

The helper handles process lifecycle (start/stop), D-Bus name
watching, and provides D-Bus methods for password management,
certificate reloading, and client connections.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 days agoqemu: add qemu-vnc configuration
Marc-André Lureau [Wed, 22 Apr 2026 14:14:33 +0000 (18:14 +0400)] 
qemu: add qemu-vnc configuration

Add qemu_vnc configuration entry to specify the path to the
standalone qemu-vnc binary.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 days agoqemu: add standalone VNC state directory
Marc-André Lureau [Wed, 22 Apr 2026 14:14:32 +0000 (18:14 +0400)] 
qemu: add standalone VNC state directory

Add a state directory for the standalone qemu-vnc process, following
the same pattern used for the RDP state directory.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agohyperv: report nested virtualization setting in domain XML
Jonathon Jongsma [Thu, 26 Mar 2026 19:01:24 +0000 (14:01 -0500)] 
hyperv: report nested virtualization setting in domain XML

When Hyper-V is configured to expose virtualization extensions to a
guest, report this in the domain XML by adding the vendor-appropriate
CPU feature flag:

- Intel hosts: <feature policy='require' name='vmx'/>
- AMD hosts: <feature policy='require' name='svm'/>

This requires adding ExposeVirtualizationExtensions and several other
fields introduced in Windows 10 to the Msvm_ProcessorSettingData WMI
class definition.

Resolves: https://redhat.atlassian.net/browse/RHEL-159129

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agohyperv: Rename hypervGetProcessorsByName() to hypervGetProcessorList()
Jonathon Jongsma [Fri, 13 Feb 2026 17:00:51 +0000 (11:00 -0600)] 
hyperv: Rename hypervGetProcessorsByName() to hypervGetProcessorList()

Make the 'name' parameter optional and return all processors from the
host if name is not specified.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agohyperv: fix error handling of hypervGetProcessorsByName()
Jonathon Jongsma [Thu, 26 Mar 2026 15:36:37 +0000 (10:36 -0500)] 
hyperv: fix error handling of hypervGetProcessorsByName()

We were checking the output pointer for NULL rather than checking the
dereferenced value for NULL. So the case where no processors were
returned would not have returned an error as expected.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agoqemucapabilitiestest: Add data for the qemu-11.1 dev cycle (aarch64)
Peter Krempa [Tue, 2 Jun 2026 18:47:42 +0000 (20:47 +0200)] 
qemucapabilitiestest: Add data for the qemu-11.1 dev cycle (aarch64)

The dump is based on QEMU commit 'v11.0.0-1600-g5611a9268d'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agoqemucapabilitiestest: Add data for the qemu-11.1 dev cycle (x86_64)
Peter Krempa [Tue, 5 May 2026 05:30:37 +0000 (07:30 +0200)] 
qemucapabilitiestest: Add data for the qemu-11.1 dev cycle (x86_64)

The dump is based on QEMU commit 'v11.0.0-1600-g5611a9268d'

Notable changes:

 - machine types for the 11.1.0 release added
 - (auto) deprecated 8.1 machine type
 - 'poll-weight' property added for 'iothread' object
 - 'clipboard' property added for 'gtk' display backend
 - 'vhost-user-rtc' device added
 - new CPU models/versions
    - Cascadelake-Server-v6-x86_64-cpu
    - Cascadelake-Server-v7-x86_64-cpu
    - ClearwaterForest-v4-x86_64-cpu
    - DiamondRapids-v2-x86_64-cpu
    - EPYC-Genoa-v3-x86_64-cpu
    - EPYC-Milan-v4-x86_64-cpu
    - EPYC-Turin-v2-x86_64-cpu
    - GraniteRapids-v6-x86_64-cpu
    - GraniteRapids-v7-x86_64-cpu
    - Icelake-Server-v8-x86_64-cpu
    - Icelake-Server-v9-x86_64-cpu
    - SapphireRapids-v7-x86_64-cpu
    - SapphireRapids-v8-x86_64-cpu
    - SierraForest-v6-x86_64-cpu
    - Skylake-Server-v6-x86_64-cpu
 - 'query-kvm' command is now deprecated
 - removed 'gluster' blockdev backend
 - 'blkdebug' blockdev backend allows injecting delays
 - chardev backends support 'encoding' property
 - 'remaining' amount reported in 'query-migrate'
 - 'target-info-x86_64' QOM type added
 - 'x-rdma-chunk-size' migration parameter added

The few changed '.args' files update the machine type to the actual
version because they were frozen before we've added a newer capability
dump (latest machine type is masked to stabilize test outputs).

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 days agoqemublocktest: Skip schema validation on 'gluster' backend tests
Peter Krempa [Tue, 2 Jun 2026 12:55:14 +0000 (14:55 +0200)] 
qemublocktest: Skip schema validation on 'gluster' backend tests

qemu-11.1 will drop support for the 'gluster' block backend driver. We
want to keep the tests around to validate that nothing in the
parser/generator has changed but there's no point in wiring up QMP
schema validation against older versions.

Skip the schema validation for gluster qemublocktests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agoci: Regenerate with 'lcitool'
Peter Krempa [Tue, 2 Jun 2026 06:55:26 +0000 (08:55 +0200)] 
ci: Regenerate with 'lcitool'

Drop the job definitions now that Cirrus CI was removed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agoci: Drop 'Cirrus CI' job defnitions
Peter Krempa [Tue, 2 Jun 2026 06:50:16 +0000 (08:50 +0200)] 
ci: Drop 'Cirrus CI' job defnitions

Cirrus CI no longer exists. Drop the current jobs using it from the
definitions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agoci: README: Delete section about 'Cirrus CI'
Peter Krempa [Tue, 2 Jun 2026 06:48:34 +0000 (08:48 +0200)] 
ci: README: Delete section about 'Cirrus CI'

The service no longer exists.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agoqemu_capabilities: Fix domain capabilities on AMD CPUs
Jiri Denemark [Mon, 25 May 2026 12:31:07 +0000 (14:31 +0200)] 
qemu_capabilities: Fix domain capabilities on AMD CPUs

The arch-capabilities MSR is not defined on AMD CPUs, but KVM has always
been emulating them. Unfortunately, this may cause Windows to crash so
QEMU (since 10.1, commit d3a24134e37d57abd3e7445842cda2717f49e96d)
decided to mask the MSR by default with some additional compatibility
code for older machine types.

This is all mostly transparent except for probing when we run QEMU
without a machine type and expand the "host" CPU model. With QEMU 10.1
and newer none of the arch-capabilities features will be shown as
enabled, which may cause unexpected issues for users (such as KubeVirt)
that get the list of all supported features from the host-model CPU
definition in domain capabilities to select possible target nodes for
migration. As a result of the change, no AMD host with new QEMU will be
shown as available for incoming migration from older hosts.

Since the features are supported on the host (it's possible to
explicitly enable them), but they should not be enabled by default in
host-model CPU, we only add the to domain capabilities when
VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag is set.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agodomaincapstest: Test SUPPORTED_CPU_FEATURES flag
Jiri Denemark [Fri, 29 May 2026 11:10:44 +0000 (13:10 +0200)] 
domaincapstest: Test SUPPORTED_CPU_FEATURES flag

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agovirsh: Add --supported-cpu-features option for domcapabilities
Jiri Denemark [Fri, 29 May 2026 10:52:59 +0000 (12:52 +0200)] 
virsh: Add --supported-cpu-features option for domcapabilities

The option corresponds to the
VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES API flag.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoIntroduce VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag
Jiri Denemark [Fri, 29 May 2026 10:52:39 +0000 (12:52 +0200)] 
Introduce VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag

Some CPU features may be enabled explicitly, but should not
automatically become part of a host-model CPU. Users can now request
such features to be shown in the host-model CPU in domain capabilities
by VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoFix documentation of VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES
Jiri Denemark [Tue, 26 May 2026 13:38:59 +0000 (15:38 +0200)] 
Fix documentation of VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES

The flag is designed for expanding the CPU model used by host-model. But
the documentation was sometimes describing it as showing all CPU
features supported on the host, which is wrong as the host may support
features that would not be enabled in host-model.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agocpu: Introduce virCPUUpdateFeatures
Jiri Denemark [Mon, 25 May 2026 12:22:58 +0000 (14:22 +0200)] 
cpu: Introduce virCPUUpdateFeatures

This new API can be used to update an existing CPU definition with
features described by CPU data.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agocpu_x86: Introduce virCPUx86DataAddMSR
Jiri Denemark [Mon, 25 May 2026 11:17:47 +0000 (13:17 +0200)] 
cpu_x86: Introduce virCPUx86DataAddMSR

This just makes the relevant part of virCPUx86GetHost reusable in other
places.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoutil: Publish and mock virHostCPUGetMSRFromKVM
Jiri Denemark [Mon, 25 May 2026 10:27:41 +0000 (12:27 +0200)] 
util: Publish and mock virHostCPUGetMSRFromKVM

The function will later be called when probing QEMU capabilities.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agodomaincapstest: Test EXPAND_CPU_FEATURES flag
Jiri Denemark [Thu, 28 May 2026 12:49:17 +0000 (14:49 +0200)] 
domaincapstest: Test EXPAND_CPU_FEATURES flag

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu_capabilities: Cache expanded CPU
Jiri Denemark [Thu, 21 May 2026 15:55:28 +0000 (17:55 +0200)] 
qemu_capabilities: Cache expanded CPU

When probing host model CPU we already expand it to get a list of all
CPU features. Let's store the expanded CPU definition in virQEMUCaps and
copy it to domain capabilities when requested by the
VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES flag instead of
expanding the CPU over and over on each request.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu_capabilities: Split conditions in virQEMUCapsInitHostCPUModel
Jiri Denemark [Thu, 21 May 2026 15:30:21 +0000 (17:30 +0200)] 
qemu_capabilities: Split conditions in virQEMUCapsInitHostCPUModel

Having 'else' after goto is useless.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu_capabilities: Use g_autoptr in virQEMUCapsInitHostCPUModel
Jiri Denemark [Thu, 21 May 2026 12:15:01 +0000 (14:15 +0200)] 
qemu_capabilities: Use g_autoptr in virQEMUCapsInitHostCPUModel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu_capabilities: Always sort features in host-model CPU
Jiri Denemark [Fri, 29 May 2026 12:19:30 +0000 (14:19 +0200)] 
qemu_capabilities: Always sort features in host-model CPU

Expanding a CPU model always produces a sorted list of features so the
features in host-model CPU capabilities were either sorted or not
depending on flags passed to virConnectGetDomainCapabilities.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu: Move domain caps flags handling to virQEMUCapsFillDomainCPUHostModel
Jiri Denemark [Thu, 21 May 2026 10:36:48 +0000 (12:36 +0200)] 
qemu: Move domain caps flags handling to virQEMUCapsFillDomainCPUHostModel

We will need to generate the capabilities in a different way based on
the flags.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoqemu_capabilities: Split virQEMUCapsFillDomainCPUCaps
Jiri Denemark [Thu, 21 May 2026 10:24:25 +0000 (12:24 +0200)] 
qemu_capabilities: Split virQEMUCapsFillDomainCPUCaps

Each CPU mode is filled in its own dedicated function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agocpu_conf: Introduce virCPUDefSortFeatures
Jiri Denemark [Fri, 29 May 2026 11:00:10 +0000 (13:00 +0200)] 
cpu_conf: Introduce virCPUDefSortFeatures

Separate the sorting code from virCPUExpandFeatures into a standalone
function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 days agoci: regenerate with 'lcitool manifest'
Michal Privoznik [Thu, 28 May 2026 10:02:36 +0000 (12:02 +0200)] 
ci: regenerate with 'lcitool manifest'

This drops Debian 12 and introduces Debian 13, since Debian 12
reached its EOL on 2026-06-10 [1]. However, Debian 13 dropped
official support for mipsel and mips64el, but introduced riscv64
support. Reflect this changes in supported arches in the manifest
file and regenerate with the latest lcitool.

1: https://www.debian.org/releases/
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
4 days agoexamples: Improved shell output of showDomains
Daniel Hora [Thu, 28 May 2026 13:28:26 +0000 (15:28 +0200)] 
examples: Improved shell output of showDomains

Improved formatting of the shell output of the
function showDomains based on length of the longest domain.

Signed-off-by: Daniel Hora <dhora@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agobhyve: implement the domainGetFSInfo() API
Roman Bogorodskiy [Fri, 22 May 2026 16:57:23 +0000 (18:57 +0200)] 
bhyve: implement the domainGetFSInfo() API

This implementation is identical to the one found in the qemu driver.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agohypervisor: qemu_agent: add virDomainFSInfoFormat()
Roman Bogorodskiy [Fri, 22 May 2026 17:40:22 +0000 (19:40 +0200)] 
hypervisor: qemu_agent: add virDomainFSInfoFormat()

The virDomainFSInfoFormat() and qemuAgentFSInfoToPublic() function
implementations are not driver dependent and can be shared across
drivers, so move them to a common place to avoid code duplication.

Also, rename virDomainFSInfoFormat() to qemuAgentFSInfoFormat() to follow
the naming scheme in qemu_agent.c.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agobhyve: support getting interface addresses from agent
Roman Bogorodskiy [Fri, 22 May 2026 14:16:58 +0000 (16:16 +0200)] 
bhyve: support getting interface addresses from agent

Extend bhyveDomainInterfaceAddresses() to support
the VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT source.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 days agobhyve: reorder qemu agent code
Roman Bogorodskiy [Fri, 22 May 2026 14:12:49 +0000 (16:12 +0200)] 
bhyve: reorder qemu agent code

Move all the helpers to the beginning for the file to
be able to use them in every API implementation.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
5 days agoPost-release version bump to 12.5.0
Jiri Denemark [Mon, 1 Jun 2026 10:24:27 +0000 (12:24 +0200)] 
Post-release version bump to 12.5.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
5 days agoRelease of libvirt-12.4.0 v12.4.0
Jiri Denemark [Mon, 1 Jun 2026 10:21:48 +0000 (12:21 +0200)] 
Release of libvirt-12.4.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
8 days agodocs: drvbhyve: reorganize sections about resource limits v12.4.0-rc2
Roman Bogorodskiy [Wed, 27 May 2026 17:05:21 +0000 (19:05 +0200)] 
docs: drvbhyve: reorganize sections about resource limits

Sections about resource limits are currently placed across the file
in between various device examples. To make it easier to follow,
group them into a single section. This also allows to give
an introduction on the rctl(8) framework once instead of repeating
it for every resource type.

Also, document the memory limitation support added in libvirt 12.4.0.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
9 days agoNEWS: document bhyve changes for 12.4.0
Roman Bogorodskiy [Wed, 27 May 2026 16:34:02 +0000 (18:34 +0200)] 
NEWS: document bhyve changes for 12.4.0

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
9 days agoqemu_nbdkit: Fix format when printing time_t values
Michal Privoznik [Thu, 28 May 2026 12:31:56 +0000 (14:31 +0200)] 
qemu_nbdkit: Fix format when printing time_t values

The time_t type can be 32bit or 64bit signed integer. There are
systems where it's defined as long, or long long (32bit systems
usually). Therefore, using just 'l' length modifier is not good
enough. Also, using 'u' conversion specifier is also wrong
(though, values stored in qemuNbdkitCaps struct reflect mtime of
some files, so there won't be a negative value).

Anyway, do what we already do for virQEMUCaps - use '%lld' printf
format and typecast to long long.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
9 days agoNEWS: Document features/improvements/bug fixes I've participated in
Michal Privoznik [Wed, 27 May 2026 13:57:48 +0000 (15:57 +0200)] 
NEWS: Document features/improvements/bug fixes I've participated in

There are some features/improvements/bug fixes I've either
contributed or reviewed/merged. Document them for upcoming
release.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
10 days agotests: Link qemuxml2argvmock with test_utils_lib
Michal Privoznik [Tue, 26 May 2026 13:18:52 +0000 (15:18 +0200)] 
tests: Link qemuxml2argvmock with test_utils_lib

When running qemuxmlconftest under valgrind, it fails with a
symbol lookup error:

  valgrind: symbol lookup error: libvirt.git/_build/tests/libqemuxml2argvmock.so: undefined symbol: virTestMakeDummyFD

This occurs because qemuxml2argvmock uses the
virTestMakeDummyFD() function (implemented in testutils.c) but
does not explicitly link against test_utils_lib. Fix this by
linking the test utils library to the mock library, statically.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
10 days agomailmap: Map 'via Devel' mailing-list From-munged authors to real identities
Denis V. Lunev [Wed, 20 May 2026 16:47:44 +0000 (18:47 +0200)] 
mailmap: Map 'via Devel' mailing-list From-munged authors to real identities

The devel@lists.libvirt.org mailing list rewrites the From: header
for DMARC reasons, so patches submitted via the list land in git as
'<Real Name> via Devel <devel@lists.libvirt.org>'. This currently
affects 30 commits across 13 distinct contributors, all of whom are
identifiable by their Signed-off-by trailer.

Add mailmap entries that remap each mangled identity back to the
author's real name and address, matching the approach used by the
Linux kernel for the same problem.

Beyond cosmetic cleanup, this keeps contribution statistics
(git shortlog, contributor graphs) accurate and ensures contributors
get proper credit for their work, which is valuable when they look
for new positions or otherwise need a verifiable record of upstream
activity.

This approach is standard for such situations in Linux kernel. I have
seen this several times.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
11 days agopo: Refresh potfile for v12.4.0 v12.4.0-rc1
Jiri Denemark [Mon, 25 May 2026 20:51:15 +0000 (22:51 +0200)] 
po: Refresh potfile for v12.4.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
12 days agoqemuxmlconftest: Use real FD for iommufd object in tests
Peter Krempa [Wed, 20 May 2026 08:46:58 +0000 (10:46 +0200)] 
qemuxmlconftest: Use real FD for iommufd object in tests

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Use real FDs for hostdev tests
Peter Krempa [Fri, 15 May 2026 12:25:38 +0000 (14:25 +0200)] 
qemuxmlconftest: Use real FDs for hostdev tests

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxml2argvmock: Use real FDs for interface tests
Peter Krempa [Tue, 19 May 2026 16:06:31 +0000 (18:06 +0200)] 
qemuxml2argvmock: Use real FDs for interface tests

Similarly to previous commits use real FDs so that we don't risk
collisions.

Note that for the test cases passing multiple tap and vhost FDs the
helpers which stabilize the output don't actually work, as the FDs are
concatenated. For now we'll not deal with this and simply leave them
censored by the 'XXXXXXX' string.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Use real FDS for testing of 'vsock'
Peter Krempa [Wed, 20 May 2026 12:15:55 +0000 (14:15 +0200)] 
qemuxmlconftest: Use real FDS for testing of 'vsock'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agotestutilsqemu: Remove unused 'ARG_VDPA_FD' test argument
Peter Krempa [Wed, 20 May 2026 12:03:02 +0000 (14:03 +0200)] 
testutilsqemu: Remove unused 'ARG_VDPA_FD' test argument

The code was refactored to allow any FD numbers so the code to map them
to specific numbers is no longer needed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Use virTestMakeDummyFD() to get VDPA disk fds
Peter Krempa [Wed, 20 May 2026 11:59:12 +0000 (13:59 +0200)] 
qemuxmlconftest: Use virTestMakeDummyFD() to get VDPA disk fds

While VDPA disks did use real FDs they used convoluted infrastructure
for mapping them to specific numbers. Remove that since we can now mask
them from the output args instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: (consistently) use real FDs in tests for VDPA netdevs
Peter Krempa [Tue, 17 May 2022 13:22:16 +0000 (15:22 +0200)] 
qemuxmlconftest: (consistently) use real FDs in tests for VDPA netdevs

Use virTestMakeDummyFD() to get a real FD for the test in
qemuxmlconftest.

Use virTestMakeDummyFD() also in qemuhotplugmock.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxml2argvmock: qemuBuildTPMOpenBackendFDs: Use real FDs
Peter Krempa [Tue, 19 May 2026 16:17:00 +0000 (18:17 +0200)] 
qemuxml2argvmock: qemuBuildTPMOpenBackendFDs:  Use real FDs

Use 'virTestMakeDummyFD()' to create real FDs both for 'tpmfd' and
'cancelfd'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Setup real FDs for 'vhost-user-vga'
Peter Krempa [Tue, 19 May 2026 15:52:04 +0000 (17:52 +0200)] 
qemuxmlconftest: Setup real FDs for 'vhost-user-vga'

Initialize the chardev backends for vhost-user graphics to use real FDs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agotestQemuPrepareHostBackendChardevOne: Use real FDs for all cases
Peter Krempa [Tue, 19 May 2026 15:35:21 +0000 (17:35 +0200)] 
testQemuPrepareHostBackendChardevOne: Use real FDs for all cases

Use the virTestMakeDummyFD() function to setup real FDs for all chardev
backends which are set up via testQemuPrepareHostBackendChardevOne.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agovirDomainFDTuple: drop 'testfds' field
Peter Krempa [Mon, 18 May 2026 12:58:51 +0000 (14:58 +0200)] 
virDomainFDTuple: drop 'testfds' field

Thanks to real FD testing we no longer need to inject test
infrastructure into production code. Remove it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agotestQemuInfoSetArgs: Use real FDs with 'ARG_FD_GROUP'
Peter Krempa [Wed, 13 May 2026 14:33:49 +0000 (16:33 +0200)] 
testQemuInfoSetArgs: Use real FDs with 'ARG_FD_GROUP'

Switch over to 'virTestMakeDummyFD' which allows to use real FDs in the
test and also allows to track them in the output files in a stable way.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agotestutilsqemu: Use real FD for monitor FDs instantiated by 'testQemuPrepareHostBacken...
Peter Krempa [Mon, 18 May 2026 10:37:24 +0000 (12:37 +0200)] 
testutilsqemu: Use real FD for monitor FDs instantiated by 'testQemuPrepareHostBackendChardevOne'

Switch to 'virTestMakeDummyFD' which uses a real FD. No otuputs are
changed thanks to the code which censors 'fd' field of --add-fd.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Stabilize 'vfio-pci' hostdev fds
Peter Krempa [Wed, 20 May 2026 08:05:53 +0000 (10:05 +0200)] 
qemuxmlconftest: Stabilize 'vfio-pci' hostdev fds

Prepare to use real FDs in tests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Stabilize fds in '-netdev'
Peter Krempa [Tue, 19 May 2026 16:10:14 +0000 (18:10 +0200)] 
qemuxmlconftest: Stabilize fds in '-netdev'

Use 'testCompareXMLToArgvStabilizeOne' to provide stable test outputs
even when we'll switch to real FDs in tests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Stabilize 'vsock' 'vhostfd' file descriptior in output files
Peter Krempa [Wed, 20 May 2026 12:14:17 +0000 (14:14 +0200)] 
qemuxmlconftest: Stabilize 'vsock' 'vhostfd' file descriptior in output files

Install hanlder to stabilize 'vhostfd' fds in -device so that we can
later switch tests to use real FDs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Stabilize FDs in iommufd objects
Peter Krempa [Mon, 18 May 2026 16:04:27 +0000 (18:04 +0200)] 
qemuxmlconftest: Stabilize FDs in iommufd objects

Install the handler to stabilize output files on '-object' with
'iommufd' qom type which references a FD directly via the 'fd' property.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemumonitorjsontest: Stabilize FD names in '-chardev'
Peter Krempa [Fri, 15 May 2026 16:53:41 +0000 (18:53 +0200)] 
qemumonitorjsontest: Stabilize FD names in '-chardev'

Use 'testCompareXMLToArgvStabilizeOne' to censor FD values in '-chardev'
commands for stable test outputs without the need for fake FDs.

For monitor sockets this also creates a hint '@mon-fd@' to be used as
substitution to prevent any further churn on basically every .args file.
The substitution is done by temporarily using another fake FD (1764)
instead of 1729 so that it's unique.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Stablilize '-add-fd' arguments
Peter Krempa [Wed, 13 May 2026 13:31:30 +0000 (15:31 +0200)] 
qemuxmlconftest: Stablilize '-add-fd' arguments

Add code which walks the generated argument list and allows to strip out
and replace by a substitution any field in either JSON or legacy qemu
argument string.

Use it to stabilize 'fd' field of '-add-fd'

This will allow us to rip out code which tries to allocate stable FD
numbers, which doesn't work reliably (e.g. if the environment passes
some FDs).

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Move mock'd FDs further out
Peter Krempa [Wed, 20 May 2026 15:28:41 +0000 (17:28 +0200)] 
qemuxmlconftest: Move mock'd FDs further out

Upcoming patches will introduce use of real FDs for tests. Since the
test will go through many FDs they will collide with the fake ones
allocated randomly in qemuxml2argvmock.

Move them out for now until they are replaced and masked out from the
tests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agotestutils: Introduce virTestMakeDummyFD
Peter Krempa [Wed, 13 May 2026 14:51:58 +0000 (16:51 +0200)] 
testutils: Introduce virTestMakeDummyFD

The helper makes a dummy (file) FD to be used as FD in tests which want
to handle a FD but don't really use it. It also optionally records the
FD number along with a hint in a hash table which can be later
used to fetch the hint and stabilize test outputs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoutil: json: Introduce 'virJSONValueObjectReplaceKey'
Peter Krempa [Wed, 13 May 2026 14:32:26 +0000 (16:32 +0200)] 
util: json: Introduce 'virJSONValueObjectReplaceKey'

Add a helper which replaces the value part of a JSON object key. This
will be helpful in tests where we'll want to rewrite some outputs (e.g.
fds) to stabilize output files.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoutil: command: Remove virCommandGetArgList
Peter Krempa [Wed, 13 May 2026 13:12:18 +0000 (15:12 +0200)] 
util: command: Remove virCommandGetArgList

The function is now unused, remove it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Use virCommandArgListAccess in testCompareXMLToArgvValidateSchema
Peter Krempa [Wed, 13 May 2026 13:10:55 +0000 (15:10 +0200)] 
qemuxmlconftest: Use virCommandArgListAccess in testCompareXMLToArgvValidateSchema

Access the args directly rather than fetching a copy since we have a new
helper now.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoutil: vircommand: Add direct accessor for 'args' array for tests
Peter Krempa [Wed, 13 May 2026 12:59:50 +0000 (14:59 +0200)] 
util: vircommand: Add direct accessor for 'args' array for tests

Introduce virCommandArgListAccess which returns 'args' and 'nargs'

Upcoming patches will add code which censores/stabilizes FD numbers in
test outputs. This will be done by rewriting the argument of the command
before comparing it with test output. Add a test-only function to
directly access 'args' and 'nargs' of a virCommand to do this
modification.

This accessor will also be used instead of 'virCommandGetArgList' in
'testCompareXMLToArgvValidateSchema' to avoid needles copy of all
arguments.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxml2argvmock: Fix behaviour of 'virCommandPass' mock
Peter Krempa [Fri, 15 May 2026 12:34:27 +0000 (14:34 +0200)] 
qemuxml2argvmock: Fix behaviour of 'virCommandPass' mock

The 'virCommandPass' mock in 'qemuxml2argvmock.so' skipped passing most
FDs to the real implementation of 'virCommandPass', except for few fake
FDs that were hardcoded.

This meant that if a test case had an valid FD that it used for testing
that FD would be leaked. At the same time fake fds 1730, 1731, 1732
would be actually passed to the virCommand itself although the FD was
invalid.

Since neither of the above makes sense fix the implementation the
following way:

 - refuse to pass any STDIO fds
     They are real and they would break test program output. Some tests
     do try to use them errorneously; they will be addressed later.

 - pass real FDs to virCommand
    Real FDs can be properly handled by virCommand. Especially they will
    be closed once the virCommand object is disposed of.

 - don't pass fake FDs
    They create extra noise e.g. in valgrind. Skip those as it makes no
    sense to handle those.

This patch addresses most failures that valgrind reports with
--track-fds=all.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuFDPassLogFDInfo: Check if FD is valid before 'fstat'-ing it
Peter Krempa [Mon, 18 May 2026 08:38:12 +0000 (10:38 +0200)] 
qemuFDPassLogFDInfo: Check if FD is valid before 'fstat'-ing it

Some test cases (qemuxmlconftest) currently use made up descriptors,
which cause e.g. valgrind to be unhappy:

 ==831186== File descriptor 1729 Invalid file descriptor
 ==831186==    at 0x531042E: fgetxattr (in /usr/lib64/libc.so.6)
 ==831186==    by 0x5AE2846: ??? (in /usr/lib64/libselinux.so.1)
 ==831186==    by 0x5AE7093: fgetfilecon_raw (in /usr/lib64/libselinux.so.1)
 ==831186==    by 0x4EB736F: qemuFDPassLogFDInfo (qemu_fd.c:92)
 ==831186==    by 0x4EB7B8E: qemuFDPassDirectTransferCommand (qemu_fd.c:443)

when tracking FDs. Since 'qemuFDPassLogFDInfo' just logs information
about the FD we can simply not query the FD if it's made up.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoutil: command: Extract common parts of FD closing to virCommandMassClose
Peter Krempa [Wed, 13 May 2026 09:15:03 +0000 (11:15 +0200)] 
util: command: Extract common parts of FD closing to virCommandMassClose

Extract the lookup of used FDs and their setup to virCommandMassClose
rather than duplicate it in the two functions we have for using
different modes of FD closing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemu: Stop mocking 'qemuOpenChrChardevUNIXSocket'
Peter Krempa [Wed, 13 May 2026 15:39:06 +0000 (17:39 +0200)] 
qemu: Stop mocking 'qemuOpenChrChardevUNIXSocket'

The tests now use 'testQemuPrepareHostBackendChardevOne' which replaces
'qemuProcessPrepareHostBackendChardevOne' which is skipped as it is a
host setup step.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemuxmlconftest: Remove unused 'monitor_chr' from testCompareXMLToArgv
Peter Krempa [Wed, 13 May 2026 15:14:54 +0000 (17:14 +0200)] 
qemuxmlconftest: Remove unused 'monitor_chr' from testCompareXMLToArgv

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agovirsh: fix entering interactive session
Roman Bogorodskiy [Sat, 23 May 2026 07:24:48 +0000 (09:24 +0200)] 
virsh: fix entering interactive session

When entering an interactive session, that is, without a command
specified:

  virsh --connect $URI

virsh currently segfaults because it tries to access
ctl->cmd->def->handler and the ctl->cmd is NULL.

Fix by checking if ctl->cmd is not NULL before doing further checks.

Fixes: b489eb8d6b52d4183754a5d1da55006148a331e4
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
12 days agoci: Fix --engine flag positioning in helper script
Radoslaw Smigielski via Devel [Fri, 22 May 2026 16:57:48 +0000 (18:57 +0200)] 
ci: Fix --engine flag positioning in helper script

The --engine flag was being added to positional_args before the "run"
subcommand, which resulted in incorrect lcitool invocations:

  lcitool container --engine podman run ...  (wrong)

This caused "invalid choice: 'podman'" errors because lcitool expected
a COMMAND argument at that position.

Fix by moving the --engine flag to opts array, which is added after
the "run" subcommand, resulting in the correct command structure:

  lcitool container run --engine podman ...  (correct)

Example:

 $ ./ci/helper run fedora-44 --job codestyle --engine podman
  usage: lcitool container [-h] COMMAND ...
 lcitool container: error: argument COMMAND: invalid choice: 'podman' (choose from engines, build, run, shell)

The same error happens if "--engine" option is set to different
than "auto" value.

Signed-off-by: Radoslaw Smigielski <rsmigiel@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 weeks agoNEWS: add latest ZFS driver changes
George Melikov [Tue, 19 May 2026 16:00:17 +0000 (19:00 +0300)] 
NEWS: add latest ZFS driver changes

Signed-off-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
2 weeks agoNEWS: add missing ZFS driver new feature to 11.7.0
George Melikov [Tue, 19 May 2026 16:05:07 +0000 (19:05 +0300)] 
NEWS: add missing ZFS driver new feature to 11.7.0

Document native volume resizing support.

Signed-off-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
2 weeks agoqemu: emit channel lifecycle event
Lucas Kornicki [Tue, 19 May 2026 13:11:36 +0000 (15:11 +0200)] 
qemu: emit channel lifecycle event

Emit the channel lifecycle event on VSERPORT_CHANGE
and when refreshing virtio state.

On "org.qemu.guest_agent.0" channel state change both
agent and channel lifecycle events are emitted in that order.

Signed-off-by: Lucas Kornicki <lucas.kornicki@nutanix.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agoconf,remote: add channel lifecycle domain event
Lucas Kornicki [Tue, 19 May 2026 13:11:35 +0000 (15:11 +0200)] 
conf,remote: add channel lifecycle domain event

Add support for a new domain event which can be used to track
the state of any virtio channel.

Previously one could only monitor the "org.qemu.guest_agent.0" channel
which had a dedicated agent lifecycle event. The channel lifecycle event
will be emitted alongside the agent specific one.

Signed-off-by: Lucas Kornicki <lucas.kornicki@nutanix.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agobhyve: implement the domainSetMemoryParameters API
Roman Bogorodskiy [Mon, 18 May 2026 17:30:19 +0000 (19:30 +0200)] 
bhyve: implement the domainSetMemoryParameters API

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agobhyve: process: factor out rctl(8) code
Roman Bogorodskiy [Mon, 18 May 2026 16:33:12 +0000 (18:33 +0200)] 
bhyve: process: factor out rctl(8) code

Factor out all rctl(8) execution code to bhyve_rctl.c.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agobhyve: implement the domainGetMemoryParameters API
Roman Bogorodskiy [Sat, 16 May 2026 08:30:32 +0000 (10:30 +0200)] 
bhyve: implement the domainGetMemoryParameters API

Implement the domainGetMemoryParameters() API for the bhyve driver.
To parse live limits execute rctl(8) to list the active rules and parse
them.

Introduce the bhyve_rctl.c for working with rctl(8).

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agobhyve: add memtune support
Roman Bogorodskiy [Fri, 15 May 2026 14:32:54 +0000 (16:32 +0200)] 
bhyve: add memtune support

Add support of the memtune's hard_limit configuration:

  <memtune>
    <hard_limit ... >
  </memtune>

to the bhyve driver.

Just like in the block I/O tuning case, memory limits are set using the
rctl(8) tool.

Syntax for that is:

 rctl -a process:<pid>:memoryuse:deny=1073741824

Extend bhyveSetResourceLimits() to execute this command if it's
requested by the domain XML.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add DiamondRapids CPU model
Jiri Denemark [Thu, 7 May 2026 11:24:36 +0000 (13:24 +0200)] 
cpu_map: Add DiamondRapids CPU model

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add new versions of GraniteRapids CPU model
Jiri Denemark [Thu, 7 May 2026 11:23:25 +0000 (13:23 +0200)] 
cpu_map: Add new versions of GraniteRapids CPU model

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add new versions of SapphireRapids CPU model
Jiri Denemark [Thu, 7 May 2026 11:22:42 +0000 (13:22 +0200)] 
cpu_map: Add new versions of SapphireRapids CPU model

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add new versions of SierraForest CPU model
Jiri Denemark [Thu, 7 May 2026 11:21:34 +0000 (13:21 +0200)] 
cpu_map: Add new versions of SierraForest CPU model

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add new versions of ClearwaterForest CPU model
Jiri Denemark [Thu, 7 May 2026 11:20:18 +0000 (13:20 +0200)] 
cpu_map: Add new versions of ClearwaterForest CPU model

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agosync_qemu_models_i386: Add missing features to translation map
Jiri Denemark [Thu, 7 May 2026 11:14:11 +0000 (13:14 +0200)] 
sync_qemu_models_i386: Add missing features to translation map

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add APX (Advanced Performance Extensions) CPUID features
Jiri Denemark [Thu, 7 May 2026 10:50:35 +0000 (12:50 +0200)] 
cpu_map: Add APX (Advanced Performance Extensions) CPUID features

QEMU commit 60caf14339262b10423e21b1d7d39ad7edec82b7

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add avx10-vnni-int CPU feature
Jiri Denemark [Thu, 7 May 2026 10:47:49 +0000 (12:47 +0200)] 
cpu_map: Add avx10-vnni-int CPU feature

QEMU commit 24a9bc108840812dfb94edc65962c1998120f77b

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add CPUID feature for MOVRS
Jiri Denemark [Thu, 7 May 2026 10:37:11 +0000 (12:37 +0200)] 
cpu_map: Add CPUID feature for MOVRS

QEMU commit f8e830300c9edeaa142fe4cc244d63770a3be4f5

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add CET related CPU features
Jiri Denemark [Thu, 7 May 2026 10:00:28 +0000 (12:00 +0200)] 
cpu_map: Add CET related CPU features

QEMU commit 2f25476ae7f3b4c28fde64584a04734b14c8fd37

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add CPUID features for AMX instructions
Jiri Denemark [Thu, 7 May 2026 09:46:48 +0000 (11:46 +0200)] 
cpu_map: Add CPUID features for AMX instructions

The features are reported in a 0x1 subleaf of 0x1e CPUID leaf.

QEMU commit 956b8f0fc38a5ead18d9bf5ceba0861627738835 (some feature were
later renamed by 85dc6147e79140f17b7e4333ec14f302bf9b5e97, which
happened in the same QEMU release so we don't need to care about the
original names).

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agocpu_map: Add gmet and vmx-mbec features for nested virtualization
Jiri Denemark [Thu, 7 May 2026 09:40:57 +0000 (11:40 +0200)] 
cpu_map: Add gmet and vmx-mbec features for nested virtualization

QEMU commits 746a823a17f25393cc8c0cd1257f6dcef757bc09 and
bfff4b2ae5452463ab8c14b4a8a020288b5ff5d8

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agosync_qemu_models_i386: Convert family/model to decimal
Jiri Denemark [Wed, 20 May 2026 09:56:35 +0000 (11:56 +0200)] 
sync_qemu_models_i386: Convert family/model to decimal

QEMU defines some CPU models with hexadecimal family, but our CPU map
loading code expects decimals.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 weeks agosync_qemu_models_i386: Remove forgotten parentheses
Jiri Denemark [Thu, 7 May 2026 08:58:44 +0000 (10:58 +0200)] 
sync_qemu_models_i386: Remove forgotten parentheses

children variable is a list returned by getchildren().

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>