[PATCH 0/8] qemu: caps: Add detection of default device property values and remove deprecated 'scsi=off'

First part focuses on allowing the device property code to detect the default values for the properties and the second part then uses it to remove formatting of the deprecated 'scsi=off' for virti-blk-pci. Peter Krempa (8): virQEMUCapsProbeQMPDevices: Split up into logical chunks virQEMUCapsProbeQMPDeviceProperties: Switch to local implementation virQEMUCapsProbeQMPObjectTypes: Fold in virQEMUCapsProbeQMPGenericProps qemuMonitorJSONGetDeviceProps: Refactor to modern standards qemuMonitorGetDeviceProps: Return data in a hash table virQEMUCapsProbeQMPDeviceProperties: Add per-property callbacks qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED qemu: command: Stop formatting of 'scsi=off' for virtio-blk-pci src/qemu/qemu_capabilities.c | 347 ++++++++++-------- src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 4 +- src/qemu/qemu_monitor.c | 11 +- src/qemu/qemu_monitor.h | 5 +- src/qemu/qemu_monitor_json.c | 58 ++- src/qemu/qemu_monitor_json.h | 7 +- .../caps_5.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + .../caps_5.0.0.riscv64.xml | 1 + .../caps_5.0.0.x86_64.xml | 1 + .../caps_5.1.0.x86_64.xml | 1 + ...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 2 +- ...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 2 +- .../aarch64-virt-graphics.aarch64-latest.args | 2 +- .../aarch64-virt-headless.aarch64-latest.args | 2 +- .../disk-aio-io_uring.x86_64-latest.args | 2 +- ...-backing-chains-noindex.x86_64-latest.args | 12 +- .../disk-cache.x86_64-latest.args | 2 +- .../disk-cdrom-tray.x86_64-latest.args | 2 +- .../disk-copy_on_read.x86_64-latest.args | 2 +- .../disk-detect-zeroes.x86_64-latest.args | 2 +- .../disk-network-gluster.x86_64-latest.args | 6 +- .../disk-network-http.x86_64-latest.args | 8 +- .../disk-network-iscsi.x86_64-latest.args | 8 +- .../disk-network-nbd.x86_64-latest.args | 10 +- .../disk-network-rbd.x86_64-latest.args | 12 +- .../disk-network-sheepdog.x86_64-latest.args | 2 +- ...isk-network-source-auth.x86_64-latest.args | 4 +- .../disk-network-tlsx509.x86_64-latest.args | 8 +- .../disk-nvme.x86_64-latest.args | 8 +- .../disk-shared.x86_64-latest.args | 4 +- .../disk-slices.x86_64-latest.args | 6 +- ...threads-virtio-scsi-pci.x86_64-latest.args | 2 +- ...luks-disks-source-qcow2.x86_64-latest.args | 12 +- ...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 +- .../riscv64-virt-graphics.riscv64-latest.args | 2 +- .../riscv64-virt-headless.riscv64-latest.args | 2 +- ...vhost-user-fs-hugepages.x86_64-latest.args | 2 +- ...virtio-non-transitional.x86_64-latest.args | 2 +- ...virtio-options-disk-ats.x86_64-latest.args | 8 +- ...rtio-options-disk-iommu.x86_64-latest.args | 4 +- ...tio-options-disk-packed.x86_64-latest.args | 8 +- .../virtio-options.x86_64-latest.args | 4 +- .../virtio-transitional.x86_64-latest.args | 4 +- ...-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 +- 60 files changed, 356 insertions(+), 270 deletions(-) -- 2.26.2

The function was parsing 'qom-list-types' and then also calling function which parses 'device-list-properties' and also 'qom-list-properties'. Split it up into individual functions. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 51 ++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2c6e36685e..dadbef32a2 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2586,9 +2586,10 @@ virQEMUCapsProbeQMPGenericProps(virQEMUCapsPtr qemuCaps, return 0; } + static int -virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, - qemuMonitorPtr mon) +virQEMUCapsProbeQMPObjectTypes(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon) { int nvalues; char **values; @@ -2601,22 +2602,34 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, nvalues, values); virStringListFreeCount(values, nvalues); - if (virQEMUCapsProbeQMPGenericProps(qemuCaps, - mon, - virQEMUCapsDeviceProps, - G_N_ELEMENTS(virQEMUCapsDeviceProps), - qemuMonitorGetDeviceProps) < 0) - return -1; + return 0; +} - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QOM_LIST_PROPERTIES) && - virQEMUCapsProbeQMPGenericProps(qemuCaps, - mon, - virQEMUCapsObjectProps, - G_N_ELEMENTS(virQEMUCapsObjectProps), - qemuMonitorGetObjectProps) < 0) - return -1; - return 0; +static int +virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon) +{ + return virQEMUCapsProbeQMPGenericProps(qemuCaps, + mon, + virQEMUCapsDeviceProps, + G_N_ELEMENTS(virQEMUCapsDeviceProps), + qemuMonitorGetDeviceProps); +} + + +static int +virQEMUCapsProbeQMPObjectProperties(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon) +{ + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QOM_LIST_PROPERTIES)) + return 0; + + return virQEMUCapsProbeQMPGenericProps(qemuCaps, + mon, + virQEMUCapsObjectProps, + G_N_ELEMENTS(virQEMUCapsObjectProps), + qemuMonitorGetObjectProps); } @@ -5061,7 +5074,11 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0) return -1; - if (virQEMUCapsProbeQMPDevices(qemuCaps, mon) < 0) + if (virQEMUCapsProbeQMPObjectTypes(qemuCaps, mon) < 0) + return -1; + if (virQEMUCapsProbeQMPDeviceProperties(qemuCaps, mon) < 0) + return -1; + if (virQEMUCapsProbeQMPObjectProperties(qemuCaps, mon) < 0) return -1; if (virQEMUCapsProbeQMPMachineTypes(qemuCaps, type, mon) < 0) return -1; -- 2.26.2

Reimplement device property detection directly rather than using virQEMUCapsProbeQMPGenericProps in preparation for changes to the detection code. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index dadbef32a2..5e72dead45 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2610,11 +2610,27 @@ static int virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps, qemuMonitorPtr mon) { - return virQEMUCapsProbeQMPGenericProps(qemuCaps, - mon, - virQEMUCapsDeviceProps, - G_N_ELEMENTS(virQEMUCapsDeviceProps), - qemuMonitorGetDeviceProps); + size_t i; + + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsDeviceProps); i++) { + virQEMUCapsObjectTypeProps *device = virQEMUCapsDeviceProps + i; + VIR_AUTOSTRINGLIST values = NULL; + int nvalues; + + if (device->capsCondition >= 0 && + !virQEMUCapsGet(qemuCaps, device->capsCondition)) + continue; + + if ((nvalues = qemuMonitorGetDeviceProps(mon, device->type, &values)) < 0) + return -1; + + virQEMUCapsProcessStringFlags(qemuCaps, + device->nprops, + device->props, + nvalues, values); + } + + return 0; } -- 2.26.2

virQEMUCapsProbeQMPGenericProps is used only in one place now. Move the code directly to virQEMUCapsProbeQMPObjectTypes. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 60 +++++++++++++----------------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 5e72dead45..42425fabbd 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1483,10 +1483,6 @@ struct _virQEMUCapsObjectTypeProps { int capsCondition; }; -typedef int (*virQEMUCapsObjectTypePropsCB)(qemuMonitorPtr mon, - const char *type, - char ***props); - static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = { { "virtio-blk-pci", virQEMUCapsDevicePropsVirtioBlk, G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlk), @@ -2556,36 +2552,6 @@ virQEMUCapsProbeQMPEvents(virQEMUCapsPtr qemuCaps, return 0; } -static int -virQEMUCapsProbeQMPGenericProps(virQEMUCapsPtr qemuCaps, - qemuMonitorPtr mon, - virQEMUCapsObjectTypeProps *props, - size_t nprops, - virQEMUCapsObjectTypePropsCB propsGetCB) -{ - int nvalues; - char **values; - size_t i; - - for (i = 0; i < nprops; i++) { - const char *type = props[i].type; - int cap = props[i].capsCondition; - - if (cap >= 0 && !virQEMUCapsGet(qemuCaps, cap)) - continue; - - if ((nvalues = propsGetCB(mon, type, &values)) < 0) - return -1; - virQEMUCapsProcessStringFlags(qemuCaps, - props[i].nprops, - props[i].props, - nvalues, values); - virStringListFreeCount(values, nvalues); - } - - return 0; -} - static int virQEMUCapsProbeQMPObjectTypes(virQEMUCapsPtr qemuCaps, @@ -2638,14 +2604,30 @@ static int virQEMUCapsProbeQMPObjectProperties(virQEMUCapsPtr qemuCaps, qemuMonitorPtr mon) { + size_t i; + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QOM_LIST_PROPERTIES)) return 0; - return virQEMUCapsProbeQMPGenericProps(qemuCaps, - mon, - virQEMUCapsObjectProps, - G_N_ELEMENTS(virQEMUCapsObjectProps), - qemuMonitorGetObjectProps); + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsObjectProps); i++) { + virQEMUCapsObjectTypeProps *props = virQEMUCapsObjectProps + i; + VIR_AUTOSTRINGLIST values = NULL; + int nvalues; + + if (props->capsCondition >= 0 && + !virQEMUCapsGet(qemuCaps, props->capsCondition)) + continue; + + if ((nvalues = qemuMonitorGetObjectProps(mon, props->type, &values)) < 0) + return -1; + + virQEMUCapsProcessStringFlags(qemuCaps, + props->nprops, + props->props, + nvalues, values); + } + + return 0; } -- 2.26.2

Use automatic cleanup of variables and current style of header. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_monitor_json.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 619717eae5..9d1db07ccd 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6745,13 +6745,13 @@ qemuMonitorJSONParsePropsList(virJSONValuePtr cmd, } -int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, - const char *device, - char ***props) +int +qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, + const char *device, + char ***props) { - int ret = -1; - virJSONValuePtr cmd; - virJSONValuePtr reply = NULL; + g_autoptr(virJSONValue) cmd = NULL; + g_autoptr(virJSONValue) reply = NULL; *props = NULL; @@ -6761,18 +6761,12 @@ int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, return -1; if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) - goto cleanup; + return -1; - if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) { - ret = 0; - goto cleanup; - } + if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) + return 0; - ret = qemuMonitorJSONParsePropsList(cmd, reply, NULL, props); - cleanup: - virJSONValueFree(reply); - virJSONValueFree(cmd); - return ret; + return qemuMonitorJSONParsePropsList(cmd, reply, NULL, props); } -- 2.26.2

Create a hash table of device property names which also stores the corresponding JSON object so that the detection code can look at the recently added 'default-value' field and possibly others. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 18 ++++++++------ src/qemu/qemu_monitor.c | 11 ++++----- src/qemu/qemu_monitor.h | 5 ++-- src/qemu/qemu_monitor_json.c | 46 +++++++++++++++++++++++++++++------- src/qemu/qemu_monitor_json.h | 7 +++--- 5 files changed, 58 insertions(+), 29 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 42425fabbd..ae1f0853f1 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2580,20 +2580,24 @@ virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps, for (i = 0; i < G_N_ELEMENTS(virQEMUCapsDeviceProps); i++) { virQEMUCapsObjectTypeProps *device = virQEMUCapsDeviceProps + i; - VIR_AUTOSTRINGLIST values = NULL; - int nvalues; + g_autoptr(virHashTable) qemuprops = NULL; + size_t j; if (device->capsCondition >= 0 && !virQEMUCapsGet(qemuCaps, device->capsCondition)) continue; - if ((nvalues = qemuMonitorGetDeviceProps(mon, device->type, &values)) < 0) + if (!(qemuprops = qemuMonitorGetDeviceProps(mon, device->type))) return -1; - virQEMUCapsProcessStringFlags(qemuCaps, - device->nprops, - device->props, - nvalues, values); + for (j = 0; j < device->nprops; j++) { + virJSONValuePtr entry = virHashLookup(qemuprops, device->props[j].value); + + if (!entry) + continue; + + virQEMUCapsSet(qemuCaps, device->props[j].flag); + } } return 0; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 339facfad3..9c853ccb93 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3764,16 +3764,15 @@ qemuMonitorGetObjectTypes(qemuMonitorPtr mon, } -int +virHashTablePtr qemuMonitorGetDeviceProps(qemuMonitorPtr mon, - const char *device, - char ***props) + const char *device) { - VIR_DEBUG("device=%s props=%p", device, props); + VIR_DEBUG("device=%s", device); - QEMU_CHECK_MONITOR(mon); + QEMU_CHECK_MONITOR_NULL(mon); - return qemuMonitorJSONGetDeviceProps(mon, device, props); + return qemuMonitorJSONGetDeviceProps(mon, device); } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 68e21dcaee..2e35d94bda 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1203,9 +1203,8 @@ int qemuMonitorGetKVMState(qemuMonitorPtr mon, int qemuMonitorGetObjectTypes(qemuMonitorPtr mon, char ***types); -int qemuMonitorGetDeviceProps(qemuMonitorPtr mon, - const char *device, - char ***props); +virHashTablePtr qemuMonitorGetDeviceProps(qemuMonitorPtr mon, + const char *device); int qemuMonitorGetObjectProps(qemuMonitorPtr mon, const char *object, char ***props); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 9d1db07ccd..505b31a78a 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6745,28 +6745,56 @@ qemuMonitorJSONParsePropsList(virJSONValuePtr cmd, } -int +static int +qemuMonitorJSONGetDevicePropsWorker(size_t pos G_GNUC_UNUSED, + virJSONValuePtr item, + void *opaque) +{ + const char *name = virJSONValueObjectGetString(item, "name"); + virHashTablePtr devices = opaque; + + if (!name) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("reply data was missing 'name'")); + return -1; + } + + if (virHashAddEntry(devices, name, item) < 0) + return -1; + + return 0; +} + + +virHashTablePtr qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, - const char *device, - char ***props) + const char *device) { + g_autoptr(virHashTable) props = virHashNew(virJSONValueHashFree); g_autoptr(virJSONValue) cmd = NULL; g_autoptr(virJSONValue) reply = NULL; - *props = NULL; - if (!(cmd = qemuMonitorJSONMakeCommand("device-list-properties", "s:typename", device, NULL))) - return -1; + return NULL; if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) - return -1; + return NULL; + /* return empty hash */ if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) - return 0; + return g_steal_pointer(&props); + + if (qemuMonitorJSONCheckReply(cmd, reply, VIR_JSON_TYPE_ARRAY) < 0) + return NULL; + + if (virJSONValueArrayForeachSteal(virJSONValueObjectGetArray(reply, "return"), + qemuMonitorJSONGetDevicePropsWorker, + props) < 0) + return NULL; - return qemuMonitorJSONParsePropsList(cmd, reply, NULL, props); + return g_steal_pointer(&props); } diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 05a46b4fe2..d3d46ec2f7 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -487,10 +487,9 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon, qemuMonitorJSONObjectPropertyPtr prop) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); -int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, - const char *device, - char ***props) - ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); +virHashTablePtr qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon, + const char *device) + ATTRIBUTE_NONNULL(2); int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon, const char *object, char ***props) -- 2.26.2

QEMU-5.0 added 'default-value' field for any applicable property returned by 'device-list-properties'. Add an optional callback for any device property definition which will allow detection of features and default values based on this new data. This unfortunately means that the description of properties had to move from the slightly-too-generic 'struct virQEMUCapsStringFlags' to a new type (virQEMUCapsDevicePropsFlags) which also has the callback property and the corresponding change in the initializers. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 226 +++++++++++++++++++---------------- 1 file changed, 124 insertions(+), 102 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index ae1f0853f1..94a1e5e3b8 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1303,154 +1303,162 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { { "tcg-accel", QEMU_CAPS_TCG }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioBalloon[] = { - { "deflate-on-oom", QEMU_CAPS_VIRTIO_BALLOON_AUTODEFLATE }, - { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY }, - { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM }, - { "ats", QEMU_CAPS_VIRTIO_PCI_ATS }, - { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES }, + +struct virQEMUCapsDevicePropsFlags { + const char *value; + int flag; + int (*cb)(virJSONValuePtr props, virQEMUCapsPtr caps); +}; + + +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBalloon[] = { + { "deflate-on-oom", QEMU_CAPS_VIRTIO_BALLOON_AUTODEFLATE, NULL }, + { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, NULL }, + { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, NULL }, + { "ats", QEMU_CAPS_VIRTIO_PCI_ATS, NULL }, + { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioBlk[] = { - { "ioeventfd", QEMU_CAPS_VIRTIO_IOEVENTFD }, - { "event_idx", QEMU_CAPS_VIRTIO_BLK_EVENT_IDX }, - { "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI }, - { "logical_block_size", QEMU_CAPS_BLOCKIO }, - { "num-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES }, - { "share-rw", QEMU_CAPS_DISK_SHARE_RW }, - { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY }, - { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM }, - { "ats", QEMU_CAPS_VIRTIO_PCI_ATS }, - { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE }, - { "werror", QEMU_CAPS_STORAGE_WERROR }, - { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBlk[] = { + { "ioeventfd", QEMU_CAPS_VIRTIO_IOEVENTFD, NULL }, + { "event_idx", QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, NULL }, + { "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI, NULL }, + { "logical_block_size", QEMU_CAPS_BLOCKIO, NULL }, + { "num-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES, NULL }, + { "share-rw", QEMU_CAPS_DISK_SHARE_RW, NULL }, + { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, NULL }, + { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, NULL }, + { "ats", QEMU_CAPS_VIRTIO_PCI_ATS, NULL }, + { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE, NULL }, + { "werror", QEMU_CAPS_STORAGE_WERROR, NULL }, + { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioNet[] = { - { "tx", QEMU_CAPS_VIRTIO_TX_ALG }, - { "event_idx", QEMU_CAPS_VIRTIO_NET_EVENT_IDX }, - { "rx_queue_size", QEMU_CAPS_VIRTIO_NET_RX_QUEUE_SIZE }, - { "tx_queue_size", QEMU_CAPS_VIRTIO_NET_TX_QUEUE_SIZE }, - { "host_mtu", QEMU_CAPS_VIRTIO_NET_HOST_MTU }, - { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY }, - { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM }, - { "ats", QEMU_CAPS_VIRTIO_PCI_ATS }, - { "failover", QEMU_CAPS_VIRTIO_NET_FAILOVER }, - { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioNet[] = { + { "tx", QEMU_CAPS_VIRTIO_TX_ALG, NULL }, + { "event_idx", QEMU_CAPS_VIRTIO_NET_EVENT_IDX, NULL }, + { "rx_queue_size", QEMU_CAPS_VIRTIO_NET_RX_QUEUE_SIZE, NULL }, + { "tx_queue_size", QEMU_CAPS_VIRTIO_NET_TX_QUEUE_SIZE, NULL }, + { "host_mtu", QEMU_CAPS_VIRTIO_NET_HOST_MTU, NULL }, + { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, NULL }, + { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, NULL }, + { "ats", QEMU_CAPS_VIRTIO_PCI_ATS, NULL }, + { "failover", QEMU_CAPS_VIRTIO_NET_FAILOVER, NULL }, + { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsPCIeRootPort[] = { - { "hotplug", QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsPCIeRootPort[] = { + { "hotplug", QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSpaprPCIHostBridge[] = { - { "numa_node", QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSpaprPCIHostBridge[] = { + { "numa_node", QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioSCSI[] = { - { "iothread", QEMU_CAPS_VIRTIO_SCSI_IOTHREAD }, - { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY }, - { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM }, - { "ats", QEMU_CAPS_VIRTIO_PCI_ATS }, - { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioSCSI[] = { + { "iothread", QEMU_CAPS_VIRTIO_SCSI_IOTHREAD, NULL }, + { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, NULL }, + { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, NULL }, + { "ats", QEMU_CAPS_VIRTIO_PCI_ATS, NULL }, + { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVfioPCI[] = { - { "display", QEMU_CAPS_VFIO_PCI_DISPLAY }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVfioPCI[] = { + { "display", QEMU_CAPS_VFIO_PCI_DISPLAY, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSCSIDisk[] = { - { "channel", QEMU_CAPS_SCSI_DISK_CHANNEL }, - { "wwn", QEMU_CAPS_SCSI_DISK_WWN }, - { "share-rw", QEMU_CAPS_DISK_SHARE_RW }, - { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE }, - { "device_id", QEMU_CAPS_SCSI_DISK_DEVICE_ID }, - { "werror", QEMU_CAPS_STORAGE_WERROR }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIDisk[] = { + { "channel", QEMU_CAPS_SCSI_DISK_CHANNEL, NULL }, + { "wwn", QEMU_CAPS_SCSI_DISK_WWN, NULL }, + { "share-rw", QEMU_CAPS_DISK_SHARE_RW, NULL }, + { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE, NULL }, + { "device_id", QEMU_CAPS_SCSI_DISK_DEVICE_ID, NULL }, + { "werror", QEMU_CAPS_STORAGE_WERROR, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsIDEDrive[] = { - { "wwn", QEMU_CAPS_IDE_DRIVE_WWN }, - { "share-rw", QEMU_CAPS_DISK_SHARE_RW }, - { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsIDEDrive[] = { + { "wwn", QEMU_CAPS_IDE_DRIVE_WWN, NULL }, + { "share-rw", QEMU_CAPS_DISK_SHARE_RW, NULL }, + { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsPiix4PM[] = { - { "disable_s3", QEMU_CAPS_PIIX_DISABLE_S3 }, - { "disable_s4", QEMU_CAPS_PIIX_DISABLE_S4 }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsPiix4PM[] = { + { "disable_s3", QEMU_CAPS_PIIX_DISABLE_S3, NULL }, + { "disable_s4", QEMU_CAPS_PIIX_DISABLE_S4, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBRedir[] = { - { "filter", QEMU_CAPS_USB_REDIR_FILTER }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBRedir[] = { + { "filter", QEMU_CAPS_USB_REDIR_FILTER, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsI440FXPCIHost[] = { - { "pci-hole64-size", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsI440FXPCIHost[] = { + { "pci-hole64-size", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsQ35PCIHost[] = { - { "pci-hole64-size", QEMU_CAPS_Q35_PCI_HOLE64_SIZE }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsQ35PCIHost[] = { + { "pci-hole64-size", QEMU_CAPS_Q35_PCI_HOLE64_SIZE, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBStorage[] = { - { "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE }, - { "share-rw", QEMU_CAPS_DISK_SHARE_RW }, - { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE }, - { "werror", QEMU_CAPS_USB_STORAGE_WERROR }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBStorage[] = { + { "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE, NULL }, + { "share-rw", QEMU_CAPS_DISK_SHARE_RW, NULL }, + { "write-cache", QEMU_CAPS_DISK_WRITE_CACHE, NULL }, + { "werror", QEMU_CAPS_USB_STORAGE_WERROR, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsKVMPit[] = { - { "lost_tick_policy", QEMU_CAPS_KVM_PIT_TICK_POLICY }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsKVMPit[] = { + { "lost_tick_policy", QEMU_CAPS_KVM_PIT_TICK_POLICY, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVGA[] = { - { "vgamem_mb", QEMU_CAPS_VGA_VGAMEM }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVGA[] = { + { "vgamem_mb", QEMU_CAPS_VGA_VGAMEM, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVmwareSvga[] = { - { "vgamem_mb", QEMU_CAPS_VMWARE_SVGA_VGAMEM }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVmwareSvga[] = { + { "vgamem_mb", QEMU_CAPS_VMWARE_SVGA_VGAMEM, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsQxl[] = { - { "vgamem_mb", QEMU_CAPS_QXL_VGAMEM }, - { "vram64_size_mb", QEMU_CAPS_QXL_VRAM64 }, - { "max_outputs", QEMU_CAPS_QXL_MAX_OUTPUTS }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsQxl[] = { + { "vgamem_mb", QEMU_CAPS_QXL_VGAMEM, NULL }, + { "vram64_size_mb", QEMU_CAPS_QXL_VRAM64, NULL }, + { "max_outputs", QEMU_CAPS_QXL_MAX_OUTPUTS, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioGpu[] = { - { "virgl", QEMU_CAPS_VIRTIO_GPU_VIRGL }, - { "max_outputs", QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS }, - { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY }, - { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM }, - { "ats", QEMU_CAPS_VIRTIO_PCI_ATS }, - { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioGpu[] = { + { "virgl", QEMU_CAPS_VIRTIO_GPU_VIRGL, NULL }, + { "max_outputs", QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS, NULL }, + { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, NULL }, + { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, NULL }, + { "ats", QEMU_CAPS_VIRTIO_PCI_ATS, NULL }, + { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsICH9[] = { - { "disable_s3", QEMU_CAPS_ICH9_DISABLE_S3 }, - { "disable_s4", QEMU_CAPS_ICH9_DISABLE_S4 }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsICH9[] = { + { "disable_s3", QEMU_CAPS_ICH9_DISABLE_S3, NULL }, + { "disable_s4", QEMU_CAPS_ICH9_DISABLE_S4, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBNECXHCI[] = { - { "p3", QEMU_CAPS_NEC_USB_XHCI_PORTS }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBNECXHCI[] = { + { "p3", QEMU_CAPS_NEC_USB_XHCI_PORTS, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsIntelIOMMU[] = { - { "intremap", QEMU_CAPS_INTEL_IOMMU_INTREMAP }, - { "caching-mode", QEMU_CAPS_INTEL_IOMMU_CACHING_MODE }, - { "eim", QEMU_CAPS_INTEL_IOMMU_EIM }, - { "device-iotlb", QEMU_CAPS_INTEL_IOMMU_DEVICE_IOTLB }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsIntelIOMMU[] = { + { "intremap", QEMU_CAPS_INTEL_IOMMU_INTREMAP, NULL }, + { "caching-mode", QEMU_CAPS_INTEL_IOMMU_CACHING_MODE, NULL }, + { "eim", QEMU_CAPS_INTEL_IOMMU_EIM, NULL }, + { "device-iotlb", QEMU_CAPS_INTEL_IOMMU_DEVICE_IOTLB, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtualCSSBridge[] = { - { "cssid-unrestricted", QEMU_CAPS_CCW_CSSID_UNRESTRICTED }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsObjectPropsVirtualCSSBridge[] = { + { "cssid-unrestricted", QEMU_CAPS_CCW_CSSID_UNRESTRICTED, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsMCH[] = { - { "extended-tseg-mbytes", QEMU_CAPS_MCH_EXTENDED_TSEG_MBYTES }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsMCH[] = { + { "extended-tseg-mbytes", QEMU_CAPS_MCH_EXTENDED_TSEG_MBYTES, NULL }, }; -static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsNVDIMM[] = { - { "unarmed", QEMU_CAPS_DEVICE_NVDIMM_UNARMED }, +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsNVDIMM[] = { + { "unarmed", QEMU_CAPS_DEVICE_NVDIMM_UNARMED, NULL }, }; /* see documentation for virQEMUQAPISchemaPathGet for the query format */ @@ -1483,7 +1491,17 @@ struct _virQEMUCapsObjectTypeProps { int capsCondition; }; -static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = { + +typedef struct _virQEMUCapsDeviceTypeProps virQEMUCapsDeviceTypeProps; +struct _virQEMUCapsDeviceTypeProps { + const char *type; + struct virQEMUCapsDevicePropsFlags *props; + size_t nprops; + int capsCondition; +}; + + +static virQEMUCapsDeviceTypeProps virQEMUCapsDeviceProps[] = { { "virtio-blk-pci", virQEMUCapsDevicePropsVirtioBlk, G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlk), -1 }, @@ -2579,7 +2597,7 @@ virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps, size_t i; for (i = 0; i < G_N_ELEMENTS(virQEMUCapsDeviceProps); i++) { - virQEMUCapsObjectTypeProps *device = virQEMUCapsDeviceProps + i; + virQEMUCapsDeviceTypeProps *device = virQEMUCapsDeviceProps + i; g_autoptr(virHashTable) qemuprops = NULL; size_t j; @@ -2597,6 +2615,10 @@ virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps, continue; virQEMUCapsSet(qemuCaps, device->props[j].flag); + + if (device->props[j].cb && + device->props[j].cb(entry, qemuCaps) < 0) + return -1; } } -- 2.26.2

Historically the 'scsi' passthrough feature of virtio-blk-pci was enabled by default. Libvirt was disabling it due to security implications outlined in libvirt commit v0.9.9-4-g177db08775 if it was not explicitly requested. In qemu commit v2.4.0-1566-ged65fd1a27 the default value was changed to disabled in preparation for virtio-1. Starting from QEMU-5.0 the 'scsi' property was also deprecated. There replacement for the functionality is to use 'virtio-scsi' for the purpose. This isn't a direct replacement though. Add capability named QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED which allows us to stop formatting the 'scsi=' property if it's disabled by default and not requested so that we don't use deprecated features. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 20 ++++++++++++++++++- src/qemu/qemu_capabilities.h | 1 + .../caps_5.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + .../caps_5.0.0.riscv64.xml | 1 + .../caps_5.0.0.x86_64.xml | 1 + .../caps_5.1.0.x86_64.xml | 1 + 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 94a1e5e3b8..0e7db2643a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -580,6 +580,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "machine.pseries.cap-sbbc", "machine.pseries.cap-ibs", "tcg", + "virtio-blk-pci.scsi.default.disabled", ); @@ -1319,10 +1320,27 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBalloon[] { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL }, }; + +static int +virQEMUCapsDevicePropsVirtioBlkSCSIDefault(virJSONValuePtr props, + virQEMUCapsPtr qemuCaps) +{ + bool def = false; + + if (virJSONValueObjectGetBoolean(props, "default-value", &def) < 0) + return 0; + + if (def == false) + virQEMUCapsSet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED); + + return 0; +} + + static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBlk[] = { { "ioeventfd", QEMU_CAPS_VIRTIO_IOEVENTFD, NULL }, { "event_idx", QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, NULL }, - { "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI, NULL }, + { "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI, virQEMUCapsDevicePropsVirtioBlkSCSIDefault }, { "logical_block_size", QEMU_CAPS_BLOCKIO, NULL }, { "num-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES, NULL }, { "share-rw", QEMU_CAPS_DISK_SHARE_RW, NULL }, diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index cdeaf09cce..db8bebe3df 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -561,6 +561,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_MACHINE_PSERIES_CAP_SBBC, /* -machine pseries.cap-sbbc */ QEMU_CAPS_MACHINE_PSERIES_CAP_IBS, /* -machine pseries.cap-ibs */ QEMU_CAPS_TCG, /* QEMU does support TCG */ + QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED, /* virtio-blk-pci.scsi disabled by default */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml index 1f743aaa11..618ad8ee14 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -191,6 +191,7 @@ <flag name='virtio.packed'/> <flag name='pcie-root-port.hotplug'/> <flag name='tcg'/> + <flag name='virtio-blk-pci.scsi.default.disabled'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml index a5f0bb538b..0f5dce9264 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -199,6 +199,7 @@ <flag name='machine.pseries.cap-sbbc'/> <flag name='machine.pseries.cap-ibs'/> <flag name='tcg'/> + <flag name='virtio-blk-pci.scsi.default.disabled'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml index e9651ca581..bc6a27e87e 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -187,6 +187,7 @@ <flag name='pcie-root-port.hotplug'/> <flag name='aio.io_uring'/> <flag name='tcg'/> + <flag name='virtio-blk-pci.scsi.default.disabled'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml index f127f38bcc..ed4c08e99e 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -232,6 +232,7 @@ <flag name='pcie-root-port.hotplug'/> <flag name='aio.io_uring'/> <flag name='tcg'/> + <flag name='virtio-blk-pci.scsi.default.disabled'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml index 9611549bd7..f7018daa84 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -232,6 +232,7 @@ <flag name='pcie-root-port.hotplug'/> <flag name='aio.io_uring'/> <flag name='tcg'/> + <flag name='virtio-blk-pci.scsi.default.disabled'/> <version>5000050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100242</microcodeVersion> -- 2.26.2

The property was deprecated. Don't format it based on the new capability if the user didn't explicitly request it. https://bugzilla.redhat.com/show_bug.cgi?id=1829550 Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_command.c | 4 +++- ...ch64-default-cpu-kvm-virt-4.2.aarch64-latest.args | 2 +- ...ch64-default-cpu-tcg-virt-4.2.aarch64-latest.args | 2 +- .../aarch64-virt-graphics.aarch64-latest.args | 2 +- .../aarch64-virt-headless.aarch64-latest.args | 2 +- .../disk-aio-io_uring.x86_64-latest.args | 2 +- .../disk-backing-chains-noindex.x86_64-latest.args | 12 ++++++------ tests/qemuxml2argvdata/disk-cache.x86_64-latest.args | 2 +- .../disk-cdrom-tray.x86_64-latest.args | 2 +- .../disk-copy_on_read.x86_64-latest.args | 2 +- .../disk-detect-zeroes.x86_64-latest.args | 2 +- .../disk-network-gluster.x86_64-latest.args | 6 +++--- .../disk-network-http.x86_64-latest.args | 8 ++++---- .../disk-network-iscsi.x86_64-latest.args | 8 ++++---- .../disk-network-nbd.x86_64-latest.args | 10 +++++----- .../disk-network-rbd.x86_64-latest.args | 12 ++++++------ .../disk-network-sheepdog.x86_64-latest.args | 2 +- .../disk-network-source-auth.x86_64-latest.args | 4 ++-- .../disk-network-tlsx509.x86_64-latest.args | 8 ++++---- tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args | 8 ++++---- .../qemuxml2argvdata/disk-shared.x86_64-latest.args | 4 ++-- .../qemuxml2argvdata/disk-slices.x86_64-latest.args | 6 +++--- .../iothreads-virtio-scsi-pci.x86_64-latest.args | 2 +- .../luks-disks-source-qcow2.x86_64-latest.args | 12 ++++++------ ...c64-default-cpu-kvm-pseries-2.7.ppc64-latest.args | 2 +- ...c64-default-cpu-kvm-pseries-3.1.ppc64-latest.args | 2 +- ...c64-default-cpu-kvm-pseries-4.2.ppc64-latest.args | 2 +- ...c64-default-cpu-tcg-pseries-2.7.ppc64-latest.args | 2 +- ...c64-default-cpu-tcg-pseries-3.1.ppc64-latest.args | 2 +- ...c64-default-cpu-tcg-pseries-4.2.ppc64-latest.args | 2 +- .../ppc64-pseries-graphics.ppc64-latest.args | 2 +- .../ppc64-pseries-headless.ppc64-latest.args | 2 +- .../riscv64-virt-graphics.riscv64-latest.args | 2 +- .../riscv64-virt-headless.riscv64-latest.args | 2 +- .../vhost-user-fs-hugepages.x86_64-latest.args | 2 +- .../virtio-non-transitional.x86_64-latest.args | 2 +- .../virtio-options-disk-ats.x86_64-latest.args | 8 ++++---- .../virtio-options-disk-iommu.x86_64-latest.args | 4 ++-- .../virtio-options-disk-packed.x86_64-latest.args | 8 ++++---- .../virtio-options.x86_64-latest.args | 4 ++-- .../virtio-transitional.x86_64-latest.args | 4 ++-- .../x86_64-default-cpu-kvm-pc-4.2.x86_64-latest.args | 2 +- ...x86_64-default-cpu-kvm-q35-4.2.x86_64-latest.args | 2 +- .../x86_64-default-cpu-tcg-pc-4.2.x86_64-latest.args | 2 +- ...x86_64-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 +- 49 files changed, 97 insertions(+), 95 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 269bdbaf56..31fc0b4340 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2113,7 +2113,9 @@ qemuBuildDiskDeviceStr(const virDomainDef *def, virBufferAsprintf(&opt, ",event_idx=%s", virTristateSwitchTypeToString(disk->event_idx)); } - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_SCSI)) { + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_SCSI) && + !(virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED) && + disk->device != VIR_DOMAIN_DISK_DEVICE_LUN)) { /* if sg_io is true but the scsi option isn't supported, * that means it's just always on in this version of qemu. */ diff --git a/tests/qemuxml2argvdata/aarch64-default-cpu-kvm-virt-4.2.aarch64-latest.args b/tests/qemuxml2argvdata/aarch64-default-cpu-kvm-virt-4.2.aarch64-latest.args index e8da16897f..8cb202a2c9 100644 --- a/tests/qemuxml2argvdata/aarch64-default-cpu-kvm-virt-4.2.aarch64-latest.args +++ b/tests/qemuxml2argvdata/aarch64-default-cpu-kvm-virt-4.2.aarch64-latest.args @@ -33,7 +33,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.1,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.1,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args b/tests/qemuxml2argvdata/aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args index 1b41743107..7518afb17d 100644 --- a/tests/qemuxml2argvdata/aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args +++ b/tests/qemuxml2argvdata/aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args @@ -34,7 +34,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.1,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.1,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/aarch64-virt-graphics.aarch64-latest.args b/tests/qemuxml2argvdata/aarch64-virt-graphics.aarch64-latest.args index 058c528e8a..468f207925 100644 --- a/tests/qemuxml2argvdata/aarch64-virt-graphics.aarch64-latest.args +++ b/tests/qemuxml2argvdata/aarch64-virt-graphics.aarch64-latest.args @@ -52,7 +52,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:53:45:a5,bus=pci.1,\ diff --git a/tests/qemuxml2argvdata/aarch64-virt-headless.aarch64-latest.args b/tests/qemuxml2argvdata/aarch64-virt-headless.aarch64-latest.args index ddd0518bd5..7101100fd0 100644 --- a/tests/qemuxml2argvdata/aarch64-virt-headless.aarch64-latest.args +++ b/tests/qemuxml2argvdata/aarch64-virt-headless.aarch64-latest.args @@ -52,7 +52,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,\ diff --git a/tests/qemuxml2argvdata/disk-aio-io_uring.x86_64-latest.args b/tests/qemuxml2argvdata/disk-aio-io_uring.x86_64-latest.args index 0bcf8f5aff..8596639f60 100644 --- a/tests/qemuxml2argvdata/disk-aio-io_uring.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-aio-io_uring.x86_64-latest.args @@ -33,7 +33,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x9,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x9,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args index 6c19da970f..6e01f55577 100644 --- a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args @@ -37,7 +37,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-24-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-24-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-24-storage","backing":"libvirt-25-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-24-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-24-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"file","filename":"/tmp/Fedora-17-x86_64-Live-KDE.iso",\ "node-name":"libvirt-23-storage","auto-read-only":true,"discard":"unmap"}' \ @@ -68,14 +68,14 @@ id=virtio-disk0,bootindex=1 \ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-17-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-17-storage","backing":"libvirt-18-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-17-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-17-format,\ id=virtio-disk1 \ -blockdev '{"driver":"gluster","volume":"Volume1","path":"Image",\ "server":[{"type":"inet","host":"example.org","port":"6000"}],"debug":4,\ "node-name":"libvirt-16-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-16-format","read-only":false,"driver":"raw",\ "file":"libvirt-16-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-16-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-16-format,\ id=virtio-disk2 \ -blockdev '{"driver":"file","filename":"/tmp/image.qcow",\ "node-name":"libvirt-15-storage","auto-read-only":true,"discard":"unmap"}' \ @@ -92,13 +92,13 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-14-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-14-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-14-storage","backing":"libvirt-15-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-14-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-14-format,\ id=virtio-disk3 \ -blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest11",\ "node-name":"libvirt-13-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-13-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-13-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-13-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-13-format,\ id=virtio-disk4 \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/rhel7.qcow2",\ "node-name":"libvirt-12-storage","auto-read-only":true,"discard":"unmap"}' \ @@ -159,7 +159,7 @@ id=virtio-disk4 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage","backing":"libvirt-2-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ id=virtio-disk5 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args index 4b70cb634c..931e344028 100644 --- a/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args @@ -59,7 +59,7 @@ drive=libvirt-3-format,id=scsi0-0-0,write-cache=on \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,\ "cache":{"direct":false,"no-flush":false},"driver":"qcow2",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ id=virtio-disk0,write-cache=off \ -blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\ "node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},\ diff --git a/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args index 120aa5b53b..3e56168acb 100644 --- a/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args @@ -32,7 +32,7 @@ file=/tmp/lib/domain--1-test/master-key.aes \ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-3-format,\ id=virtio-disk0,bootindex=2 \ -blockdev '{"driver":"file",\ "filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\ diff --git a/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args b/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args index 82d44ba0bb..701038404d 100644 --- a/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args @@ -35,7 +35,7 @@ file=/tmp/lib/domain--1-test/master-key.aes \ "file":"libvirt-2-storage"}' \ -blockdev '{"driver":"copy-on-read","node-name":"libvirt-CoR-vda",\ "file":"libvirt-2-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-CoR-vda,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-CoR-vda,\ id=virtio-disk0,bootindex=2 \ -blockdev '{"driver":"file",\ "filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\ diff --git a/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args b/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args index 1a6a02a3be..8e8d92a6f7 100644 --- a/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args @@ -32,7 +32,7 @@ file=/tmp/lib/domain--1-test/master-key.aes \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"discard":"unmap",\ "detect-zeroes":"unmap","driver":"qcow2","file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-2-format,\ id=virtio-disk0,bootindex=2 \ -blockdev '{"driver":"file",\ "filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args index 2cd59992ca..4e68f1b628 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args @@ -33,14 +33,14 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-3-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"gluster","volume":"Volume2","path":"Image",\ "server":[{"type":"unix","path":"/path/to/sock"}],"debug":4,\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ id=virtio-disk1 \ -blockdev '{"driver":"gluster","volume":"Volume3","path":"Image.qcow2",\ "server":[{"type":"inet","host":"example.org","port":"6000"},{"type":"inet",\ @@ -49,7 +49,7 @@ id=virtio-disk1 \ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ id=virtio-disk2 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args index 7b4674a588..814f747dad 100644 --- a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args @@ -33,14 +33,14 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-4-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"https","url":"https://example.org:443/test2.img",\ "readahead":1024,"node-name":"libvirt-3-storage","auto-read-only":true,\ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-3-format,\ id=virtio-disk1 \ -object secret,id=libvirt-2-storage-httpcookie-secret0,\ data=DrPR9NA6GKJb7qi1KbjHaealKEMVtOWUl2h3yvO5lgIh6cyLHemmlg+h9fcgwREA,\ @@ -50,7 +50,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-2-format,\ id=virtio-disk2 \ -object secret,id=libvirt-1-storage-httpcookie-secret0,\ data=DrPR9NA6GKJb7qi1KbjHaealKEMVtOWUl2h3yvO5lgIh6cyLHemmlg+h9fcgwREA,\ @@ -61,7 +61,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-1-format,\ id=virtio-disk3 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args index 3f61f6dc2c..9848128092 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args @@ -34,14 +34,14 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\ "file":"libvirt-5-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-5-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-5-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"iscsi","portal":"example.org:6000",\ "target":"iqn.1992-01.com.example","lun":1,"transport":"tcp",\ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ id=virtio-disk1 \ -object secret,id=libvirt-3-storage-auth-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -52,7 +52,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ id=virtio-disk2 \ -object secret,id=libvirt-2-storage-auth-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -63,7 +63,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ id=virtio-disk3 \ -blockdev '{"driver":"iscsi","portal":"example.org:3260",\ "target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args index 5453440ac8..8c9bbed130 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args @@ -33,34 +33,34 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\ "file":"libvirt-5-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-5-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-5-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.org",\ "port":"6000"},"export":"bar","node-name":"libvirt-4-storage",\ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-4-format,\ id=virtio-disk1 \ -blockdev '{"driver":"nbd","server":{"type":"inet","host":"::1","port":"6000"},\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-3-format,\ id=virtio-disk2 \ -blockdev '{"driver":"nbd","server":{"type":"inet","host":"::1","port":"6000"},\ "export":"bar","node-name":"libvirt-2-storage","auto-read-only":true,\ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-2-format,\ id=virtio-disk3 \ -blockdev '{"driver":"nbd","server":{"type":"unix","path":"/var/run/nbdsock"},\ "export":"bar","node-name":"libvirt-1-storage","auto-read-only":true,\ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-1-format,\ id=virtio-disk4 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args index fb8fc988e8..29409df722 100644 --- a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args @@ -34,13 +34,13 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-6-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"raw",\ "file":"libvirt-6-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-6-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-6-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"asdf",\ "node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\ "file":"libvirt-5-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-5-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-5-format,\ id=virtio-disk1 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"foo",\ "server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\ @@ -48,14 +48,14 @@ id=virtio-disk1 \ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ id=virtio-disk2 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"foo",\ "conf":"/blah/test.conf","node-name":"libvirt-3-storage","auto-read-only":true,\ "discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ id=virtio-disk3 \ -object secret,id=libvirt-2-storage-auth-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -68,7 +68,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ id=virtio-disk4 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image",\ "server":[{"host":"::1","port":"6321"},{"host":"example.org","port":"6789"},\ @@ -77,7 +77,7 @@ id=virtio-disk4 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ id=virtio-disk5 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args index 302ec9b9fd..a5e197f45b 100644 --- a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args @@ -38,7 +38,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args index 7a504d49be..0ad49ab0fd 100644 --- a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args @@ -37,7 +37,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-2-format,\ id=virtio-disk0,bootindex=1 \ -object secret,id=libvirt-1-storage-auth-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -50,7 +50,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-1-format,\ id=virtio-disk1 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args index a2aeb91958..5195107b7b 100644 --- a/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args @@ -38,7 +38,7 @@ dir=/etc/pki/libvirt-vxhs/dummy,,path,endpoint=client,verify-peer=yes \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ id=virtio-disk0,bootindex=1,write-cache=on,\ serial=eb90327c-8302-4725-9e1b-4e85ed4dc251 \ -object tls-creds-x509,id=objlibvirt-3-storage_tls0,\ @@ -51,7 +51,7 @@ dir=/etc/pki/libvirt-vxhs/dummy,,path,endpoint=client,verify-peer=yes \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ id=virtio-disk1,write-cache=on,serial=eb90327c-8302-4725-9e1b-4e85ed4dc252 \ -blockdev '{"driver":"vxhs","vdisk-id":"eb90327c-8302-4725-9e1b-4e85ed4dc253",\ "server":{"host":"192.168.0.3","port":"9999"},"node-name":"libvirt-2-storage",\ @@ -60,7 +60,7 @@ id=virtio-disk1,write-cache=on,serial=eb90327c-8302-4725-9e1b-4e85ed4dc252 \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ id=virtio-disk2,write-cache=on,serial=eb90327c-8302-4725-9e1b-4e85ed4dc252 \ -object tls-creds-x509,id=objlibvirt-1-storage_tls0,\ dir=/etc/pki/libvirt-nbd/dummy,,path,endpoint=client,verify-peer=yes \ @@ -71,7 +71,7 @@ dir=/etc/pki/libvirt-nbd/dummy,,path,endpoint=client,verify-peer=yes \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ id=virtio-disk3,write-cache=on \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args b/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args index 5334882c0b..a0b5c5950c 100644 --- a/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args @@ -33,19 +33,19 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-4-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"nvme","device":"0000:01:00.0","namespace":2,\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,\ id=virtio-disk1 \ -blockdev '{"driver":"nvme","device":"0000:02:00.0","namespace":1,\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-2-format,\ id=virtio-disk2 \ -object secret,id=libvirt-1-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -57,7 +57,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ "cache":{"direct":true,"no-flush":false},"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-1-format-encryption-secret0"},\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-1-format,\ id=virtio-disk3,write-cache=on \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args b/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args index 224414e15c..4bae8ae5c9 100644 --- a/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args @@ -57,8 +57,8 @@ write-cache=on \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,share-rw=on,\ -drive=libvirt-1-format,id=virtio-disk0,write-cache=on \ +-device virtio-blk-pci,bus=pci.0,addr=0x3,share-rw=on,drive=libvirt-1-format,\ +id=virtio-disk0,write-cache=on \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args b/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args index 869b4c0af0..cd2f5847c4 100644 --- a/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args @@ -32,7 +32,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\ "offset":1234,"size":321,"file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-4-format,\ id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/raw.img",\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ @@ -45,7 +45,7 @@ id=virtio-disk0,bootindex=1 \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-2-storage","backing":"libvirt-3-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-2-format,\ id=virtio-disk1 \ -object secret,id=libvirt-1-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -58,7 +58,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"luks",\ "key-secret":"libvirt-1-format-encryption-secret0",\ "file":"libvirt-1-slice-sto"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ id=virtio-disk2 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/iothreads-virtio-scsi-pci.x86_64-latest.args b/tests/qemuxml2argvdata/iothreads-virtio-scsi-pci.x86_64-latest.args index c366520e09..d00867a09b 100644 --- a/tests/qemuxml2argvdata/iothreads-virtio-scsi-pci.x86_64-latest.args +++ b/tests/qemuxml2argvdata/iothreads-virtio-scsi-pci.x86_64-latest.args @@ -41,7 +41,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,iothread=iothread1,scsi=off,bus=pci.0,addr=0x4,\ +-device virtio-blk-pci,iothread=iothread1,bus=pci.0,addr=0x4,\ drive=libvirt-2-format,id=virtio-disk1 \ -blockdev '{"driver":"file",\ "filename":"/var/lib/libvirt/images/iothrtest2.img",\ diff --git a/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args b/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args index 44e4c5698d..3ce9f81006 100644 --- a/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args @@ -36,7 +36,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-7-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-7-format-encryption-secret0"},\ "file":"libvirt-7-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-7-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-7-format,\ id=virtio-disk0,bootindex=1 \ -object secret,id=libvirt-6-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -46,7 +46,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-6-format-encryption-secret0"},\ "file":"libvirt-6-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-6-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-6-format,\ id=virtio-disk1 \ -object secret,id=libvirt-5-storage-auth-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -61,7 +61,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-5-format-encryption-secret0"},\ "file":"libvirt-5-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-5-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-5-format,\ id=virtio-disk2 \ -object secret,id=libvirt-4-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -72,7 +72,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-4-format-encryption-secret0"},\ "file":"libvirt-4-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-4-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-4-format,\ id=virtio-disk3 \ -object secret,id=libvirt-3-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -84,7 +84,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-3-format-encryption-secret0"},\ "file":"libvirt-3-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-3-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-3-format,\ id=virtio-disk4 \ -object secret,id=libvirt-2-format-encryption-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ @@ -102,7 +102,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "encrypt":{"format":"luks","key-secret":"libvirt-1-format-encryption-secret0"},\ "file":"libvirt-1-storage","backing":"libvirt-2-format"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x8,drive=libvirt-1-format,\ id=virtio-disk5 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args index 03c2aeb7fb..5c6d73b892 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args index 3827978c66..2c8649502d 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args index 5e9774e512..15ffbc9cd1 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args index ec00df93ca..79cfa679c5 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-3.1.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-3.1.ppc64-latest.args index acba692b0d..2c451b4443 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-3.1.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-3.1.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-4.2.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-4.2.ppc64-latest.args index 5727576c81..22e5f6ef73 100644 --- a/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-4.2.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-4.2.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev pty,id=charserial0 \ -device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \ diff --git a/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args index 2e0ba1e7f4..9aba7ec3cb 100644 --- a/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:a2:44:92,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/ppc64-pseries-headless.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-pseries-headless.ppc64-latest.args index bcdbc8591b..bfca44faa9 100644 --- a/tests/qemuxml2argvdata/ppc64-pseries-headless.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-pseries-headless.ppc64-latest.args @@ -32,7 +32,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/riscv64-virt-graphics.riscv64-latest.args b/tests/qemuxml2argvdata/riscv64-virt-graphics.riscv64-latest.args index 6e0de34d6e..612e1ce049 100644 --- a/tests/qemuxml2argvdata/riscv64-virt-graphics.riscv64-latest.args +++ b/tests/qemuxml2argvdata/riscv64-virt-graphics.riscv64-latest.args @@ -39,7 +39,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,\ diff --git a/tests/qemuxml2argvdata/riscv64-virt-headless.riscv64-latest.args b/tests/qemuxml2argvdata/riscv64-virt-headless.riscv64-latest.args index 92a3021640..8485e3d0f8 100644 --- a/tests/qemuxml2argvdata/riscv64-virt-headless.riscv64-latest.args +++ b/tests/qemuxml2argvdata/riscv64-virt-headless.riscv64-latest.args @@ -39,7 +39,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,\ diff --git a/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args b/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args index 39190b8d3e..258fa7813f 100644 --- a/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args +++ b/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args @@ -38,7 +38,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -chardev socket,id=chr-vu-fs0,path=/tmp/lib/domain--1-guest/fs0.vhost-fs.sock \ -device vhost-user-fs-pci,chardev=chr-vu-fs0,tag=mount_tag,bus=pci.1,addr=0x0 \ diff --git a/tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args index 0d751ea7ae..1fe7901479 100644 --- a/tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args @@ -47,7 +47,7 @@ addr=0x0 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci-non-transitional,scsi=off,bus=pci.5,addr=0x0,\ +-device virtio-blk-pci-non-transitional,bus=pci.5,addr=0x0,\ drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \ -fsdev local,security_model=passthrough,id=fsdev-fs0,path=/export/fs1 \ -device virtio-9p-pci-non-transitional,id=fs0,fsdev=fsdev-fs0,mount_tag=fs1,\ diff --git a/tests/qemuxml2argvdata/virtio-options-disk-ats.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-options-disk-ats.x86_64-latest.args index 4d940ce404..cf82457eb6 100644 --- a/tests/qemuxml2argvdata/virtio-options-disk-ats.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-disk-ats.x86_64-latest.args @@ -32,14 +32,14 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,ats=on,bus=pci.0,addr=0x2,\ -drive=libvirt-2-format,id=virtio-disk0,bootindex=1 \ +-device virtio-blk-pci,ats=on,bus=pci.0,addr=0x2,drive=libvirt-2-format,\ +id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/img2",\ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,ats=off,bus=pci.0,addr=0x3,\ -drive=libvirt-1-format,id=virtio-disk1 \ +-device virtio-blk-pci,ats=off,bus=pci.0,addr=0x3,drive=libvirt-1-format,\ +id=virtio-disk1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/virtio-options-disk-iommu.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-options-disk-iommu.x86_64-latest.args index e580eeae72..70a5ee13a1 100644 --- a/tests/qemuxml2argvdata/virtio-options-disk-iommu.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-disk-iommu.x86_64-latest.args @@ -32,13 +32,13 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,iommu_platform=on,bus=pci.0,addr=0x2,\ +-device virtio-blk-pci,iommu_platform=on,bus=pci.0,addr=0x2,\ drive=libvirt-2-format,id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/img2",\ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,iommu_platform=off,bus=pci.0,addr=0x3,\ +-device virtio-blk-pci,iommu_platform=off,bus=pci.0,addr=0x3,\ drive=libvirt-1-format,id=virtio-disk1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/virtio-options-disk-packed.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-options-disk-packed.x86_64-latest.args index 9d8b7e1692..09ac4d559b 100644 --- a/tests/qemuxml2argvdata/virtio-options-disk-packed.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-disk-packed.x86_64-latest.args @@ -32,14 +32,14 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\ "file":"libvirt-2-storage"}' \ --device virtio-blk-pci,scsi=off,packed=on,bus=pci.0,addr=0x2,\ -drive=libvirt-2-format,id=virtio-disk0,bootindex=1 \ +-device virtio-blk-pci,packed=on,bus=pci.0,addr=0x2,drive=libvirt-2-format,\ +id=virtio-disk0,bootindex=1 \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/img2",\ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,packed=off,bus=pci.0,addr=0x3,\ -drive=libvirt-1-format,id=virtio-disk1 \ +-device virtio-blk-pci,packed=off,bus=pci.0,addr=0x3,drive=libvirt-1-format,\ +id=virtio-disk1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/virtio-options.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-options.x86_64-latest.args index e523f73fee..66bbd7df64 100644 --- a/tests/qemuxml2argvdata/virtio-options.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options.x86_64-latest.args @@ -36,8 +36,8 @@ bus=pci.0,addr=0x9 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,iommu_platform=on,ats=on,packed=on,bus=pci.0,\ -addr=0xa,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \ +-device virtio-blk-pci,iommu_platform=on,ats=on,packed=on,bus=pci.0,addr=0xa,\ +drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \ -fsdev local,security_model=passthrough,id=fsdev-fs0,path=/export/fs1 \ -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=fs1,iommu_platform=on,\ ats=on,packed=on,bus=pci.0,addr=0x3 \ diff --git a/tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args b/tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args index 0bd0da05d0..01cb9f8308 100644 --- a/tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args @@ -37,8 +37,8 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci-transitional,scsi=off,bus=pci.2,addr=0x5,\ -drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \ +-device virtio-blk-pci-transitional,bus=pci.2,addr=0x5,drive=libvirt-1-format,\ +id=virtio-disk0,bootindex=1 \ -fsdev local,security_model=passthrough,id=fsdev-fs0,path=/export/fs1 \ -device virtio-9p-pci-transitional,id=fs0,fsdev=fsdev-fs0,mount_tag=fs1,\ bus=pci.2,addr=0x1 \ diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-pc-4.2.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-pc-4.2.x86_64-latest.args index 74715f9517..3d9f246000 100644 --- a/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-pc-4.2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-pc-4.2.x86_64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-q35-4.2.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-q35-4.2.x86_64-latest.args index 145864b896..1066522ed5 100644 --- a/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-q35-4.2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-kvm-q35-4.2.x86_64-latest.args @@ -36,7 +36,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.2,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.2,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.3,addr=0x0 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-pc-4.2.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-pc-4.2.x86_64-latest.args index 21d5b358bc..e547001eb5 100644 --- a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-pc-4.2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-pc-4.2.x86_64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-q35-4.2.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-q35-4.2.x86_64-latest.args index 9afac1778b..6549f6251e 100644 --- a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-q35-4.2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-q35-4.2.x86_64-latest.args @@ -36,7 +36,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.2,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.2,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.3,addr=0x0 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ diff --git a/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args index b6c06961d7..4049ee6b27 100644 --- a/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args @@ -35,7 +35,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:4c:e3:86,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args index 0fa7134198..47887c0c18 100644 --- a/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args @@ -36,7 +36,7 @@ file=/tmp/lib/domain--1-guest/master-key.aes \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args index 5a6fbe65df..6425325a5b 100644 --- a/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args @@ -43,7 +43,7 @@ multifunction=on,addr=0x2 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:d2:70:0b,bus=pci.1,\ diff --git a/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args index 8a8728e59c..63254b500c 100644 --- a/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args +++ b/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args @@ -44,7 +44,7 @@ addr=0x1 \ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\ "file":"libvirt-1-storage"}' \ --device virtio-blk-pci,scsi=off,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ +-device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-1-format,\ id=virtio-disk0,bootindex=1 \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,\ -- 2.26.2

On 5/7/20 7:57 AM, Peter Krempa wrote:
First part focuses on allowing the device property code to detect the default values for the properties and the second part then uses it to remove formatting of the deprecated 'scsi=off' for virti-blk-pci.
Peter Krempa (8): virQEMUCapsProbeQMPDevices: Split up into logical chunks virQEMUCapsProbeQMPDeviceProperties: Switch to local implementation virQEMUCapsProbeQMPObjectTypes: Fold in virQEMUCapsProbeQMPGenericProps qemuMonitorJSONGetDeviceProps: Refactor to modern standards qemuMonitorGetDeviceProps: Return data in a hash table virQEMUCapsProbeQMPDeviceProperties: Add per-property callbacks qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED qemu: command: Stop formatting of 'scsi=off' for virtio-blk-pci
src/qemu/qemu_capabilities.c | 347 ++++++++++-------- src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 4 +- src/qemu/qemu_monitor.c | 11 +- src/qemu/qemu_monitor.h | 5 +- src/qemu/qemu_monitor_json.c | 58 ++- src/qemu/qemu_monitor_json.h | 7 +- .../caps_5.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + .../caps_5.0.0.riscv64.xml | 1 + .../caps_5.0.0.x86_64.xml | 1 + .../caps_5.1.0.x86_64.xml | 1 + ...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 2 +- ...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 2 +- .../aarch64-virt-graphics.aarch64-latest.args | 2 +- .../aarch64-virt-headless.aarch64-latest.args | 2 +- .../disk-aio-io_uring.x86_64-latest.args | 2 +- ...-backing-chains-noindex.x86_64-latest.args | 12 +- .../disk-cache.x86_64-latest.args | 2 +- .../disk-cdrom-tray.x86_64-latest.args | 2 +- .../disk-copy_on_read.x86_64-latest.args | 2 +- .../disk-detect-zeroes.x86_64-latest.args | 2 +- .../disk-network-gluster.x86_64-latest.args | 6 +- .../disk-network-http.x86_64-latest.args | 8 +- .../disk-network-iscsi.x86_64-latest.args | 8 +- .../disk-network-nbd.x86_64-latest.args | 10 +- .../disk-network-rbd.x86_64-latest.args | 12 +- .../disk-network-sheepdog.x86_64-latest.args | 2 +- ...isk-network-source-auth.x86_64-latest.args | 4 +- .../disk-network-tlsx509.x86_64-latest.args | 8 +- .../disk-nvme.x86_64-latest.args | 8 +- .../disk-shared.x86_64-latest.args | 4 +- .../disk-slices.x86_64-latest.args | 6 +- ...threads-virtio-scsi-pci.x86_64-latest.args | 2 +- ...luks-disks-source-qcow2.x86_64-latest.args | 12 +- ...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 +- .../riscv64-virt-graphics.riscv64-latest.args | 2 +- .../riscv64-virt-headless.riscv64-latest.args | 2 +- ...vhost-user-fs-hugepages.x86_64-latest.args | 2 +- ...virtio-non-transitional.x86_64-latest.args | 2 +- ...virtio-options-disk-ats.x86_64-latest.args | 8 +- ...rtio-options-disk-iommu.x86_64-latest.args | 4 +- ...tio-options-disk-packed.x86_64-latest.args | 8 +- .../virtio-options.x86_64-latest.args | 4 +- .../virtio-transitional.x86_64-latest.args | 4 +- ...-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 +- 60 files changed, 356 insertions(+), 270 deletions(-)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
participants (2)
-
Michal Privoznik
-
Peter Krempa