On Wed, 15 Jul 2015 13:29:56 +0800 Jason Wang <jasow...@redhat.com> wrote:
> Hi all: > > This series tries to set feature correctly for virtio-blk when virtio > 1.0 is supported. Two isssues were addressed according to the spec: > > - scsi passthrough was not support in 1.0. This is done by, 1) disable > scsi by defautl for 2.4 machine type and fail the initialization > when both scsi and 1.0 were set. > - any layout must be set for transitional device. This is done by set > any layout when 1.0 is supported. > > Please review > > Changes from V1: > - Split virtio-net changes out of the series > - Enable VIRTIO_BLK_F_SCSI only when scsi is set > - Disable scsi by default and compat it for legacy machine types > - Let get_features() can fail and fail the initialization of > virito-blk when both 1.0 and scsi were supported. Hm, this seems confusing to me mainly due to the different way transitional devices are handled by pci and ccw. For virtio-pci: (please correct me if I misunderstood) - devices (except input) are transitional by default - user can disable legacy or modern support - drivers can use method they prefer, depending on VERSION_1 For virtio-ccw: - transitional means "in limbo" regarding legacy or modern - devices become legacy if features are read without negotiation of a revision, or if revision 0 is negotiated - they become modern if revision 1 is negotiated That implies that for ccw, a transitional device does not offer any features: It either transitions to the legacy or modern state if a revision was negotiated, or it becomes a legacy device by reading features (which are the legacy features, then). While pci has "real" transitional devices needing to offer a certain feature set. I'm not sure what the solution is here: basically, ccw needs a dynamic feature set, while pci does not.