On Thu, Apr 29, 2021 at 04:52:21PM +0100, Stefan Hajnoczi wrote: > The scsi=on|off property was deprecated in QEMU 5.0 and can be removed > completely at this point. > > Drop the scsi=on|off option. It was only available on Legacy virtio-blk > devices. Linux v5.6 already dropped support for it. > > Remove the hw_compat_2_4[] property assignment since scsi=on|off no > longer exists. Old guests with Legacy virtio-blk devices no longer see > the SCSI host features bit. > This means pc-2.4 will now break guest ABI if using virtio-blk devices, correct? This looks like a sign we should have deprecated pc-2.4 a long time ago. > Live migrating old guests from an old QEMU with the SCSI feature bit > enabled will fail with "Features 0x... unsupported. Allowed features: > 0x...". We've followed the QEMU deprecation policy so users have been > warned... > Were they really warned, though? People running "-machine pc-i440fx-2.4" might be completely unaware that it was silently enabling a deprecated feature. Can we have this documented in a more explicit way? Maybe just a comment at hw_compat_2_4 would be enough, to warn people doing backports and rebases downstream. Can we make QEMU refuse to start if using pc-2.4 + virtio-blk together, just to be sure? An alternative would be keeping the property (and the hw_compat_2_4 entry) just to keep pc-2.4 working (until pc-2.4 is deprecated and removed), but refusing to realize the device if the feature is enabled. > I have tested that libvirt still works when the property is absent. It > no longer adds scsi=on|off to the command-line. > > Cc: Markus Armbruster <armbru@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Peter Krempa <pkrempa@xxxxxxxxxx> > Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> > Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> > --- [...] > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 40def78183..286f18ec6d 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -194,8 +194,6 @@ GlobalProperty hw_compat_2_5[] = { > const size_t hw_compat_2_5_len = G_N_ELEMENTS(hw_compat_2_5); > > GlobalProperty hw_compat_2_4[] = { > - /* Optional because the 'scsi' property is Linux-only */ > - { "virtio-blk-device", "scsi", "true", .optional = true }, > { "e1000", "extra_mac_registers", "off" }, > { "virtio-pci", "x-disable-pcie", "on" }, > { "virtio-pci", "migrate-extra", "off" }, -- Eduardo