On Fri, Jan 25, 2019 at 18:46:52 +0100, Kevin Wolf wrote:
The new device_id property specifies which value to use for the
vendor
specific designator in the Device Identification VPD page.
In particular, this is necessary for libvirt to maintain guest ABI
compatibility when no serial number is given and a VM is switched from
-drive (where the BlockBackend name is used) to -blockdev (where the
vendor specific designator is left out by default).
Signed-off-by: Kevin Wolf <kwolf(a)redhat.com>
---
hw/scsi/scsi-disk.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
[...]
@@ -2904,7 +2910,9 @@ static const TypeInfo scsi_disk_base_info = {
DEFINE_PROP_STRING("ver", SCSIDiskState, version), \
DEFINE_PROP_STRING("serial", SCSIDiskState, serial), \
DEFINE_PROP_STRING("vendor", SCSIDiskState, vendor), \
- DEFINE_PROP_STRING("product", SCSIDiskState, product)
+ DEFINE_PROP_STRING("product", SCSIDiskState, product), \
+ DEFINE_PROP_STRING("device_id", SCSIDiskState, device_id)
This adds the property only to 'scsi-disk', whereas libvirt will use
'scsi-cd' or 'scsi-hd' depending on the media type if the
'scsi-cd'
device is detected. The following logic decides:
https://libvirt.org/git/?p=libvirt.git;a=blob;f=src/qemu/qemu_command.c;h...
This brings multiple questions:
1) Is this necssary also for scsi-cd/scsi-hd and if yes, the property
does not seem to be present for those
2) Is actually using 'scsi-cd'/'scsi-hd' the better option than
'scsi-disk'?
3) Since upstream libvirt supports qemu-1.5 and newer and 'scsi-cd' is
already supported there, can we assume that all newer versions support
it? (Basically the question is whether it can be compiled out by
upstream means).