[PATCH 0/2] qemuBuildHostdevMediatedDevProps: Format 'ramfb' only when enabled
by Peter Krempa
Fix a regression introduced by the conversion of -device formatters and
add a test case for it.
Peter Krempa (2):
qemuBuildHostdevMediatedDevProps: Format 'ramfb' only when enabled
qemuxml2argvtest: Add device with 'ramfb=off' to
'hostdev-mdev-display-ramfb'
src/qemu/qemu_command.c | 4 +++-
.../hostdev-mdev-display-ramfb.x86_64-latest.args | 1 +
tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.xml | 5 +++++
.../hostdev-mdev-display-ramfb.x86_64-latest.xml | 6 ++++++
4 files changed, 15 insertions(+), 1 deletion(-)
--
2.31.1
3 years, 4 months
[libvirt PATCH v4 0/3] Ignore EPERM on implicit clearing of VF VLAN ID
by Dmitrii Shcherbakov
SmartNIC DPUs may not expose some privileged eswitch operations
to the hypervisor hosts. For example, this happens with Bluefield
devices running in the ECPF (default) mode [1] for security reasons. While
VF MAC address programming is possible via an RTM_SETLINK operation,
trying to set a VLAN ID in the same operation will fail with EPERM.
In the kernel a relevant call chain may look like
do_setlink -> do_setvfinfo -> dev->netdev_ops->set_vf_vlan
which calls a driver-specific function like [2] eventually.
The equivalent ip link commands below provide an illustration:
1. This works:
sudo ip link set enp130s0f0 vf 2 mac de:ad:be:ef:ca:fe
2. Setting (or clearing) a VLAN fails with EPERM:
sudo ip link set enp130s0f0 vf 2 vlan 0
RTNETLINK answers: Operation not permitted
3. This is what Libvirt attempts to do today (when trying to clear a
VF VLAN at the same time as programming a VF MAC).
sudo ip link set enp130s0f0 vf 2 vlan 0 mac de:ad:be:ef:ca:fe
RTNETLINK answers: Operation not permitted
If setting an explicit VLAN ID results in an EPERM, clearing a VLAN
(setting a VLAN ID to 0) can be handled gracefully by ignoring the
EPERM error with the rationale being that if we cannot set this state
in the first place, we cannot clear it either.
Thus, virNetDevSetVfConfig is split into two distinct functions. If
clearing a VLAN ID fails with EPERM when clearing is implicit, the
error is simply ignored. For explicit clearing EPERM is still a
fatal error.
Both new functions rely virNetDevSendVfSetLinkRequest that implements
common functionality related to formatting a request, sending it and
handling error conditions and returns 0 or an error since in both cases
the payload is either NLMSG_DONE (no error) or NLMSG_ERROR where an
error message is needed by the caller to handle known cases
appropriately. This function allows the conditional code to be unit tested.
An alternative to this could be providing a higher level control plane
mechanism that would provide metadata about a device being remotely
managed in which case Libvirt would avoid trying to set or clear a
VLAN ID. This would be more complicated since other software (like Nova
in the OpenStack case) would have to annotate every guest device with an
attribute indicating whether a device is remotely managed or not based
on operator provided configuration so that Libvirt can act on this and
avoid VLAN programming.
https://gitlab.com/dmitriis/libvirt/-/pipelines/411044099
v4 changes:
* Split the change into several patches;
* Added a missing test case;
* Reworked error handling;
* Added a way to pass a NULL vlan id to preserve the old behavior
when needed.
[1] https://docs.mellanox.com/display/BlueFieldSWv35111601/Modes+of+Operation...
[2] https://github.com/torvalds/linux/blob/v5.15/drivers/net/ethernet/mellano...
Dmitrii Shcherbakov (3):
Set VF MAC and VLAN ID in two different operations
Allow VF vlanid to be passed as a pointer
Ignore EPERM on implicit clearing of VF VLAN ID
src/hypervisor/virhostdev.c | 4 +-
src/libvirt_private.syms | 7 ++
src/util/virnetdev.c | 218 ++++++++++++++++++++------------
src/util/virnetdevpriv.h | 44 +++++++
tests/virnetdevtest.c | 241 +++++++++++++++++++++++++++++++++++-
5 files changed, 436 insertions(+), 78 deletions(-)
create mode 100644 src/util/virnetdevpriv.h
--
2.32.0
3 years, 5 months
[libvirt PATCH v3 0/1] Ignore EPERM on attempts to clear a VF VLAN ID
by Dmitrii Shcherbakov
SmartNIC DPUs may not expose some privileged eswitch operations
to the hypervisor hosts. For example, this happens with Bluefield
devices running in the ECPF (default) mode [1] for security reasons. While
VF MAC address programming is possible via an RTM_SETLINK operation,
trying to set a VLAN ID in the same operation will fail with EPERM.
In the kernel a relevant call chain may look like
do_setlink -> do_setvfinfo -> dev->netdev_ops->set_vf_vlan
which calls a driver-specific function like [2] eventually.
The equivalent ip link commands below provide an illustration:
1. This works:
sudo ip link set enp130s0f0 vf 2 mac de:ad:be:ef:ca:fe
2. Setting (or clearing) a VLAN fails with EPERM:
sudo ip link set enp130s0f0 vf 2 vlan 0
RTNETLINK answers: Operation not permitted
3. This is what Libvirt attempts to do today (when trying to clear a
VF VLAN at the same time as programming a VF MAC).
sudo ip link set enp130s0f0 vf 2 vlan 0 mac de:ad:be:ef:ca:fe
RTNETLINK answers: Operation not permitted
If setting an explicit VLAN ID results in an EPERM, clearing a VLAN
(setting a VLAN ID to 0) can be handled gracefully by ignoring the
EPERM error with the rationale being that if we cannot set this state
in the first place, we cannot clear it either.
Thus, virNetDevSetVfConfig is split into two distinct functions. If
clearing a VLAN ID fails with EPERM, the error is simply ignored.
Both new functions rely virNetDevSendVfSetLinkRequest that implements
common functionality related to formatting a request, sending it and
handling error conditions and returns 0 or an error since in both cases
the payload is either NLMSG_DONE (no error) or NLMSG_ERROR where an
error message is needed by the caller to handle known cases
appropriately. This function allows the conditional code to be unit tested.
An alternative to this could be providing a higher level control plane
mechanism that would provide metadata about a device being remotely
managed in which case Libvirt would avoid trying to set or clear a
VLAN ID. This would be more complicated since other software (like Nova
in the OpenStack case) would have to annotate every guest device with an
attribute indicating whether a device is remotely managed or not based
on operator provided configuration so that Libvirt can act on this and
avoid VLAN programming.
https://gitlab.com/dmitriis/libvirt/-/pipelines/409312792
v2 -> v3 changes:
* Fixed a bug caught during functional testing;
* Added a news file entry.
[1] https://docs.mellanox.com/display/BlueFieldSWv35111601/Modes+of+Operation...
[2] https://github.com/torvalds/linux/blob/v5.15/drivers/net/ethernet/mellano...
Dmitrii Shcherbakov (1):
Ignore EPERM on attempts to clear VF VLAN ID
NEWS.rst | 9 ++
src/libvirt_private.syms | 7 ++
src/util/virnetdev.c | 196 +++++++++++++++++++++-------------
src/util/virnetdevpriv.h | 44 ++++++++
tests/virnetdevtest.c | 222 ++++++++++++++++++++++++++++++++++++++-
5 files changed, 405 insertions(+), 73 deletions(-)
create mode 100644 src/util/virnetdevpriv.h
--
2.32.0
3 years, 5 months
[RFC PATCH] tests/qemuxml2*/graphics-spice-timeout: skip CPU model check
by Daniel Henrique Barboza
Commit 65b0b746b516 changed spice tests to use latest caps. Before this
change, "FLAG_REAL_CAPS" wasn't being set in testQemuInfoInitArgs(). The
absence of this flag triggered the code path inside
testCompareXMLToArgv() that executed testUpdateQEMUCaps(). This function
will update the host CPU via virQEMUCapsUpdateHostCPUModel() into
virQEMUCapsInitHostCPUModel(). In this function,
virQEMUCapsInitCPUModel() would end up updating the hostCPU inside the
qemuCaps (via virQEMUCapsProbeHostCPU()). Before the forementioned
commit, the host CPU was being defaulted to x86_64, vendor Intel, for
the 'graphics-spice-timeout' test that is using the 'pc' machine type
and 'accel=kvm'.
Today, "FLAG_REAL_CAPS" is being set because we're using the latest caps
from x86_64. This means that the whole code path mentioned above is
skipped. qemuCaps are now being loaded via virQEMUCapsLoadCache()
directly. Without the handling being done by testUpdateQEMUCaps(), the
host CPU is being retrieved later on, down below
qemuProcessCreatePretendCmdPrepare() into qemuProcessUpdateGuestCPU().
The latter will attempt to update the domain cpu and executing a
virCPUCompare with the hostCPU and def->cpu.
All this logic ended up causing a failure of the
'graphics-spice-timeout' test in ppc64 and s390x hosts. This test is
being run with KVM acceleration, and the KVM driver for ppc64 and s390x
will return a default x86_64 CPU with vendor "AMD", making
virCPUCompare() fail with the following message:
"QEMU XML-2-ARGV graphics-spice-timeout.x86_64-latest ... libvirt: CPU
Driver error : the CPU is incompatible with host CPU: host CPU vendor does
not match required CPU vendor Intel"
Fix this test by setting cpu check='none' and avoid the virCPUCompare()
that causes the problem for ppc64 and s390x hosts.
Reported-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
Sending as a RFC because I'm not sure if this patch fixes the
problem for s390x. Boris, can you please test and see if this
fix works for you?
tests/qemuxml2argvdata/graphics-spice-timeout.xml | 2 +-
.../qemuxml2xmloutdata/graphics-spice-timeout.x86_64-latest.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/qemuxml2argvdata/graphics-spice-timeout.xml b/tests/qemuxml2argvdata/graphics-spice-timeout.xml
index 065318651f..33dae5c4bf 100644
--- a/tests/qemuxml2argvdata/graphics-spice-timeout.xml
+++ b/tests/qemuxml2argvdata/graphics-spice-timeout.xml
@@ -15,7 +15,7 @@
<apic/>
<pae/>
</features>
- <cpu match='exact'>
+ <cpu match='exact' check='none'>
<model>core2duo</model>
<vendor>Intel</vendor>
<topology sockets='1' dies='1' cores='2' threads='1'/>
diff --git a/tests/qemuxml2xmloutdata/graphics-spice-timeout.x86_64-latest.xml b/tests/qemuxml2xmloutdata/graphics-spice-timeout.x86_64-latest.xml
index fd34a6caf5..9e6782d00b 100644
--- a/tests/qemuxml2xmloutdata/graphics-spice-timeout.x86_64-latest.xml
+++ b/tests/qemuxml2xmloutdata/graphics-spice-timeout.x86_64-latest.xml
@@ -15,7 +15,7 @@
<apic/>
<pae/>
</features>
- <cpu mode='custom' match='exact' check='partial'>
+ <cpu mode='custom' match='exact' check='none'>
<model fallback='allow'>core2duo</model>
<vendor>Intel</vendor>
<topology sockets='1' dies='1' cores='2' threads='1'/>
--
2.31.1
3 years, 5 months
[libvirt PATCH] conf: device: compare drive address fields separately
by Ján Tomko
Commit 3210c8b04 introduced a separate field 'diskbus' for
internal use by the commandline formatter.
Adjust the check for address equality to compare the relevant
fields separately instead of the whole struct.
This means that the changes of the 'diskbus' field added
in commit 03ed14d2d4 no longer affect the outcome of the address
equality check.
https://bugzilla.redhat.com/show_bug.cgi?id=2023605
Fixes: 3210c8b047534f7e1d3ccde7ea3bcf11e7c92ad9
Fixes: 03ed14d2d4a4e51568b1ee5a6e6c9c3371bb4d34
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/conf/device_conf.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index e587d90c59..cb523d3a0d 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -119,7 +119,10 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a,
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
- if (memcmp(&a->addr.drive, &b->addr.drive, sizeof(a->addr.drive)))
+ if (a->addr.drive.controller != b->addr.drive.controller ||
+ a->addr.drive.unit != b->addr.drive.unit ||
+ a->addr.drive.bus != b->addr.drive.bus ||
+ a->addr.drive.target != b->addr.drive.target)
return false;
break;
--
2.31.1
3 years, 5 months
[PATCH] virt-aa-helper: fix bool initialization
by christian.ehrhardt@canonical.com
From: Christian Ehrhardt <christian.ehrhardt(a)canonical.com>
Since purged is a bool variable it should be initialized by false
instead of 0.
Suggested-by: Sergio Durigan Junior <sergio.durigan(a)canonical.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt(a)canonical.com>
---
src/security/virt-aa-helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 218e07bfb0..898f9f1a16 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1438,7 +1438,7 @@ main(int argc, char **argv)
char *profile = NULL;
char *include_file = NULL;
off_t size;
- bool purged = 0;
+ bool purged = false;
if (virGettextInitialize() < 0 ||
virErrorInitialize() < 0) {
--
2.33.1
3 years, 5 months
[PATCH 00/18] qemu: command: Convert '-compat' and '-audiodev' to use JSON
by Peter Krempa
In line of the previous work to use the long-term stable versions of the
commandline interface.
Peter Krempa (18):
virJSONValueObjectAdd: Convert @obj argument to double pointer
virJSONValueObjectAddVArgs: Take double pointer
virJSONValueObjectAddVArgs: Allocate new object if passed pointer is
NULL
qemu: block: Replace virJSONValueObjectCreate by virJSONValueObjectAdd
qemu: agent: Replace virJSONValueObjectCreate by virJSONValueObjectAdd
qemu: monitor_json: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
qemu: monitor: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
qemu: migration_cookie: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
qemuDiskSourceGetProps: Initialize 'ret'
qemu: command: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
qemublocktest: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
virjsontest: Replace virJSONValueObjectCreate by virJSONValueObjectAdd
qemu: migration_params: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
virsh: domain: Replace virJSONValueObjectCreate by
virJSONValueObjectAdd
Replace virJSONValueObjectCreateVArgs with virJSONValueObjectAddVArgs
util: json: Remove virJSONValueObjectCreate(VArgs)
qemu: command: Use JSON for parameters of -compat
qemu: command: Use JSON for parameters of -audiodev
src/libvirt_private.syms | 2 -
src/qemu/qemu_agent.c | 10 +-
src/qemu/qemu_block.c | 378 ++++----
src/qemu/qemu_command.c | 890 +++++++++---------
src/qemu/qemu_migration_cookie.c | 25 +-
src/qemu/qemu_migration_params.c | 8 +-
src/qemu/qemu_monitor.c | 20 +-
src/qemu/qemu_monitor_json.c | 51 +-
src/util/virjson.c | 50 +-
src/util/virjson.h | 8 +-
tests/qemublocktest.c | 2 +-
...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 2 +-
...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 2 +-
.../aarch64-features-sve.aarch64-latest.args | 2 +-
...arch64-os-firmware-efi.aarch64-latest.args | 2 +-
.../aarch64-tpm.aarch64-latest.args | 2 +-
.../aarch64-virt-graphics.aarch64-latest.args | 2 +-
.../aarch64-virt-headless.aarch64-latest.args | 2 +-
.../audio-alsa-best.x86_64-latest.args | 2 +-
.../audio-alsa-full.x86_64-latest.args | 2 +-
.../audio-alsa-minimal.x86_64-latest.args | 2 +-
.../audio-coreaudio-best.x86_64-latest.args | 2 +-
.../audio-coreaudio-full.x86_64-latest.args | 2 +-
...audio-coreaudio-minimal.x86_64-latest.args | 2 +-
...udio-default-nographics.x86_64-latest.args | 2 +-
.../audio-default-sdl.x86_64-latest.args | 2 +-
.../audio-default-spice.x86_64-latest.args | 2 +-
.../audio-default-vnc.x86_64-latest.args | 2 +-
.../audio-file-best.x86_64-latest.args | 2 +-
.../audio-file-full.x86_64-latest.args | 2 +-
.../audio-file-minimal.x86_64-latest.args | 2 +-
.../audio-jack-full.x86_64-latest.args | 2 +-
.../audio-jack-minimal.x86_64-latest.args | 2 +-
.../audio-many-backends.x86_64-latest.args | 6 +-
.../audio-none-best.x86_64-latest.args | 2 +-
.../audio-none-full.x86_64-latest.args | 2 +-
.../audio-none-minimal.x86_64-latest.args | 2 +-
.../audio-oss-best.x86_64-latest.args | 2 +-
.../audio-oss-full.x86_64-latest.args | 2 +-
.../audio-oss-minimal.x86_64-latest.args | 2 +-
.../audio-pulseaudio-best.x86_64-latest.args | 2 +-
.../audio-pulseaudio-full.x86_64-latest.args | 2 +-
...udio-pulseaudio-minimal.x86_64-latest.args | 2 +-
.../audio-sdl-best.x86_64-latest.args | 2 +-
.../audio-sdl-full.x86_64-latest.args | 2 +-
.../audio-sdl-minimal.x86_64-latest.args | 2 +-
.../audio-spice-best.x86_64-latest.args | 2 +-
.../audio-spice-full.x86_64-latest.args | 2 +-
.../audio-spice-minimal.x86_64-latest.args | 2 +-
.../blkdeviotune-group-num.x86_64-latest.args | 2 +-
...blkdeviotune-max-length.x86_64-latest.args | 2 +-
.../blkdeviotune-max.x86_64-latest.args | 2 +-
.../channel-unix-guestfwd.x86_64-latest.args | 2 +-
.../clock-timer-armvtimer.aarch64-latest.args | 2 +-
.../console-sclp.s390x-latest.args | 2 +-
.../console-virtio-unix.x86_64-latest.args | 2 +-
.../controller-virtio-scsi.x86_64-latest.args | 2 +-
...-Icelake-Server-pconfig.x86_64-latest.args | 2 +-
.../cpu-host-model.x86_64-4.2.0.args | 2 +-
.../cpu-host-model.x86_64-5.0.0.args | 2 +-
.../cpu-host-model.x86_64-5.1.0.args | 2 +-
.../cpu-host-model.x86_64-5.2.0.args | 2 +-
.../cpu-host-model.x86_64-6.0.0.args | 2 +-
.../cpu-host-model.x86_64-6.1.0.args | 2 +-
.../cpu-host-model.x86_64-latest.args | 2 +-
.../cpu-translation.x86_64-latest.args | 2 +-
.../cputune-cpuset-big-id.x86_64-latest.args | 2 +-
...ult-video-type-aarch64.aarch64-latest.args | 2 +-
...default-video-type-ppc64.ppc64-latest.args | 2 +-
...ult-video-type-riscv64.riscv64-latest.args | 2 +-
...default-video-type-s390x.s390x-latest.args | 2 +-
.../devices-acpi-index.x86_64-latest.args | 2 +-
.../disk-aio-io_uring.x86_64-latest.args | 2 +-
.../disk-aio.x86_64-latest.args | 2 +-
.../disk-arm-virtio-sd.aarch64-latest.args | 2 +-
...-backing-chains-noindex.x86_64-latest.args | 2 +-
.../disk-blockio.x86_64-latest.args | 2 +-
.../disk-boot-cdrom.x86_64-latest.args | 2 +-
.../disk-boot-disk.x86_64-latest.args | 2 +-
.../disk-cache.x86_64-latest.args | 2 +-
.../disk-cdrom-bus-other.x86_64-latest.args | 2 +-
...m-empty-network-invalid.x86_64-latest.args | 2 +-
.../disk-cdrom-network.x86_64-latest.args | 2 +-
.../disk-cdrom-tray.x86_64-latest.args | 2 +-
.../disk-cdrom.x86_64-latest.args | 2 +-
.../disk-copy_on_read.x86_64-latest.args | 2 +-
.../disk-detect-zeroes.x86_64-latest.args | 2 +-
.../disk-discard.x86_64-latest.args | 2 +-
.../disk-error-policy-s390x.s390x-latest.args | 2 +-
.../disk-error-policy.x86_64-latest.args | 2 +-
.../disk-floppy-q35-2_11.x86_64-latest.args | 2 +-
.../disk-floppy-q35-2_9.x86_64-latest.args | 2 +-
.../disk-floppy-tray.x86_64-latest.args | 2 +-
.../disk-floppy.x86_64-latest.args | 2 +-
.../disk-fmt-qcow.x86_64-latest.args | 2 +-
.../disk-geometry.x86_64-latest.args | 2 +-
.../disk-ide-split.x86_64-latest.args | 2 +-
.../disk-ide-wwn.x86_64-latest.args | 2 +-
.../disk-ioeventfd.x86_64-latest.args | 2 +-
.../disk-metadata-cache.x86_64-latest.args | 2 +-
.../disk-network-gluster.x86_64-latest.args | 2 +-
.../disk-network-http.x86_64-latest.args | 2 +-
.../disk-network-iscsi.x86_64-latest.args | 2 +-
.../disk-network-nbd.x86_64-latest.args | 2 +-
.../disk-network-nfs.x86_64-latest.args | 2 +-
...-network-rbd-encryption.x86_64-latest.args | 2 +-
...sk-network-rbd-no-colon.x86_64-latest.args | 2 +-
.../disk-network-rbd.x86_64-latest.args | 2 +-
.../disk-network-sheepdog.x86_64-6.0.0.args | 2 +-
...isk-network-source-auth.x86_64-latest.args | 2 +-
...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 2 +-
...isk-network-tlsx509-nbd.x86_64-latest.args | 2 +-
...isk-network-tlsx509-vxhs.x86_64-5.0.0.args | 2 +-
.../disk-no-boot.x86_64-latest.args | 2 +-
.../disk-nvme.x86_64-latest.args | 2 +-
.../disk-order.x86_64-latest.args | 2 +-
.../disk-readonly-disk.x86_64-latest.args | 2 +-
.../disk-rotation.x86_64-latest.args | 2 +-
.../disk-sata-device.x86_64-latest.args | 2 +-
.../disk-scsi-device-auto.x86_64-latest.args | 2 +-
.../disk-scsi-disk-split.x86_64-latest.args | 2 +-
.../disk-scsi-disk-vpd.x86_64-latest.args | 2 +-
.../disk-scsi-disk-wwn.x86_64-latest.args | 2 +-
...sk-scsi-lun-passthrough.x86_64-latest.args | 2 +-
.../disk-scsi.x86_64-latest.args | 2 +-
.../disk-serial.x86_64-latest.args | 2 +-
.../disk-shared.x86_64-latest.args | 2 +-
.../disk-slices.x86_64-latest.args | 2 +-
.../disk-snapshot.x86_64-latest.args | 2 +-
.../disk-source-pool-mode.x86_64-latest.args | 2 +-
.../disk-source-pool.x86_64-latest.args | 2 +-
.../disk-transient.x86_64-latest.args | 2 +-
...sk-usb-device-removable.x86_64-latest.args | 2 +-
.../disk-usb-device.x86_64-latest.args | 2 +-
.../disk-vhostuser.x86_64-latest.args | 2 +-
.../disk-virtio-ccw-many.s390x-latest.args | 2 +-
.../disk-virtio-ccw.s390x-latest.args | 2 +-
.../disk-virtio-queues.x86_64-latest.args | 2 +-
.../disk-virtio-s390-zpci.s390x-latest.args | 2 +-
...virtio-scsi-reservations.x86_64-5.2.0.args | 2 +-
...irtio-scsi-reservations.x86_64-latest.args | 2 +-
.../disk-virtio.x86_64-latest.args | 2 +-
.../encrypted-disk-usage.x86_64-latest.args | 2 +-
.../encrypted-disk.x86_64-latest.args | 2 +-
.../eoi-disabled.x86_64-latest.args | 2 +-
.../eoi-enabled.x86_64-latest.args | 2 +-
.../event_idx.x86_64-latest.args | 2 +-
.../fips-enabled.x86_64-5.1.0.args | 2 +-
.../fips-enabled.x86_64-latest.args | 2 +-
.../floppy-drive-fat.x86_64-latest.args | 2 +-
.../fs9p-ccw.s390x-latest.args | 2 +-
.../qemuxml2argvdata/fs9p.x86_64-latest.args | 2 +-
.../genid-auto.x86_64-latest.args | 2 +-
.../qemuxml2argvdata/genid.x86_64-latest.args | 2 +-
...s-spice-agent-file-xfer.x86_64-latest.args | 2 +-
...aphics-spice-agentmouse.x86_64-latest.args | 2 +-
...s-spice-auto-socket-cfg.x86_64-latest.args | 2 +-
...phics-spice-auto-socket.x86_64-latest.args | 2 +-
...phics-spice-compression.x86_64-latest.args | 2 +-
...hics-spice-egl-headless.x86_64-latest.args | 2 +-
...pice-gl-auto-rendernode.x86_64-latest.args | 2 +-
.../graphics-spice-no-args.x86_64-latest.args | 2 +-
.../graphics-spice-qxl-vga.x86_64-latest.args | 2 +-
.../graphics-spice-sasl.x86_64-latest.args | 2 +-
.../graphics-spice-socket.x86_64-latest.args | 2 +-
.../graphics-spice-timeout.x86_64-latest.args | 2 +-
...raphics-spice-usb-redir.x86_64-latest.args | 2 +-
.../graphics-spice.x86_64-latest.args | 2 +-
...ics-vnc-auto-socket-cfg.x86_64-latest.args | 2 +-
...raphics-vnc-auto-socket.x86_64-latest.args | 2 +-
...aphics-vnc-egl-headless.x86_64-latest.args | 2 +-
...hics-vnc-no-listen-attr.x86_64-latest.args | 2 +-
.../graphics-vnc-none.x86_64-latest.args | 2 +-
.../graphics-vnc-policy.x86_64-latest.args | 2 +-
.../graphics-vnc-power.x86_64-latest.args | 2 +-
...remove-generated-socket.x86_64-latest.args | 2 +-
.../graphics-vnc-sasl.x86_64-latest.args | 2 +-
...-vnc-socket-new-cmdline.x86_64-latest.args | 2 +-
.../graphics-vnc-socket.x86_64-latest.args | 2 +-
.../graphics-vnc-tls-secret.x86_64-5.2.0.args | 2 +-
...graphics-vnc-tls-secret.x86_64-latest.args | 2 +-
.../graphics-vnc-tls.x86_64-latest.args | 2 +-
.../graphics-vnc-websocket.x86_64-latest.args | 2 +-
.../graphics-vnc.x86_64-latest.args | 2 +-
...tdev-mdev-display-ramfb.x86_64-latest.args | 2 +-
...play-spice-egl-headless.x86_64-latest.args | 2 +-
...ev-display-spice-opengl.x86_64-latest.args | 2 +-
...isplay-vnc-egl-headless.x86_64-latest.args | 2 +-
...ostdev-mdev-display-vnc.x86_64-latest.args | 2 +-
.../hostdev-scsi-lsi.x86_64-latest.args | 2 +-
...ostdev-scsi-virtio-scsi.x86_64-latest.args | 2 +-
...tdev-subsys-mdev-vfio-ap.s390x-latest.args | 2 +-
...ubsys-mdev-vfio-ccw-boot.s390x-latest.args | 2 +-
.../hugepages-memaccess3.x86_64-latest.args | 2 +-
.../hugepages-nvdimm.x86_64-latest.args | 2 +-
.../hyperv-off.x86_64-latest.args | 2 +-
.../hyperv-panic.x86_64-latest.args | 2 +-
.../hyperv-stimer-direct.x86_64-latest.args | 2 +-
.../hyperv.x86_64-latest.args | 2 +-
.../input-linux.x86_64-latest.args | 2 +-
.../intel-iommu-aw-bits.x86_64-latest.args | 2 +-
...ntel-iommu-caching-mode.x86_64-latest.args | 2 +-
...ntel-iommu-device-iotlb.x86_64-latest.args | 2 +-
.../intel-iommu-eim.x86_64-latest.args | 2 +-
.../intel-iommu.x86_64-latest.args | 2 +-
.../iommu-smmuv3.aarch64-latest.args | 2 +-
...othreads-virtio-scsi-ccw.s390x-latest.args | 2 +-
...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 2 +-
...threads-virtio-scsi-pci.x86_64-latest.args | 2 +-
.../kvmclock+eoi-disabled.x86_64-latest.args | 2 +-
.../launch-security-s390-pv.s390x-latest.args | 2 +-
.../launch-security-sev.x86_64-6.0.0.args | 2 +-
.../luks-disks-source-qcow2.x86_64-5.2.0.args | 2 +-
...luks-disks-source-qcow2.x86_64-latest.args | 2 +-
.../luks-disks-source.x86_64-latest.args | 2 +-
.../luks-disks.x86_64-latest.args | 2 +-
...memory-default-hugepage.x86_64-latest.args | 2 +-
.../memfd-memory-numa.x86_64-latest.args | 2 +-
...y-hotplug-nvdimm-access.x86_64-latest.args | 2 +-
...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 2 +-
...ry-hotplug-nvdimm-align.x86_64-latest.args | 2 +-
...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 2 +-
...ry-hotplug-nvdimm-label.x86_64-latest.args | 2 +-
...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 2 +-
...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +-
...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 2 +-
...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +-
.../memory-hotplug-nvdimm.x86_64-latest.args | 2 +-
...mory-hotplug-virtio-mem.x86_64-latest.args | 2 +-
...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 2 +-
...ory-hotplug-virtio-pmem.x86_64-latest.args | 2 +-
.../misc-no-reboot.x86_64-5.2.0.args | 2 +-
.../misc-no-reboot.x86_64-latest.args | 2 +-
.../mlock-off.x86_64-latest.args | 2 +-
.../mlock-on.x86_64-latest.args | 2 +-
.../net-vdpa.x86_64-latest.args | 2 +-
.../net-vhostuser.x86_64-latest.args | 2 +-
.../numatune-hmat.x86_64-latest.args | 2 +-
...emnode-restrictive-mode.x86_64-latest.args | 2 +-
.../numatune-memnode.x86_64-5.2.0.args | 2 +-
.../numatune-memnode.x86_64-latest.args | 2 +-
.../numatune-system-memory.x86_64-latest.args | 2 +-
.../os-firmware-bios.x86_64-latest.args | 2 +-
...re-efi-no-enrolled-keys.x86_64-latest.args | 2 +-
...os-firmware-efi-secboot.x86_64-latest.args | 2 +-
.../os-firmware-efi.x86_64-latest.args | 2 +-
.../panic-double.x86_64-latest.args | 2 +-
.../panic-no-address.x86_64-latest.args | 2 +-
.../qemuxml2argvdata/panic.x86_64-latest.args | 2 +-
.../parallel-unix-chardev.x86_64-latest.args | 2 +-
...pi-root-hotplug-disable.x86_64-latest.args | 2 +-
...cpi-root-hotplug-enable.x86_64-latest.args | 2 +-
...e-expander-bus-aarch64.aarch64-latest.args | 2 +-
...cie-root-port-nohotplug.x86_64-latest.args | 2 +-
...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 2 +-
...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 2 +-
...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 2 +-
.../ppc64-pseries-graphics.ppc64-latest.args | 2 +-
.../ppc64-pseries-headless.ppc64-latest.args | 2 +-
.../ppc64-tpmproxy-single.ppc64-latest.args | 2 +-
.../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 2 +-
.../pv-spinlock-disabled.x86_64-latest.args | 2 +-
.../pv-spinlock-enabled.x86_64-latest.args | 2 +-
.../qemu-ns.x86_64-latest.args | 4 +-
.../riscv64-virt-graphics.riscv64-latest.args | 2 +-
.../riscv64-virt-headless.riscv64-latest.args | 2 +-
...low-bogus-usb-controller.s390x-latest.args | 2 +-
...390-allow-bogus-usb-none.s390x-latest.args | 2 +-
...t-cpu-kvm-ccw-virtio-2.7.s390x-latest.args | 2 +-
...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 2 +-
...t-cpu-tcg-ccw-virtio-2.7.s390x-latest.args | 2 +-
...t-cpu-tcg-ccw-virtio-4.2.s390x-latest.args | 2 +-
.../s390x-ccw-graphics.s390x-latest.args | 2 +-
.../s390x-ccw-headless.s390x-latest.args | 2 +-
.../serial-unix-chardev.x86_64-latest.args | 2 +-
...rtcard-passthrough-unix.x86_64-latest.args | 2 +-
.../tpm-emulator-spapr.ppc64-latest.args | 2 +-
.../tpm-emulator-tpm2-enc.x86_64-latest.args | 2 +-
...pm-emulator-tpm2-pstate.x86_64-latest.args | 2 +-
.../tpm-emulator-tpm2.x86_64-latest.args | 2 +-
.../tpm-emulator.x86_64-latest.args | 2 +-
.../tpm-passthrough-crb.x86_64-latest.args | 2 +-
.../tpm-passthrough.x86_64-latest.args | 2 +-
.../tseg-explicit-size.x86_64-latest.args | 2 +-
.../usb-redir-unix.x86_64-latest.args | 2 +-
...vhost-user-fs-fd-memory.x86_64-latest.args | 2 +-
...vhost-user-fs-hugepages.x86_64-latest.args | 2 +-
...host-user-gpu-secondary.x86_64-latest.args | 2 +-
.../vhost-user-vga.x86_64-latest.args | 2 +-
.../vhost-vsock-auto.x86_64-latest.args | 2 +-
.../vhost-vsock-ccw-auto.s390x-latest.args | 2 +-
.../vhost-vsock-ccw-iommu.s390x-latest.args | 2 +-
.../vhost-vsock-ccw.s390x-latest.args | 2 +-
.../vhost-vsock.x86_64-latest.args | 2 +-
...eo-bochs-display-device.x86_64-latest.args | 2 +-
...video-qxl-device-vram64.x86_64-latest.args | 2 +-
...o-qxl-sec-device-vram64.x86_64-latest.args | 2 +-
...eo-ramfb-display-device.x86_64-latest.args | 2 +-
...video-virtio-vga-gpu-gl.x86_64-latest.args | 2 +-
.../virtio-9p-createmode.x86_64-latest.args | 2 +-
.../virtio-9p-multidevs.x86_64-latest.args | 2 +-
.../virtio-lun.x86_64-latest.args | 2 +-
...virtio-non-transitional.x86_64-latest.args | 2 +-
...-options-controller-ats.x86_64-latest.args | 2 +-
...ptions-controller-iommu.x86_64-latest.args | 2 +-
...tions-controller-packed.x86_64-latest.args | 2 +-
...virtio-options-disk-ats.x86_64-latest.args | 2 +-
...rtio-options-disk-iommu.x86_64-latest.args | 2 +-
...tio-options-disk-packed.x86_64-latest.args | 2 +-
.../virtio-options-fs-ats.x86_64-latest.args | 2 +-
...virtio-options-fs-iommu.x86_64-latest.args | 2 +-
...irtio-options-fs-packed.x86_64-latest.args | 2 +-
...irtio-options-input-ats.x86_64-latest.args | 2 +-
...tio-options-input-iommu.x86_64-latest.args | 2 +-
...io-options-input-packed.x86_64-latest.args | 2 +-
...-options-memballoon-ats.x86_64-latest.args | 2 +-
...loon-freepage-reporting.x86_64-latest.args | 2 +-
...ptions-memballoon-iommu.x86_64-latest.args | 2 +-
...tions-memballoon-packed.x86_64-latest.args | 2 +-
.../virtio-options-net-ats.x86_64-latest.args | 2 +-
...irtio-options-net-iommu.x86_64-latest.args | 2 +-
...rtio-options-net-packed.x86_64-latest.args | 2 +-
.../virtio-options-rng-ats.x86_64-latest.args | 2 +-
...irtio-options-rng-iommu.x86_64-latest.args | 2 +-
...rtio-options-rng-packed.x86_64-latest.args | 2 +-
...irtio-options-video-ats.x86_64-latest.args | 2 +-
...tio-options-video-iommu.x86_64-latest.args | 2 +-
...io-options-video-packed.x86_64-latest.args | 2 +-
.../virtio-options.x86_64-latest.args | 2 +-
.../virtio-rng-builtin.x86_64-5.2.0.args | 2 +-
.../virtio-rng-builtin.x86_64-latest.args | 2 +-
.../virtio-rng-egd-unix.x86_64-5.2.0.args | 2 +-
.../virtio-rng-egd-unix.x86_64-latest.args | 2 +-
.../virtio-transitional.x86_64-latest.args | 2 +-
.../watchdog-device.x86_64-latest.args | 2 +-
.../watchdog-diag288.s390x-latest.args | 2 +-
.../watchdog-dump.x86_64-latest.args | 2 +-
.../watchdog-injectnmi.x86_64-latest.args | 2 +-
.../watchdog.x86_64-latest.args | 2 +-
...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 2 +-
...default-cpu-kvm-q35-4.2.x86_64-latest.args | 2 +-
...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 2 +-
...default-cpu-tcg-q35-4.2.x86_64-latest.args | 2 +-
.../x86_64-pc-graphics.x86_64-latest.args | 2 +-
.../x86_64-pc-headless.x86_64-latest.args | 2 +-
.../x86_64-q35-graphics.x86_64-latest.args | 2 +-
.../x86_64-q35-headless.x86_64-latest.args | 2 +-
tests/virjsontest.c | 18 +-
tools/virsh-domain.c | 8 +-
352 files changed, 1080 insertions(+), 1074 deletions(-)
--
2.31.1
3 years, 5 months
[PATCH 0/2] qemu_command: Generate -mem-prealloc in one corner case more
by Michal Privoznik
This is a result of mu discussion with Jing:
https://listman.redhat.com/archives/libvir-list/2021-September/msg00407.html
Turns out, the problem has nothing to do with my virtio-mem patches so
I'm sending fix separately.
Michal Prívozník (2):
qemuxml2argvtest: Introduce another numa-topology test
qemu_command: Generate -mem-prealloc in one corner case more
src/qemu/qemu_command.c | 17 ++++-----
.../fd-memory-numa-topology.args | 3 +-
.../fd-memory-numa-topology2.args | 5 +--
.../fd-memory-numa-topology3.args | 7 ++--
...d-memory-numa-topology4.x86_64-latest.args | 34 +++++++++++++++++
.../fd-memory-numa-topology4.xml | 37 +++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
...fd-memory-numa-topology4.x86_64-latest.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
9 files changed, 88 insertions(+), 18 deletions(-)
create mode 100644 tests/qemuxml2argvdata/fd-memory-numa-topology4.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/fd-memory-numa-topology4.xml
create mode 120000 tests/qemuxml2xmloutdata/fd-memory-numa-topology4.x86_64-latest.xml
--
2.32.0
3 years, 5 months