]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
2 years agoremoteOpenConn: Pass correct variable to virConnectSetIdentity()
Michal Privoznik [Thu, 19 May 2022 07:54:16 +0000 (09:54 +0200)]
remoteOpenConn: Pass correct variable to virConnectSetIdentity()

The remoteOpenConn() function was refactored recently. As a part
of that new variable @newconn was introduced which holds
virConnect object as it's being gradually constructed throughout
the function. At the very end, when everything succeeded the
variable is stolen into passed @conn. However, there was one
line missed in the refactor which still access the @conn instead
of @newconn leading to a NULL dereference.

Fixes: f7c422993e4c7ca3e58b1d0d69f4772851af399f
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agodocs: drvqemu: Fix the syntax typo of Hypervisor.framework link
Han Han [Sat, 7 May 2022 01:17:40 +0000 (09:17 +0800)]
docs: drvqemu: Fix the syntax typo of Hypervisor.framework link

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agodocs: drivers: Mention KVM/HVF in the link of qemu driver
Han Han [Sat, 7 May 2022 01:17:39 +0000 (09:17 +0800)]
docs: drivers: Mention KVM/HVF in the link of qemu driver

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: Add news for rss and rss_hash_report attributes
Han Han [Sat, 7 May 2022 01:17:38 +0000 (09:17 +0800)]
news: Add news for rss and rss_hash_report attributes

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agodocs: formatdomain: Add the introduced versions of net rss attrs
Han Han [Sat, 7 May 2022 01:17:37 +0000 (09:17 +0800)]
docs: formatdomain: Add the introduced versions of net rss attrs

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agodocs: apps: Add desktop app gnome-boxes
Han Han [Sat, 7 May 2022 01:17:36 +0000 (09:17 +0800)]
docs: apps: Add desktop app gnome-boxes

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: Validation flags for creating net, nwfilter-binding, net port
Han Han [Wed, 11 May 2022 02:17:14 +0000 (10:17 +0800)]
news: Validation flags for creating net, nwfilter-binding, net port

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: Add queue_size option to virtio disk
Han Han [Wed, 11 May 2022 02:17:13 +0000 (10:17 +0800)]
news: Add queue_size option to virtio disk

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: Support vhostuser in virsh attach-interface
Han Han [Wed, 11 May 2022 02:17:12 +0000 (10:17 +0800)]
news: Support vhostuser in virsh attach-interface

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: Add support for NFS disk protocol
Han Han [Wed, 11 May 2022 02:17:11 +0000 (10:17 +0800)]
news: qemu: Add support for NFS disk protocol

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: cpu_map: Add Snowridge cpu model
Han Han [Wed, 11 May 2022 02:17:10 +0000 (10:17 +0800)]
news: cpu_map: Add Snowridge cpu model

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: support kvm-poll-control performance hint
Han Han [Wed, 11 May 2022 02:17:09 +0000 (10:17 +0800)]
news: qemu: support kvm-poll-control performance hint

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: Introduce "migrate_tls_force" to qemu.conf
Han Han [Wed, 11 May 2022 02:17:08 +0000 (10:17 +0800)]
news: Introduce "migrate_tls_force" to qemu.conf

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: Add 'fmode' and 'dmode' options for 9pfs
Han Han [Wed, 11 May 2022 02:17:07 +0000 (10:17 +0800)]
news: qemu: Add 'fmode' and 'dmode' options for 9pfs

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: virtiofs can be used without NUMA nodes
Han Han [Wed, 11 May 2022 02:17:06 +0000 (10:17 +0800)]
news: qemu: virtiofs can be used without NUMA nodes

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: Introduce virtio free page reporting feature
Han Han [Wed, 11 May 2022 02:17:05 +0000 (10:17 +0800)]
news: qemu: Introduce virtio free page reporting feature

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: qemu: Set noqueue qdisc for TAP devices
Han Han [Wed, 11 May 2022 02:17:04 +0000 (10:17 +0800)]
news: qemu: Set noqueue qdisc for TAP devices

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: logging: allow max_len=0 to disable log rollover
Han Han [Wed, 11 May 2022 02:17:03 +0000 (10:17 +0800)]
news: logging: allow max_len=0 to disable log rollover

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: cpu: Support for XML validation in cpu comparison
Han Han [Wed, 11 May 2022 02:17:02 +0000 (10:17 +0800)]
news: cpu: Support for XML validation in cpu comparison

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: cpu_map: Add EPYC-Rome cpu model
Han Han [Wed, 11 May 2022 02:17:01 +0000 (10:17 +0800)]
news: cpu_map: Add EPYC-Rome cpu model

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: support device stats collection for SR-IOV VF hostdev
Han Han [Wed, 11 May 2022 02:17:00 +0000 (10:17 +0800)]
news: support device stats collection for SR-IOV VF hostdev

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agonews: make SEV attrs 'cbitpos' & 'reducedPhysBits' optional
Han Han [Wed, 11 May 2022 02:16:59 +0000 (10:16 +0800)]
news: make SEV attrs 'cbitpos' & 'reducedPhysBits' optional

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agodoRemoteOpen: Refactor control flow
Peter Krempa [Wed, 18 May 2022 09:18:54 +0000 (11:18 +0200)]
doRemoteOpen: Refactor control flow

Use a temporary variable 'newconn' to hold the newly opened connection
until we are ready to pass it back instead of the original connection.

This way we can avoid complicated 'error'/'cleanup' sections.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agovirIdentityGetParameters: Return 'virTypedParamList'
Peter Krempa [Wed, 18 May 2022 09:12:30 +0000 (11:12 +0200)]
virIdentityGetParameters: Return 'virTypedParamList'

Refactor the code to use virTypedParamList which simplifies cleanup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agovirGetConnectGeneric: Fix memleak of 'identparams' when connecting between split...
Peter Krempa [Wed, 18 May 2022 08:49:34 +0000 (10:49 +0200)]
virGetConnectGeneric: Fix memleak of 'identparams' when connecting between split daemons

The 'identparams' typed parameter list obtained from
virIdentityGetParameters is leaked when called from
'virGetConnectGeneric'.

Use 'virTypedParamListFromParams' to absorb it into a virTypedParamList
which can be autofreed.

Note that the memleak is observable only when running in split-daemon
mode.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/314
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoutil: typedparam: Introduce virTypedParamListFromParams
Peter Krempa [Wed, 18 May 2022 08:46:52 +0000 (10:46 +0200)]
util: typedparam: Introduce virTypedParamListFromParams

The helper constructs a virTypedParamList from loose params.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Tue, 17 May 2022 19:18:47 +0000 (21:18 +0200)]
Translated using Weblate (Finnish)

Currently translated at 22.9% (2386 of 10419 strings)

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

Co-authored-by: Jan Kuparinen <copper_fin@hotmail.com>
Signed-off-by: Jan Kuparinen <copper_fin@hotmail.com>
2 years agovirclosecallbacks: Don't pass opqaue pointer to callback invocation
Peter Krempa [Mon, 2 May 2022 13:24:51 +0000 (15:24 +0200)]
virclosecallbacks: Don't pass opqaue pointer to callback invocation

Remove the argument from the function prototypes and the callback
handler.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agobhyveProcessAutoDestroy: Use 'driver' from VM private data
Peter Krempa [Mon, 2 May 2022 13:18:40 +0000 (15:18 +0200)]
bhyveProcessAutoDestroy: Use 'driver' from VM private data

Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agolxcProcessAutoDestroy: Use 'driver' from VM private data
Peter Krempa [Mon, 2 May 2022 13:18:40 +0000 (15:18 +0200)]
lxcProcessAutoDestroy: Use 'driver' from VM private data

Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuProcessAutoDestroy: Use 'driver' from VM private data
Peter Krempa [Mon, 2 May 2022 13:18:40 +0000 (15:18 +0200)]
qemuProcessAutoDestroy: Use 'driver' from VM private data

Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMigrationSrcCleanup: Use 'driver' from VM private data
Peter Krempa [Mon, 2 May 2022 13:18:40 +0000 (15:18 +0200)]
qemuMigrationSrcCleanup: Use 'driver' from VM private data

Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agolxc: Store 'driver' in VM private data
Peter Krempa [Mon, 2 May 2022 13:17:31 +0000 (15:17 +0200)]
lxc: Store 'driver' in VM private data

Similarly to the qemu driver if we store the immutable driver pointer in
the VM private data struct we don't have to questionably pass it through
opaque pointers to callbacks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agobhyve: Store 'driver' in VM private data
Peter Krempa [Mon, 2 May 2022 13:17:31 +0000 (15:17 +0200)]
bhyve: Store 'driver' in VM private data

Similarly to the qemu driver if we store the immutable driver pointer in
the VM private data struct we don't have to questionably pass it through
opaque pointers to callbacks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMigrationSrcBegin: Automatically free 'xml' variable on error
Peter Krempa [Fri, 29 Apr 2022 12:31:43 +0000 (14:31 +0200)]
qemuMigrationSrcBegin: Automatically free 'xml' variable on error

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirObjectLockGuard: Require that returned value is used
Peter Krempa [Thu, 28 Apr 2022 11:16:34 +0000 (13:16 +0200)]
virObjectLockGuard: Require that returned value is used

The returned value is used to unlock the object, so all callers must
necessarily make use of the returned value.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirclosecallbacks.h: Reformat header to contemporary style
Peter Krempa [Thu, 28 Apr 2022 08:52:05 +0000 (10:52 +0200)]
virclosecallbacks.h: Reformat header to contemporary style

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: fd: Fix documentation for FD set related functions
Peter Krempa [Tue, 17 May 2022 09:04:40 +0000 (11:04 +0200)]
qemu: fd: Fix documentation for FD set related functions

When dealing with fdsets only we don't need to pass the FD first as we
now generate fdset name directly. Also there are no more caveats in
passing multiple FDs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuFDPassTransferCommand: Remove return value
Peter Krempa [Mon, 16 May 2022 15:17:20 +0000 (17:17 +0200)]
qemuFDPassTransferCommand: Remove return value

Now that the 'direct' mode was separated and thus we don't have any
possible error case we can stop returning any values and simplify
callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: fd: Remove support for 'direct' fd passing from 'qemuFDPass'
Peter Krempa [Mon, 16 May 2022 14:25:31 +0000 (16:25 +0200)]
qemu: fd: Remove support for 'direct' fd passing from 'qemuFDPass'

This finishes the separation of the fdset and direct helpers. Remove
'qemuFDPassNewDirect' and all internals which were applicable only in
direct mode.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuFDPassValidate: Don't validate file descriptors
Peter Krempa [Tue, 17 May 2022 08:32:47 +0000 (10:32 +0200)]
qemuFDPassValidate: Don't validate file descriptors

The callers adding the FDs are validating them regardless so this check
was redundant.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Use 'qemuFDPassDirect' for 'unix' chardevs
Peter Krempa [Mon, 16 May 2022 14:08:18 +0000 (16:08 +0200)]
qemu: Use 'qemuFDPassDirect' for 'unix' chardevs

Unix socket chardevs with FD passing need to use the direct mode so we
need to convert it to use qemuFDPassDirect.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Convert passing of 'slirpfd' to 'qemuFDPassDirect'
Peter Krempa [Mon, 16 May 2022 13:08:05 +0000 (15:08 +0200)]
qemu: Convert passing of 'slirpfd' to 'qemuFDPassDirect'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Convert passing of 'tapfds' to 'qemuFDPassDirect'
Peter Krempa [Mon, 16 May 2022 13:08:05 +0000 (15:08 +0200)]
qemu: Convert passing of 'tapfds' to 'qemuFDPassDirect'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Convert passing of 'vhostfd' to 'qemuFDPassDirect'
Peter Krempa [Mon, 16 May 2022 13:08:05 +0000 (15:08 +0200)]
qemu: Convert passing of 'vhostfd' to 'qemuFDPassDirect'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: fd: Add a distinct set of APIs for 'direct' fd passing mode
Peter Krempa [Mon, 16 May 2022 12:57:57 +0000 (14:57 +0200)]
qemu: fd: Add a distinct set of APIs for 'direct' fd passing mode

Originally I envisioned a common set of APIs for both FD passing
approaches but it turns out they are not really compatible enough for it
to make sense to use one set of APIs.

As of such introduce a distinct set of APIs for the 'direct' mode, which
will later be used to convert all places that currently use
'qemuFDPassNewDirect' and later clean up the existing APIs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: EVENTHANDLERS.txt: Move to kbase and rSTisze
Peter Krempa [Fri, 13 May 2022 11:13:02 +0000 (13:13 +0200)]
qemu: EVENTHANDLERS.txt: Move to kbase and rSTisze

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: MIGRATION.txt: Move to kbase and rSTisze
Peter Krempa [Fri, 13 May 2022 11:13:02 +0000 (13:13 +0200)]
qemu: MIGRATION.txt: Move to kbase and rSTisze

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: THREADS.txt: rSTize and move to knowledge-base
Peter Krempa [Fri, 13 May 2022 11:02:21 +0000 (13:02 +0200)]
qemu: THREADS.txt: rSTize and move to knowledge-base

Move the internal documentation about qemu threading to the knowledge
base.

The conversion included rstizing of the text document, mainly just
fixing of the headline and enclosing function names and code examples
into code block sections.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildCommandLine: Remove 'flags' argument
Peter Krempa [Mon, 16 May 2022 11:55:25 +0000 (13:55 +0200)]
qemuBuildCommandLine: Remove 'flags' argument

The flags are not used for anything.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuBuildCommandLine: Don't avoid '-S' flag for 'domxml-to-native' conversion
Peter Krempa [Mon, 16 May 2022 11:51:13 +0000 (13:51 +0200)]
qemuBuildCommandLine: Don't avoid '-S' flag for 'domxml-to-native' conversion

The commandline generated from our XML->native convertor is the majority
of cases not usable without libvirt anyways and the situation will not
improve any more.

As of such there's no much utility of avoiding the use of stopped CPUs
flag in such case.

Remove the QEMU_BUILD_COMMAND_LINE_CPUS_RUNNING flag and the associated
logic.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuBuildCommandLine: Inline qemuCheckFips
Peter Krempa [Mon, 16 May 2022 11:47:28 +0000 (13:47 +0200)]
qemuBuildCommandLine: Inline qemuCheckFips

Now that we store the state of the host FIPS mode setting in the qemu
driver object, we don't need to outsource the logic into
'qemuCheckFips'.

Additionally since we no longer support very old qemu's which would not
yet have --enable-fips we can drop the part of the comment about very
old qemus.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuBuildCommandLine: Remove 'driver' argument
Peter Krempa [Mon, 16 May 2022 11:32:59 +0000 (13:32 +0200)]
qemuBuildCommandLine: Remove 'driver' argument

We pass 'vm' which already contains it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuConnectDomainXMLToNative: Refactor cleanup
Peter Krempa [Mon, 16 May 2022 11:27:41 +0000 (13:27 +0200)]
qemuConnectDomainXMLToNative: Refactor cleanup

Automatically free the 'vm' temporary domain object and remove the
'cleanup' label and 'ret' helper variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuBuildCommandLine: Sanitize debug logging
Peter Krempa [Mon, 16 May 2022 11:20:42 +0000 (13:20 +0200)]
qemuBuildCommandLine: Sanitize debug logging

Improve the debug log inside 'qemuBuildCommandLine' to include the name
from the definition and remove useless data such as the pointer to the
qemuDriver object or qemuCaps.

Additionally remove the non-specific debug statements:

  VIR_DEBUG("Building emulator command line");

from the two callers of qemuBuildCommandLine.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemu: Store state of FIPS in virQEMUDriver
Peter Krempa [Mon, 16 May 2022 10:47:19 +0000 (12:47 +0200)]
qemu: Store state of FIPS in virQEMUDriver

Rather than re-query all the time we can cache the state of FIPS of the
host as it will not change during the runtime of the guest.

Introduce a 'hostFips' flag to 'virQEMUDriver' and move the code
checking the state from 'qemuCheckFips' to 'qemuStateInitialize' and
also populate 'hostFips' in qemuxml2argvtest.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemuBuildCommandLine: Convert 'standalone' flag to use 'flags'
Peter Krempa [Mon, 16 May 2022 11:15:22 +0000 (13:15 +0200)]
qemuBuildCommandLine: Convert 'standalone' flag to use 'flags'

Introduce 'qemuBuildCommandLineFlags' and use it instead of specific
flag booleans.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemu: command: Don't hide 'vhost' fds from 'standalone' command line
Peter Krempa [Fri, 13 May 2022 11:49:08 +0000 (13:49 +0200)]
qemu: command: Don't hide 'vhost' fds from 'standalone' command line

We already format a commandline using FD passing for the tap devices so
formatting the 'vhost' file descriptors won't make it any less usable
directly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agodocs: drvqemu: Decrease expectations about command line from 'virsh domxml-to-native'
Peter Krempa [Mon, 16 May 2022 11:03:24 +0000 (13:03 +0200)]
docs: drvqemu: Decrease expectations about command line from 'virsh domxml-to-native'

In the qemu driver certain configs such as disk throttling or CPU
hotplug is configured by interacting with the monitor at the startup
phase of the hypervisor and thus is not part of the "native config".

Add a paragraph into the documentation outlining that the native
configuration might not be completely usable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agovirConnectDomainXMLToNative: Add note about dynamically configured features
Peter Krempa [Mon, 16 May 2022 10:56:22 +0000 (12:56 +0200)]
virConnectDomainXMLToNative: Add note about dynamically configured features

In the qemu driver certain configs such as disk throttling or CPU
hotplug is configured by interacting with the monitor at the startup
phase of the hypervisor and thus is not part of the "native config" as
returned by 'virConnectDomainXMLToNative'.

Similarly at least the commandline for qemu contains resources passed
via file descriptors which are obviously not part of the returned
"native config".

Add a paragraph into the documentation outlining that the native
configuration might not be completely usable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2 years agoqemu: Implement 'absolute' clock offset mode
Peter Krempa [Tue, 26 Apr 2022 15:21:51 +0000 (17:21 +0200)]
qemu: Implement 'absolute' clock offset mode

Add support for the mode and add the corresponding qemuxml2argv test
case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoconf: Introduce 'absolute' clock offset
Peter Krempa [Tue, 26 Apr 2022 15:00:36 +0000 (17:00 +0200)]
conf: Introduce 'absolute' clock offset

The 'absolute' clock offset type has a 'start' attribute which is an
unix epoch timestamp to which the hardware clock is always set at start
of the VM.

This is useful if some VM needs to be kept set to an arbitrary time for
e.g. testing or working around broken software.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoTranslated using Weblate (Korean)
김인수 [Sat, 14 May 2022 13:18:39 +0000 (15:18 +0200)]
Translated using Weblate (Korean)

Currently translated at 100.0% (10419 of 10419 strings)

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

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2 years agoutil: Remove virCommandPassFDIndex()
Jonathon Jongsma [Fri, 13 May 2022 19:14:32 +0000 (14:14 -0500)]
util: Remove virCommandPassFDIndex()

The last use of this function was removed in commit 6d161bcc, so the
function is no longer used except as an internal implementation for
virCommandPassFD().

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 years agoutil: remove virCommandPassFDGetFDIndex()
Jonathon Jongsma [Fri, 13 May 2022 18:33:56 +0000 (13:33 -0500)]
util: remove virCommandPassFDGetFDIndex()

commit f9236200 removed the last use of this function, so it can be
dropped.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 years agoconf: Fix smm=off handling
Andrea Bolognani [Fri, 13 May 2022 14:09:30 +0000 (16:09 +0200)]
conf: Fix smm=off handling

We have to always store the state of the feature in the
virDomainDef struct, otherwise

  <smm state='off'/>

will incorrectly be interpreted as if the <smm> element was not
present.

Fixes: eeb94215b074a71b3c8932d5fcaf657f269b2c82
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agotests: Introduce smm=off test
Andrea Bolognani [Fri, 13 May 2022 14:05:26 +0000 (16:05 +0200)]
tests: Introduce smm=off test

This complements the existing smm=on tests. Looking at the output
files, one can immediately see how this case is currently not being
handled correctly. We're going to fix that in the next commit.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agotests: Update smm=on test
Andrea Bolognani [Fri, 13 May 2022 14:00:09 +0000 (16:00 +0200)]
tests: Update smm=on test

Use DO_TEST_CAPS_LATEST() instead of hardcoding capabilities and
add the xml2xml part, which was missing; finally, rename it to
accomodate the complementary smm=off test that we're about to
introduce.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: slirp: Remove unused 'qemuSlirpGetFD'
Peter Krempa [Tue, 10 May 2022 14:53:08 +0000 (16:53 +0200)]
qemu: slirp: Remove unused 'qemuSlirpGetFD'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMonitorAddNetdev: Remove unneeded 'slirp' variables and useless debug
Peter Krempa [Tue, 10 May 2022 14:50:58 +0000 (16:50 +0200)]
qemuMonitorAddNetdev: Remove unneeded 'slirp' variables and useless debug

None of the callers now uses the slirp fd passing feature, so it can be
removed.

At this point even the VIR_DEBUG doesn't make sense as it would only log
the pointer of 'props'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuDomainAttachNetDevice: Clean up unneeded 'slirp' helper variables
Peter Krempa [Tue, 10 May 2022 14:48:35 +0000 (16:48 +0200)]
qemuDomainAttachNetDevice: Clean up unneeded 'slirp' helper variables

We don't need 'slirpfdName' and 'slirpfd'. The 'slirp' local can be
removed too as qemuSlirpStart is safe to be called if there's nothing to
do.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: slirp: Pass FDs to qemu via qemuFDPass in the network private data
Peter Krempa [Tue, 10 May 2022 14:45:12 +0000 (16:45 +0200)]
qemu: slirp: Pass FDs to qemu via qemuFDPass in the network private data

Populate the 'slirpfd' qemuFDPass structure inside the private data for
passing the fd to qemu rather than using out-of-band variables.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: slirp: Call qemuSlirpOpen directly from qemuSlirpStart
Peter Krempa [Tue, 10 May 2022 14:32:27 +0000 (16:32 +0200)]
qemu: slirp: Call qemuSlirpOpen directly from qemuSlirpStart

No need to ask the callers to call this extra function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuSlirpStart: Simplify parameters
Peter Krempa [Tue, 10 May 2022 14:28:52 +0000 (16:28 +0200)]
qemuSlirpStart: Simplify parameters

The 'driver' can be taken from the private data of 'vm' and 'slirp' can
be taken from private data of 'net', both of which we need anyways.

Additionally by checking whether slirp needs to be started inside the
function we don't need to do this logic in the callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuInterfacePrepareSlirp: Directly populate the 'slirp' variable in network private...
Peter Krempa [Tue, 10 May 2022 14:17:17 +0000 (16:17 +0200)]
qemuInterfacePrepareSlirp: Directly populate the 'slirp' variable in network private data

Both callers populate the variable when qemuInterfacePrepareSlirp
returned 1. We can save the hassle in the callers by just doing it right
away.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMonitorAddNetdev: Remove unused 'tapfd' infrastructure
Peter Krempa [Tue, 10 May 2022 13:55:13 +0000 (15:55 +0200)]
qemuMonitorAddNetdev: Remove unused 'tapfd' infrastructure

All callers pass NULL/0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildNicDevProps: Remove unused 'tapfd' infrastructure
Peter Krempa [Tue, 10 May 2022 13:52:50 +0000 (15:52 +0200)]
qemuBuildNicDevProps: Remove unused 'tapfd' infrastructure

All callers pass NULL/0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuDomainAttachNetDevice: Remove unused 'tapfd' infrastructure
Peter Krempa [Tue, 10 May 2022 13:49:14 +0000 (15:49 +0200)]
qemuDomainAttachNetDevice: Remove unused 'tapfd' infrastructure

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildInterfaceCommandLine: Remove 'tapfd' infrastructure
Peter Krempa [Tue, 10 May 2022 13:48:03 +0000 (15:48 +0200)]
qemuBuildInterfaceCommandLine: Remove 'tapfd' infrastructure

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Move opening of tap file descriptors for net devices into qemuBuildInterfaceConnect
Peter Krempa [Tue, 10 May 2022 13:43:07 +0000 (15:43 +0200)]
qemu: Move opening of tap file descriptors for net devices into qemuBuildInterfaceConnect

Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMonitorAddNetdev: Remove 'vhostfd' machinery
Peter Krempa [Tue, 10 May 2022 12:41:12 +0000 (14:41 +0200)]
qemuMonitorAddNetdev: Remove 'vhostfd' machinery

All callers now pass NULL/0 as arguments for vhostfd passing so we can
remove all the associated code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildHostNetProps: Remove 'vhostfd' machinery
Peter Krempa [Tue, 10 May 2022 12:38:03 +0000 (14:38 +0200)]
qemuBuildHostNetProps: Remove 'vhostfd' machinery

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildInterfaceCommandLine: Remove 'vhostfd' machinery
Peter Krempa [Tue, 10 May 2022 07:54:10 +0000 (09:54 +0200)]
qemuBuildInterfaceCommandLine: Remove 'vhostfd' machinery

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuDomainAttachNetDevice: Remove 'vhostfd' machinery
Peter Krempa [Tue, 10 May 2022 12:30:28 +0000 (14:30 +0200)]
qemuDomainAttachNetDevice: Remove 'vhostfd' machinery

Now all the helper variables and code are not needed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Move opening of vhost file descriptors for net devices into qemuBuildInterfaceC...
Peter Krempa [Mon, 9 May 2022 15:42:08 +0000 (17:42 +0200)]
qemu: Move opening of vhost file descriptors for net devices into qemuBuildInterfaceConnect

Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuInterfaceOpenVhostNet: Reformat error messages per new guidelines
Peter Krempa [Mon, 9 May 2022 15:35:18 +0000 (17:35 +0200)]
qemuInterfaceOpenVhostNet: Reformat error messages per new guidelines

Remove the linebreaks inside of error messages.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildNicDevProps: Don't pass 'vhostfdSize'
Peter Krempa [Mon, 9 May 2022 15:12:12 +0000 (17:12 +0200)]
qemuBuildNicDevProps: Don't pass 'vhostfdSize'

All callers effectively pass 'net->driver.virtio.queues'. In case of the
code in 'qemu_hotplug.c' this value was set to '1' if it was 0 before.

Since 'qemuBuildNicDevProps' only uses it if it's greater than 1 we can
remove all the extra complexity.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Prepare netdev code for use of qemuFDPass for tapfd/vhostfd passing
Peter Krempa [Mon, 9 May 2022 14:45:12 +0000 (16:45 +0200)]
qemu: Prepare netdev code for use of qemuFDPass for tapfd/vhostfd passing

Add alternative code paths for passing of the FDs using the new
infrastructure. This way we'll be able to refactor the code
incrementally.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuDomainAttachNetDevice: Don't construct network device properties under monitor...
Peter Krempa [Mon, 9 May 2022 14:39:48 +0000 (16:39 +0200)]
qemuDomainAttachNetDevice: Don't construct network device properties under monitor lock

After the 'qemuFDPass' code was refactored we no longer need to hand off
the FD to qemu before we know the path for it.

Thus the call to qemuBuildHostNetProps can be moved outside of the
monitor critical section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildHostNetProps: Refactor construction of tapfd/vhostfd arguments
Peter Krempa [Mon, 9 May 2022 14:19:49 +0000 (16:19 +0200)]
qemuBuildHostNetProps: Refactor construction of tapfd/vhostfd arguments

Pre-construct the array the same way for the case when there's only one
FD and when there are multiple. We just change the argument name
depending on the count.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildHostNetProps: Move all 'tap' code together
Peter Krempa [Mon, 9 May 2022 14:16:35 +0000 (16:16 +0200)]
qemuBuildHostNetProps: Move all 'tap' code together

Move the block guarded by 'is_tap' boolean to the only place where
'is_tap' is set to true.

This causes few arguments to change places.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuBuildInterfaceConnect: Connect to 'vdpa' netdev
Peter Krempa [Mon, 9 May 2022 13:34:09 +0000 (15:34 +0200)]
qemuBuildInterfaceConnect: Connect to 'vdpa' netdev

Move the setup of the 'vdpa' netdev into the new helper shared between
commandline and hotplug code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: command: Introduce 'qemuBuildInterfaceConnect' helper
Peter Krempa [Mon, 9 May 2022 12:38:20 +0000 (14:38 +0200)]
qemu: command: Introduce 'qemuBuildInterfaceConnect' helper

The helper will aggregate code that is used to connect the network
backend to the corresponding host portion.

This will be used to refactor the duplicated code between the cold-start
and hotplug helper functions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: domain: Add qemuFDPass helpers into network private data
Peter Krempa [Mon, 9 May 2022 07:50:51 +0000 (09:50 +0200)]
qemu: domain: Add qemuFDPass helpers into network private data

Prepare for the upcoming refactor to use qemuFDPass for all the network
related file descriptors:

    - tapfds
    - vhostfds
    - slirp
    - vdpa

This patch adds the private data variables and a utility function to
clear it. Clearing is useful since we don't really need the data once
the VM is running so we save some memory.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Clear 'qemuFDPass' helpers of char devices when no longer needed
Peter Krempa [Fri, 6 May 2022 12:50:06 +0000 (14:50 +0200)]
qemu: Clear 'qemuFDPass' helpers of char devices when no longer needed

While the FDs are closed right after use to prevent leaks, at certain
point we don't need the whole helper any more. Clear them for char
devices after hotplug and on start.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuFDPassTransferMonitor: Close local copy of the FD as soon as it's passed to qemu
Peter Krempa [Fri, 6 May 2022 12:36:04 +0000 (14:36 +0200)]
qemuFDPassTransferMonitor: Close local copy of the FD as soon as it's passed to qemu

We don't want to keep the FDs open more than we need to.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMonitorAddFileHandleToSet: Remove return of 'qemuMonitorAddFdInfo'
Peter Krempa [Thu, 5 May 2022 15:06:10 +0000 (17:06 +0200)]
qemuMonitorAddFileHandleToSet: Remove return of 'qemuMonitorAddFdInfo'

The only caller doesn't use the fdset info any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_fd: Don't rely on fdset id allocation by qemu
Peter Krempa [Thu, 5 May 2022 14:34:52 +0000 (16:34 +0200)]
qemu_fd: Don't rely on fdset id allocation by qemu

If we use our own fdset ID when hot-adding a fdset we can vastly
simplify our internals.

As a stop-gap when a fdset would be added behind libvirt's back we'll
validated that the fdset to be added is not yet used.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: domain: Store and update 'fdsetindex' across libvirtd restarts
Peter Krempa [Thu, 5 May 2022 13:45:55 +0000 (15:45 +0200)]
qemu: domain: Store and update 'fdsetindex' across libvirtd restarts

While 'add-fd' qmp command gives the possibility to find an unused fdset
ID when hot-adding fdsets, such usage is extremely inconvenient.

This patch allows us to track the used fdset id so that we can avoid the
need to check results and thus employ simpler code flow when hot-adding
devices which use FD passing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuMonitorJSONQueryFdsets: Ensure that JSON arrays are valid before using them
Peter Krempa [Fri, 6 May 2022 10:55:00 +0000 (12:55 +0200)]
qemuMonitorJSONQueryFdsets: Ensure that JSON arrays are valid before using them

The code didn't check that the reply value is an array and that the
'fds' array is present. This could lead to a crash if qemu wouldn't
return an array in those places.

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