]> git.ipfire.org Git - thirdparty/libvirt.git/log
thirdparty/libvirt.git
3 weeks agoch: add ch_alias.{c,h} for device alias handling
Stefan Kober [Thu, 4 Sep 2025 12:10:25 +0000 (14:10 +0200)] 
ch: add ch_alias.{c,h} for device alias handling

On-behalf-of: SAP stefan.kober@sap.com
Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 weeks agoch: add ch_hotplug.{h,c} files to CH build
Stefan Kober [Thu, 4 Sep 2025 12:10:23 +0000 (14:10 +0200)] 
ch: add ch_hotplug.{h,c} files to CH build

The files are meant to contain all device hotplug related code. The
first implementation will be live storage attach and detach.

On-behalf-of: SAP stefan.kober@sap.com
Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
3 weeks agoesx: pass 'long' to curl_easy_setopt when needed
Ján Tomko [Tue, 2 Sep 2025 12:04:40 +0000 (14:04 +0200)] 
esx: pass 'long' to curl_easy_setopt when needed

The include header got its type checks fixed in curl 8.14:
https://github.com/curl/curl/commit/79b4e56b3f30dc1ac28a81128a07d27338e5219e
https://github.com/curl/curl/pull/17143

This causes a warning on rawhide with clang:
../src/esx/esx_vi.c:318:5: error: call to '_curl_easy_setopt_err_long'
declared with 'warning' attribute: curl_easy_setopt expects a long
argument [-Werror,-Wattribute-warning]
  318 |     curl_easy_setopt(curl->handle, CURLOPT_NOSIGNAL, 1);
      |     ^

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
3 weeks agoqemu: Don't query unavailable-features if qom-list-get is supported
Jiri Denemark [Thu, 4 Sep 2025 13:49:01 +0000 (15:49 +0200)] 
qemu: Don't query unavailable-features if qom-list-get is supported

With qom-list-get we already have the value of unavailable-features
property in the returned object (just like we have all values of all
bool properties). Let's use the value from there instead of querying for
it separately using qom-get.

After this patch only a single QMP command is used for getting all the
required info about guest CPUs created by QEMU 10.1 or newer.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Let qemuMonitorJSONGetCPUProperties also return disabled features
Jiri Denemark [Thu, 4 Sep 2025 13:16:01 +0000 (15:16 +0200)] 
qemu: Let qemuMonitorJSONGetCPUProperties also return disabled features

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Merge qemuMonitorJSONGetCPUDataDisabled in qemuMonitorJSONGetGuestCPU
Jiri Denemark [Thu, 4 Sep 2025 12:34:36 +0000 (14:34 +0200)] 
qemu: Merge qemuMonitorJSONGetCPUDataDisabled in qemuMonitorJSONGetGuestCPU

The qemuMonitorJSONGetCPUDataDisabled function is just a wrapper around
two function calls and it is only used by qemuMonitorJSONGetGuestCPU.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Always fetch disabled features in qemuMonitorJSONGetGuestCPU
Jiri Denemark [Thu, 4 Sep 2025 12:38:40 +0000 (14:38 +0200)] 
qemu: Always fetch disabled features in qemuMonitorJSONGetGuestCPU

The function is always called with both enabled and disabled pointers
set.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Merge qemuMonitorJSONGetCPUData in qemuMonitorJSONGetGuestCPU
Jiri Denemark [Thu, 4 Sep 2025 12:34:36 +0000 (14:34 +0200)] 
qemu: Merge qemuMonitorJSONGetCPUData in qemuMonitorJSONGetGuestCPU

The qemuMonitorJSONGetCPUData function is just a wrapper around two
function calls and it is only used by qemuMonitorJSONGetGuestCPU.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Add qemuMonitorJSONCPUDataAddFeatures helper
Jiri Denemark [Thu, 4 Sep 2025 12:30:20 +0000 (14:30 +0200)] 
qemu: Add qemuMonitorJSONCPUDataAddFeatures helper

The function translates a list of CPU feature names retrieved from QEMU
and adds them to virCPUData.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agotests: Test qemuMonitorJSONGetGuestCPU with qom-get-list
Jiri Denemark [Thu, 4 Sep 2025 11:23:03 +0000 (13:23 +0200)] 
tests: Test qemuMonitorJSONGetGuestCPU with qom-get-list

The test cases show both the legacy method and the new one produce
identical results.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Use qom-list-get for checking enabled CPU features
Jiri Denemark [Mon, 25 Aug 2025 14:16:49 +0000 (16:16 +0200)] 
qemu: Use qom-list-get for checking enabled CPU features

qom-list-get is a new QMP command (since QEMU 10.1) that combines
qom-list for listing properties of a specified object with qom-get for
getting a value of a given property. The new command provides an array
of all properties and their values, which allows us to dramatically
reduce the number of QMP commands we have to call when starting a domain
to check which CPU features were actually enabled.

A simple domain with no disk can now be started with only 15 QMP
commands in about 200 ms compared to 485 commands and 400 ms startup
time without this patch.

https://issues.redhat.com/browse/RHEL-7038

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Introduce QEMU_CAPS_QOM_LIST_GET capability
Jiri Denemark [Mon, 8 Sep 2025 12:59:51 +0000 (14:59 +0200)] 
qemu: Introduce QEMU_CAPS_QOM_LIST_GET capability

The new capability signals support for qom-list-get QMP command.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Parse properties list from any JSON array
Jiri Denemark [Wed, 27 Aug 2025 12:38:24 +0000 (14:38 +0200)] 
qemu: Parse properties list from any JSON array

The qemuMonitorJSONParsePropsList API expected a QMP reply as an input.
By generalizing it to work on any JSON array, we can reuse the API even
for commands which return the array of properties nested in an object.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Move feature filtering to qemuMonitorJSONGetCPUProperties
Jiri Denemark [Wed, 27 Aug 2025 10:29:57 +0000 (12:29 +0200)] 
qemu: Move feature filtering to qemuMonitorJSONGetCPUProperties

When getting enabled CPU features (qemuMonitorJSONGetCPUData), we used
to call qemuMonitorJSONGetCPUProperties to get the list of all boolean
properties and then queried their values and ignored properties that
were not true. By moving the filtering inside
qemuMonitorJSONGetCPUProperties we don't need to even add disabled
features to any list and also get ready for better QMP interface.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Generalize filtering in qemuMonitorJSONParsePropsList
Jiri Denemark [Wed, 27 Aug 2025 08:05:23 +0000 (10:05 +0200)] 
qemu: Generalize filtering in qemuMonitorJSONParsePropsList

qemuMonitorJSONParsePropsList supported filtering based on type. Let's
replace it with a callback supplied by the caller to allow for more
advanced filtering.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agotests: Test qemuMonitorJSONGetGuestCPU with empty unavailable-features
Jiri Denemark [Thu, 4 Sep 2025 10:00:52 +0000 (12:00 +0200)] 
tests: Test qemuMonitorJSONGetGuestCPU with empty unavailable-features

The key point here is that the unavailable-features property reports an
empty array.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agotests: Add a test for qemuMonitorJSONGetGuestCPU
Jiri Denemark [Thu, 4 Sep 2025 10:00:40 +0000 (12:00 +0200)] 
tests: Add a test for qemuMonitorJSONGetGuestCPU

The SierraForest CPU was just randomly chosen and it doesn't mean we
should have test cases for all CPU models.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
3 weeks agoqemu: Drop legacy probing of CPU features
Jiri Denemark [Mon, 25 Aug 2025 14:36:01 +0000 (16:36 +0200)] 
qemu: Drop legacy probing of CPU features

The legacy probing which reads CPUID registers from QEMU and interprets
the individual bits is not used with any QEMU version currently
supported by libvirt. The code would only be used if
QEMU_CAPS_CPU_UNAVAILABLE_FEATURES capability (detected by probing the
presence of 'unavailable-features') was missing on x86, but all QEMU
release we care about report unavailable-features on x86.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agolibvirt-host: VIR_NODE_CPU_STATS_GUEST: clarify "guest" time
Claudio Fontana [Fri, 5 Sep 2025 09:36:39 +0000 (11:36 +0200)] 
libvirt-host: VIR_NODE_CPU_STATS_GUEST: clarify "guest" time

clarify that "guest" time is time spent running VCPUs specifically.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
4 weeks agotests: Drop unused vm variable in testQemuMonitorCPUInfo
Jiri Denemark [Thu, 4 Sep 2025 09:36:48 +0000 (11:36 +0200)] 
tests: Drop unused vm variable in testQemuMonitorCPUInfo

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agodocs : add doc on cpu model and features
Hector Cao [Wed, 27 Aug 2025 14:25:06 +0000 (16:25 +0200)] 
docs : add doc on cpu model and features

Add documentation on the way libvirt displays the Host CPU
model and capabilities (features). There is an implicit
expectation from users to get the CPU model name matching the
CPU model they are running on, however, this does not happen
most of the time. As a consequence, having a documentation
is useful both for users to align their expectation and for
us to point to a place where the situation is clearly explained.

Signed-off-by: Hector Cao <hector.cao@canonical.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
4 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Tue, 2 Sep 2025 07:53:42 +0000 (07:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 80.0% (8764 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
4 weeks agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Tue, 2 Sep 2025 07:53:42 +0000 (07:53 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 70.0% (7671 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
4 weeks agoscripts: qemu-replies-tool: Add option to dump JSON commands that weren't processed...
Peter Krempa [Wed, 20 Aug 2025 07:55:38 +0000 (09:55 +0200)] 
scripts: qemu-replies-tool: Add option to dump JSON commands that weren't processed by --dump-all

This is useful for checking that the script still covers everything when
using it to compare two .replies files.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Add stable dump of 'query-command-line-options'
Peter Krempa [Fri, 29 Aug 2025 13:10:36 +0000 (15:10 +0200)] 
scripts: qemu-replies-tool: Add stable dump of 'query-command-line-options'

While 'query-command-line-options' is usually fairly stable (for
comparing between two .replies files) it's simpler to compare it in the
dumped variant.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Dump data from query-version/query-target/query-kvm
Peter Krempa [Fri, 29 Aug 2025 13:08:18 +0000 (15:08 +0200)] 
scripts: qemu-replies-tool: Dump data from query-version/query-target/query-kvm

Process few other simple commands. While this output doesn't change
places it's useful to see it when comparing the dumps of two .replies
files.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Prefix output with filename when dumping data for multipl...
Peter Krempa [Mon, 25 Aug 2025 15:02:04 +0000 (17:02 +0200)] 
scripts: qemu-replies-tool: Prefix output with filename when dumping data for multiple files

The --dump-* mode can be used together with --repliesdir which iterates
over all '.replies' files in the directory. Make this useful by
outputing the filename so the user can associate the data with the file
it was dumped from.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: List also data from 'qom-list-properties'
Peter Krempa [Mon, 25 Aug 2025 14:41:36 +0000 (16:41 +0200)] 
scripts: qemu-replies-tool: List also data from 'qom-list-properties'

In addition to 'device-list-properties' libvirt probes also some
properties of qom types. Since the format is identical make the dumping
function for 'device-list-properties' universal and make it accept also
'qom-list-types'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Dump machine types in --dump-all
Peter Krempa [Tue, 19 Aug 2025 11:41:22 +0000 (13:41 +0200)] 
scripts: qemu-replies-tool: Dump machine types in --dump-all

Dumps the supported machine types and their deprecation state in stable
human-sort order.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Drop specific invocation of marginally useful dump modes
Peter Krempa [Mon, 25 Aug 2025 14:13:09 +0000 (16:13 +0200)] 
scripts: qemu-replies-tool: Drop specific invocation of marginally useful dump modes

While '--dump-qmp-query-strings' is useful by itself because it's a
simple way to generate the QMP schema query strings for libvirt, the
other modes aren't useful besides comparing two .replies files by the
dumped output.

Remove specific options for '--dump-qom-list-types' and
'--dump-device-list-properties', so that upcoming additions which will
be useful only for comparisons aren't forced to add these options.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoscripts: qemu-replies-tool: Convert the QMP conversation to list of dicts
Peter Krempa [Mon, 25 Aug 2025 12:30:56 +0000 (14:30 +0200)] 
scripts: qemu-replies-tool: Convert the QMP conversation to list of dicts

Currently the conversation was a list of tuples. Since upcoming patches
will want to store some additional flags with the processed commands
convert it to a list of dicts, so that we can name the individual
fields.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemuxmlconftest: Add pinned versions of the 'cpu-host-*' cases for qemu-10.1
Peter Krempa [Wed, 27 Aug 2025 08:51:13 +0000 (10:51 +0200)] 
qemuxmlconftest: Add pinned versions of the 'cpu-host-*' cases for qemu-10.1

Now that the qemu capabilities dump for the qemu-10.2 cycle was added
and thus qemu-10.1 dump is no longer "latest" we can pin the
'cpu-host-' tests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemucapabilitiestest: Add data for the qemu-10.2 dev cycle
Peter Krempa [Wed, 27 Aug 2025 08:44:55 +0000 (10:44 +0200)] 
qemucapabilitiestest: Add data for the qemu-10.2 dev cycle

This is an extremely early addition with data as of v10.1.0-1-ge771ba98de
thus effectively no code change compared to the qemu-10.1 release.

This early addition is done since I've upgraded the computer I'm
capturing the dumps from (yes the dumps are host-specific, and there
isn't really a good option if we want to have modern CPU data around).

Thus the only difference in the output files comes from the CPU change.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemuxmlconftest: Rename and strip specific machine type from 'x86_64-default-cpu...
Peter Krempa [Wed, 27 Aug 2025 14:34:39 +0000 (16:34 +0200)] 
qemuxmlconftest: Rename and strip specific machine type from 'x86_64-default-cpu-*' cases

qemu-10.2 which we're about to add capabilities dump for will remove the
'4.2' machine type per deprecation policy.

The 'x86_64-default-cpu-*' still reference it. Since there is no
functional difference when upgrading the tests to the latest machine
type (pc/q35 alias as handled internally by qemuxmlconftest) let's
rename and modernize these.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemuxmlconftest: Add missing version specific invocations for 'cpu-host' tests
Peter Krempa [Wed, 27 Aug 2025 08:41:29 +0000 (10:41 +0200)] 
qemuxmlconftest: Add missing version specific invocations for 'cpu-host' tests

These were forgotten when new dumps were added.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: monitor: Remove query-tpm-modes/query-tpm-types infrastructure
Peter Krempa [Mon, 25 Aug 2025 16:06:35 +0000 (18:06 +0200)] 
qemu: monitor: Remove query-tpm-modes/query-tpm-types infrastructure

The query commands are not used since we can probe the supported types
and models via qom types.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: capabilities: Don't use query-tpm-types/query-tpm-models for probe
Peter Krempa [Mon, 25 Aug 2025 16:00:57 +0000 (18:00 +0200)] 
qemu: capabilities: Don't use query-tpm-types/query-tpm-models for probe

In previous patches we've successfuly replaced it by looking at the qom
types we already query so we don't need to invoke extra commands.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: capabilities: Detect TPM related capabilities from 'qom-list-types'
Peter Krempa [Mon, 25 Aug 2025 15:38:52 +0000 (17:38 +0200)] 
qemu: capabilities: Detect TPM related capabilities from 'qom-list-types'

All the information needed to detect supported TPM front and backends
is present in the QOM types we already query, thus we don't need to
invoke specific commands for querying TPM stuff.

The only discrepancy is that there are 3 versions of 'tpm-tis' based on
the backed they use.

This patch reworks the probing but keeps the query commands in place.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: capabilities: Drop probe of 'query-migrate-capabilities'
Peter Krempa [Mon, 25 Aug 2025 13:11:07 +0000 (15:11 +0200)] 
qemu: capabilities: Drop probe of 'query-migrate-capabilities'

There is currently noting being probed from the reply of the command. In
addition in most cases a feature can be now probed via the QMP schema
which covers the return values in 'query-migrate-capabilities'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: capabilities: Retire QEMU_CAPS_MIGRATE_RDMA
Peter Krempa [Mon, 25 Aug 2025 13:08:23 +0000 (15:08 +0200)] 
qemu: capabilities: Retire QEMU_CAPS_MIGRATE_RDMA

The capability is always present and not checked any more. Retire it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: Always assume support for QEMU_CAPS_MIGRATE_RDMA
Peter Krempa [Mon, 25 Aug 2025 13:05:41 +0000 (15:05 +0200)] 
qemu: Always assume support for QEMU_CAPS_MIGRATE_RDMA

Libvirt detects QEMU_CAPS_MIGRATE_RDMA by probing
'query-migrate-capabilities' for the presence of 'rdma-pin-all'.

In qemu the entry in 'query-migrate-capabilities' existed since the
introduction of the command in qemu-2.0. We thus always detect this
capability.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: capabilities: Update '10.1.0' capabilities on x86_64 after release
Peter Krempa [Mon, 18 Aug 2025 15:04:12 +0000 (17:04 +0200)] 
qemu: capabilities: Update '10.1.0' capabilities on x86_64 after release

Notable changes:
 - 'netdev_add' now supports 'passt'
 - new command 'qom-list-get'
 - 'query-block' and 'query-named-block-nodes' returns also 'children' links
 - 'gtk' graphics backend added 'keep-aspect-ratio' and 'scale' properties
 - 'query-migrate' now reports 'postcopy-latency',
   'postcopy-non-vcpu-latency' and 'postcopy-vcpu-latency'
 - new unstable command 'x-accel-stats'
 - 'x-query-opcount' unstable command removed
 - 'arch-capabilities' CPU flag no longer explsed on AMD cpus
   (this also causes the qemuxmlconftest changes)

 - new named cpu models:
    - GraniteRapids-v3-x86_64-cpu
    - SapphireRapids-v4-x86_64-cpu
    - SierraForest-v3-x86_64-cpu
    - YongFeng-v3-x86_64-cpu

 - new devices
    - cxl-fmw

 - PIIX4_PM/ICH9-LPC added 'bus' property
 - vfio-pci added 'x-migration-load-config-after-iter',
   'x-migration-max-queued-buffers-size', 'x-pci-class-code'

 - virtio-gpu added 'optputs' property
 - virtio-net added:
    - 'hash-ipv4','hash-ipv6','hash-ipv6ex'
    - 'hash-tcp4','hash-tcp6','hash-tcp6ex'
    - 'hash-udp4','hash-udp6','hash-udp6ex'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 weeks agoqemu: monitor: Remove wrappers for 'block-dirty-bitmap-enable'/'block-dirty-bitmap...
Peter Krempa [Fri, 25 Jul 2025 14:09:57 +0000 (16:09 +0200)] 
qemu: monitor: Remove wrappers for 'block-dirty-bitmap-enable'/'block-dirty-bitmap-disable'

Libvirt doesn't use them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
4 weeks agoutil: virHostCPUGetStatsLinux: support VIR_NODE_CPU_STATS_GUEST
Claudio Fontana [Thu, 28 Aug 2025 08:29:41 +0000 (10:29 +0200)] 
util: virHostCPUGetStatsLinux: support VIR_NODE_CPU_STATS_GUEST

it is very useful for platforms to know how much time a node is
spending running guests.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 weeks agoPost-release version bump to 11.8.0
Jiri Denemark [Mon, 1 Sep 2025 11:09:32 +0000 (13:09 +0200)] 
Post-release version bump to 11.8.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
4 weeks agoRelease of libvirt-11.7.0 v11.7.0
Jiri Denemark [Mon, 1 Sep 2025 11:06:06 +0000 (13:06 +0200)] 
Release of libvirt-11.7.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
5 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 31 Aug 2025 21:53:42 +0000 (21:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 79.5% (8707 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 78.0% (8544 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 weeks agoTranslated using Weblate (Korean)
김인수 [Sun, 31 Aug 2025 21:53:41 +0000 (21:53 +0000)] 
Translated using Weblate (Korean)

Currently translated at 100.0% (10948 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Signed-off-by: 김인수 <simmon@nplob.com>
5 weeks agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Sun, 31 Aug 2025 21:53:41 +0000 (21:53 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 68.6% (7517 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 67.4% (7379 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
5 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Fri, 29 Aug 2025 02:59:17 +0000 (02:59 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 77.2% (8457 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 weeks agoTranslated using Weblate (Spanish) v11.7.0-rc2
Fco. Javier F. Serrador [Thu, 28 Aug 2025 07:01:48 +0000 (07:01 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 65.4% (7166 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
5 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Thu, 28 Aug 2025 07:01:48 +0000 (07:01 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 77.0% (8431 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 76.5% (8380 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 76.4% (8366 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 weeks agoTranslated using Weblate (Portuguese)
Weblate [Thu, 28 Aug 2025 07:01:47 +0000 (07:01 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 76.4% (8366 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 76.4% (8366 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 76.4% (8366 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 weeks agoTranslated using Weblate (Czech)
Pavel Borecki [Thu, 28 Aug 2025 07:01:47 +0000 (07:01 +0000)] 
Translated using Weblate (Czech)

Currently translated at 94.6% (10360 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/cs/

Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
Translated using Weblate (Czech)

Currently translated at 94.0% (10294 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/cs/

Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
Translated using Weblate (Czech)

Currently translated at 92.9% (10179 of 10948 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/cs/

Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
5 weeks agokbase: live_full_disk_backup: Improve the document
Peter Krempa [Wed, 27 Aug 2025 13:32:33 +0000 (15:32 +0200)] 
kbase: live_full_disk_backup: Improve the document

Changes:
 - fixed emphasis on the API name and some operations
 - fixed the output example of some commands
 - added warning to avoid the snapshot+copy+commit approach as it's a
   bit dangerous
 - added --no-metadata to avoid creating snapshot XML

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
5 weeks agodocs: formatsecret: Convert inline emphasis of a warning to the '.. warning:' role
Peter Krempa [Wed, 27 Aug 2025 13:17:26 +0000 (15:17 +0200)] 
docs: formatsecret: Convert inline emphasis of a warning to the '.. warning:' role

This is an example how to hilight very important information in the
docs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
5 weeks agocss: Add style for '.. note:' and '.. warning:' rST roles
Peter Krempa [Wed, 27 Aug 2025 13:13:36 +0000 (15:13 +0200)] 
css: Add style for '.. note:' and '.. warning:' rST roles

One of our kbase docs already uses '.. note:' and we could use e.g.
'.. warning:' to replace some of emphasiszed paragraphs to make them
more prominent.

Introduce style for the generated HTML to add some hilight for them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
5 weeks agokbase: live_full_disk_backup: Fix use of '.. note' directive
Peter Krempa [Wed, 27 Aug 2025 11:27:05 +0000 (13:27 +0200)] 
kbase: live_full_disk_backup: Fix use of '.. note' directive

The note was misindented thus breaking the numbered list around.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
5 weeks agodaemon: Drop log level of VIR_ERR_NO_SUPPORT to debug
Peter Krempa [Tue, 26 Aug 2025 11:57:42 +0000 (13:57 +0200)] 
daemon: Drop log level of VIR_ERR_NO_SUPPORT to debug

The error code signals that the API the user called is not supported by
the driver. This can happen with some hypervisor drivers which don't
have everything implemented yet. There's no point in spamming the log
with it.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/805
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
5 weeks agoqemu: hotplug: Audit device detach before deleting it
Peter Krempa [Tue, 26 Aug 2025 11:49:48 +0000 (13:49 +0200)] 
qemu: hotplug: Audit device detach before deleting it

Commit f30843142aa0836423f5e3ff7a45707eb13ce553 introduced a code path
for solving a race when qemu doesn't know about a device but libvirt
still does. The patch introduced a call to 'qemuDomainRemoveDevice'
(which deletes/frees the device definition) and placed it before the
call to 'qemuDomainRemoveAuditDevice' (which accesses the device
definition to do the audit log reporting).

Reorder them to prevent the qemu driver crashing in the corner case
where qemu already detached the device but libvirt didn't yet process
it, which can be triggered by calling the asynchronous
'virDomainDetachDeviceAlias' API.

In addition in case when we're about to delete the device and return
success we need to also report successful detach in the audit log so the
logic calling the auditing function needs to be fixed as well.

Resolves: https://issues.redhat.com/browse/RHEL-110191
Fixes: f30843142aa0836423f5e3ff7a45707eb13ce553
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
5 weeks agoNEWS: document bhyve changes for the release
Roman Bogorodskiy [Wed, 27 Aug 2025 07:47:28 +0000 (09:47 +0200)] 
NEWS: document bhyve changes for the release

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
5 weeks agoUpdate translation files
Weblate [Mon, 25 Aug 2025 09:07:59 +0000 (09:07 +0000)] 
Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
5 weeks agopo: Refresh potfile for v11.7.0 v11.7.0-rc1
Jiri Denemark [Mon, 25 Aug 2025 08:58:09 +0000 (10:58 +0200)] 
po: Refresh potfile for v11.7.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
5 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Mon, 25 Aug 2025 08:08:34 +0000 (08:08 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 76.0% (8319 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 weeks agoTranslated using Weblate (Chinese (Simplified) (zh_CN))
Charles Lee [Sun, 24 Aug 2025 17:53:48 +0000 (17:53 +0000)] 
Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 97.7% (10695 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/zh_CN/

Signed-off-by: Charles Lee <lchopn@gmail.com>
6 weeks agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Sun, 24 Aug 2025 17:53:47 +0000 (17:53 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 64.7% (7085 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 64.2% (7027 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 62.6% (6857 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
6 weeks agoTranslated using Weblate (Spanish)
Weblate [Sun, 24 Aug 2025 17:53:47 +0000 (17:53 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 62.6% (6848 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
6 weeks agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Sun, 24 Aug 2025 17:53:46 +0000 (17:53 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 62.6% (6848 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 62.6% (6855 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
6 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 24 Aug 2025 17:53:45 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 75.2% (8230 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 74.4% (8147 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 74.0% (8097 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 73.4% (8040 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 73.3% (8024 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 73.0% (7992 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 72.1% (7891 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 72.0% (7883 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 71.5% (7826 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 70.3% (7692 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 69.0% (7555 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 68.0% (7440 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 67.4% (7383 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 67.2% (7356 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 66.7% (7301 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 66.5% (7277 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 65.5% (7168 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 65.2% (7138 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 64.1% (7018 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 63.3% (6934 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 63.0% (6902 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 62.0% (6787 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 61.5% (6738 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 61.4% (6727 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 61.3% (6712 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 60.2% (6589 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 60.0% (6570 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 59.0% (6458 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6414 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6413 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6412 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 weeks agoTranslated using Weblate (Portuguese)
Weblate [Sun, 24 Aug 2025 17:53:45 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6413 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6412 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
6 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 24 Aug 2025 17:53:44 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6411 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6410 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 weeks agoTranslated using Weblate (Portuguese)
Weblate [Sun, 24 Aug 2025 17:53:43 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.6% (6411 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6410 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6409 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
6 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 24 Aug 2025 17:53:43 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6409 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6408 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 weeks agoTranslated using Weblate (Portuguese)
Weblate [Sun, 24 Aug 2025 17:53:42 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6408 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6407 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
6 weeks agoTranslated using Weblate (Korean)
김인수 [Sun, 24 Aug 2025 17:53:41 +0000 (17:53 +0000)] 
Translated using Weblate (Korean)

Currently translated at 100.0% (10939 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Signed-off-by: 김인수 <simmon@nplob.com>
6 weeks agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 24 Aug 2025 17:53:41 +0000 (17:53 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 58.5% (6407 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 58.4% (6399 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 57.5% (6295 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 56.6% (6195 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 weeks agobhyve: autofill NVRAM data for firmware='efi'
Roman Bogorodskiy [Sat, 2 Aug 2025 13:37:17 +0000 (15:37 +0200)] 
bhyve: autofill NVRAM data for firmware='efi'

When a domain configured with "<os firmware='efi'/>", autofill not only
loader/firmware configuration, but also nvram.

This also fixes the `scripts/domain/405-ovmf-nvram-efi.t` test in
libvirt-tck for bhyve.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agodocs: add network driver documentation
Roman Bogorodskiy [Sun, 13 Jul 2025 08:50:22 +0000 (10:50 +0200)] 
docs: add network driver documentation

Currently documents only FreeBSD/pf specific configuration.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agonetwork: bridge_driver: add BSD implementation
Roman Bogorodskiy [Tue, 22 Apr 2025 17:07:32 +0000 (19:07 +0200)] 
network: bridge_driver: add BSD implementation

Add BSD-specific platform flavor of the bridge driver which will be used
as a base for Packet Filter (pf) based NAT networking implementation.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agobhyve: implement domainBlockStats
Roman Bogorodskiy [Sun, 1 Jun 2025 05:17:07 +0000 (07:17 +0200)] 
bhyve: implement domainBlockStats

Implement domainBlockStats for the bhyve driver. Only the read/write
operations counts are reported as FreeBSD apparently doesn't support
accumulative bytes read or written, though real-time data is available
via rctl(8). There's also no information about the errors.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agobhyve: implement domainMemoryStats
Roman Bogorodskiy [Wed, 28 May 2025 17:46:46 +0000 (19:46 +0200)] 
bhyve: implement domainMemoryStats

Currently, bhyve does not support neither memory ballooning nor
reporting guest memory usage. So the following information can be
obtained:

 - RSS of the running process
 - Memory available to the guest (that is, guest total memory)

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agovirprocess: implement virProcessGetStatInfo() for FreeBSD
Roman Bogorodskiy [Wed, 28 May 2025 17:44:45 +0000 (19:44 +0200)] 
virprocess: implement virProcessGetStatInfo() for FreeBSD

Use the "kern.proc.pid" sysctl and retrieve information from the
kinfo_proc struct.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
6 weeks agobhyve: implement domainInterfaceStats
Roman Bogorodskiy [Tue, 27 May 2025 18:05:46 +0000 (20:05 +0200)] 
bhyve: implement domainInterfaceStats

The virNetDevTapInterfaceStats() function already works on FreeBSD, so
it's just a matter of wrapping that for domainInterfaceStats.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agovirt-aa-helper: Avoid duplicate when append rule
Hector Cao [Wed, 20 Aug 2025 15:49:59 +0000 (17:49 +0200)] 
virt-aa-helper: Avoid duplicate when append rule

when a device is dynamically attached to a VM, and it needs a special
system access for apparmor, libvirt calls virt-aa-helper (with argument -F)
to append a new rule to the apparmor profile of the VM. virt-aa-helper does
not check for duplicate and blindly appends the rule to the profile. since
there is no rule removal when a device is detached, this can make the profile
grow in size if a big number of attach/detach operations are done and the
profile might hit the size limit and futur attach operations might dysfunction
because no rule can be added into the apparmor profile.

this patch tries to mitigate this issue by doing a duplicate check
when rules are appended into the profile. this fix does not guarantee
the absence of duplicates but should be enough to prevent the profile
to grow significantly in size and reach its size limit.

Signed-off-by: Hector CAO <hector.cao@canonical.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agofix typos in NEWS.rst
Michael Ablassmeier [Tue, 5 Aug 2025 17:40:56 +0000 (19:40 +0200)] 
fix typos in NEWS.rst

Signed-off-by: Michael Ablassmeier <abi@grinser.de>
6 weeks agodocs/tlscerts: mention dropped 'encryption_key'
Sebastian Mitterle [Thu, 7 Aug 2025 13:39:12 +0000 (15:39 +0200)] 
docs/tlscerts: mention dropped 'encryption_key'

Older libvirt versions still only work if 'encryption_key' is enabled
in the server and client certificates. Add a note.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
6 weeks agodocs/tlscerts: document need for socket activation
Sebastian Mitterle [Thu, 7 Aug 2025 13:39:10 +0000 (15:39 +0200)] 
docs/tlscerts: document need for socket activation

Mention that the tls socket needs to be started and the libvirtd
or virtproxyd service might have to be started.

If this is not done the user might run into connection issues and
it seems this is not mentioned elsewhere in the docs.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
6 weeks agospec: Package newly introduced CH conf files
Michal Privoznik [Tue, 19 Aug 2025 08:01:11 +0000 (10:01 +0200)] 
spec: Package newly introduced CH conf files

In a recent commit of v11.6.0-25-g5dca0567f6 new config files for
the CH driver were introduced. But corresponding change to the
specfile was missing resulting in a broken rpmbuild. Just put
those files into daemon-driver-ch rpm.

Fixes: 5dca0567f694a7405ca3e796149aed857b1f6090
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
6 weeks agoNEWS: ch: announce log_level config option
Stefan Kober [Mon, 18 Aug 2025 09:20:55 +0000 (11:20 +0200)] 
NEWS: ch: announce log_level config option

Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agoch: add log level configuration option
Stefan Kober [Mon, 18 Aug 2025 09:20:54 +0000 (11:20 +0200)] 
ch: add log level configuration option

Allow a user to set the verbosity of the cloud hypervisor instances by
specifying it in the ch.conf configuration file.

Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 weeks agoch: Add config file support
Stefan Kober [Mon, 18 Aug 2025 09:20:53 +0000 (11:20 +0200)] 
ch: Add config file support

Similar to the QEMU driver, the ch driver receives support for
configuration files that allows doing certain configuration on the
virtchd daemon.

The initial use case will be setting the verbosity of the cloud
hypervisor instances started by virtchd, but the implementation allows
for adding further options.

Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
7 weeks agotests/qemuxmlconfdata: add tests for video model 'edid' attribute
Mark Cave-Ayland [Thu, 7 Aug 2025 11:05:10 +0000 (12:05 +0100)] 
tests/qemuxmlconfdata: add tests for video model 'edid' attribute

Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
7 weeks agoconf: add support for 'edid' attribute to video model
Mark Cave-Ayland [Thu, 7 Aug 2025 11:05:09 +0000 (12:05 +0100)] 
conf: add support for 'edid' attribute to video model

Add the ability to enable/disable exposing the EDID information to the guest.
The edid attribute can specified in the domain XML as below:

    <video>
        <model type='virtio' edid='off'/>
    </video>

If the edid attribute is unspecified, it is not generated so that the
virtualisation platform will continue to use its default.

The edid attribute is only valid for the vga, boch and virtio display models
and is currently only implemented for the QEMU driver.

Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
7 weeks agoqemuxmlconftest: Paper over test failure at MacOS
Michal Privoznik [Wed, 13 Aug 2025 13:36:48 +0000 (15:36 +0200)] 
qemuxmlconftest: Paper over test failure at MacOS

MacOS has its own dynamic linker (dyld) which is different to
Linux/BSD one. But with a little help (by setting
"DYLD_FORCE_FLAT_NAMESPACE" env var) it would behave similarly to
Linux/BSD ones. In particular, if a library is preloaded via
"DYLD_INSERT_LIBRARIES" on MacOS or "LD_PRELOAD" on Linux/BSD,
then dlsym(RTLD_NEXT, ...) considers ALL preloaded libraries. For
instance, the virFileCanonicalizePath() is reimplemented in
virpcimock and qemuxml2argvmock. Each one of these
reimplementations uses dlsym(RTLD_NEXT, ...) to look up and call
virFileCanonicalizePath() from next library in the queue and
possibly even the actual implementation from libvirt.so.

This chaining of mocks allows us to have mock libraries that
create stable, reproducible environment for tests.

Now, because of unknown reason Apple decided to remove the flat
namespace feature [1] (I recommend to just clone the repo and
view the commit via 'git show' as github's web interface hides
interesting bits away). They did so in 2022. And it wasn't until
my commit of v11.6.0-19-g12c35ab161 that we've noticed this,
because until that commit no two mock reimplemented the same
function. Well, now they do and with flat namespaces gone the
dlsym(RLTD_NEXT, ...) returns an address from libvirt.so instead
of from next mock on the list.

Since reimplementation of virFileCanonicalizePath() in
qemuxml2argvmock.c is only to cover a case on some Linux systems
and virpcimock.c creates full sysfs imitation of PCI devices, the
latter is more important than the former.

Therefore, switch order of those mocks.

On Linux/BSD this has virtually no effect, but on MacOS it fixes
the qemuxmlconftest failure.

1: https://github.com/apple-oss-distributions/dyld/commit/9a9e3e4cfa7de205d61f4114c9b564e4bab7ef7f
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
7 weeks agodocs: storage: fix the "since" tag
Roman Bogorodskiy [Tue, 12 Aug 2025 18:35:42 +0000 (20:35 +0200)] 
docs: storage: fix the "since" tag

Trivial :since: tag fix in the ZFS section.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
7 weeks agoqemu: Match firmware with fully resolved and canonicalized paths
James Le Cuirot [Thu, 24 Jul 2025 13:49:38 +0000 (14:49 +0100)] 
qemu: Match firmware with fully resolved and canonicalized paths

Distros may provide compatibility symlinks after moving firmware files
around, but they won't work for existing VMs when doing a straight
string comparison.

I tried to compare inodes instead, but even glib doesn't provide a
straightforward cross-platform method to do this.

Resolves: https://bugs.gentoo.org/960591
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
7 weeks agoqemuxml2argvmock: Pretend FW blobs are always present
Michal Privoznik [Thu, 31 Jul 2025 09:19:43 +0000 (11:19 +0200)] 
qemuxml2argvmock: Pretend FW blobs are always present

Soon, the QEMU driver, specifically the part that picks firmware
based on firmware descriptor files (qemu_firmware.c) is going to
check for the presence of those firmware blobs (well, for their
realpath()). Just collect the list of all blobs we use in our
tests and mock virFileCanonicalizePath() so that for any path on
that list its strdup()-ed version is returned.

This means, qemuxmlconftest won't touch host files really.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
8 weeks agodocs: hacking: Define policy forbidding use of AI code generators
Pavel Hrdina [Thu, 10 Jul 2025 09:23:26 +0000 (11:23 +0200)] 
docs: hacking: Define policy forbidding use of AI code generators

This policy is a copy of what QEMU project is using [1] as there is no
reason to use different policy, only modification is changing the
project name and link to DCO.

[1] <https://www.qemu.org/docs/master/devel/code-provenance.html#use-of-ai-content-generators>

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
8 weeks agovirCHDomainRefreshThreadInfo: Remove illusion that caller cares about return value
Peter Krempa [Thu, 31 Jul 2025 13:31:59 +0000 (15:31 +0200)] 
virCHDomainRefreshThreadInfo: Remove illusion that caller cares about return value

The caller doesn't check the return value. Remove it to avoid confusing
readers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
8 weeks agovirCHDomainRefreshThreadInfo: Don't trust vcpu ID returned by hypervisor
Peter Krempa [Thu, 31 Jul 2025 12:14:05 +0000 (14:14 +0200)] 
virCHDomainRefreshThreadInfo: Don't trust vcpu ID returned by hypervisor

The hypervisor may return an index out of range of current vCPUs
defined in the domain which would cause a NULL dereference. Validate
that the vCPU struct with ID fetched from hypervisor exists before
dereferencing it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>