[PATCH] virtio-blk: drop deprecated scsi=on|off property

Stefan Hajnoczi stefanha at redhat.com
Tue May 4 14:28:49 UTC 2021

On Thu, Apr 29, 2021 at 02:03:52PM -0400, Eduardo Habkost wrote:
> 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?


However, this feature was only enabled on Linux hosts, so cross-host OS
migration was always broken and no one noticed. Maybe that configuration
is too niche and QEMU never supported cross-host OS migration, but it
still means that the "pc-2.4" ABI was never solid to begin with :).

> > 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.

Yes, the least invasive approach is to leave the property in place but
refuse to realize the virtio-blk device when scsi=on. The cost is more
cruft, including a useless scsi=off command-line option that will
continue to show up in libvirt-generated QEMU command-lines.

The cautious approach makes sense to me and I'll send a new revision.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210504/fb5b1dac/attachment-0001.sig>

More information about the libvir-list mailing list