All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Jason Wang <jasowang@redhat.com>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/5] virtio-blk: disable scsi passthrough for 1.0 device
Date: Mon, 13 Jul 2015 18:35:53 +0300	[thread overview]
Message-ID: <20150713182901-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20150713152059.69b373ee.cornelia.huck@de.ibm.com>

On Mon, Jul 13, 2015 at 03:20:59PM +0200, Cornelia Huck wrote:
> On Mon, 13 Jul 2015 15:36:00 +0300
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Mon, Jul 13, 2015 at 02:30:24PM +0200, Cornelia Huck wrote:
> > > On Mon, 13 Jul 2015 15:22:52 +0300
> > > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > > 
> > > > On Mon, Jul 13, 2015 at 01:51:56PM +0200, Cornelia Huck wrote:
> > > > > On Mon, 13 Jul 2015 11:56:51 +0200
> > > > > Kevin Wolf <kwolf@redhat.com> wrote:
> > > > > 
> > > > > > Am 13.07.2015 um 11:00 hat Jason Wang geschrieben:
> > > > > > > 
> > > > > > > 
> > > > > > > On 07/13/2015 03:46 PM, Michael S. Tsirkin wrote:
> > > > > > > > On Mon, Jul 13, 2015 at 01:46:48PM +0800, Jason Wang wrote:
> > > > > > > >> VIRTIO_BLK_F_SCSI was no longer supported in 1.0. So disable it.
> > > > > > > >>
> > > > > > > >> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> > > > > > > >> Cc: Kevin Wolf <kwolf@redhat.com>
> > > > > > > >> Cc: qemu-block@nongnu.org
> > > > > > > >> Signed-off-by: Jason Wang <jasowang@redhat.com>
> > > > > > > > Interesting, I noticed we have a field scsi - see
> > > > > > > > 	commit 1ba1f2e319afdcb485963cd3f426fdffd1b725f2
> > > > > > > > 	Author: Paolo Bonzini <pbonzini@redhat.com>
> > > > > > > > 	Date:   Fri Dec 23 15:39:03 2011 +0100
> > > > > > > >
> > > > > > > > 	    virtio-blk: refuse SG_IO requests with scsi=off
> > > > > > > >
> > > > > > > > but it doesn't seem to be propagated to guest features in
> > > > > > > > any way.
> > > > > > > >
> > > > > > > > Maybe we should fix that, making that flag AutoOnOff?
> > > > > > > 
> > > > > > > Looks ok but auto may need some compat work since default is true.
> > > > > > > 
> > > > > > > > Then, if user explicitly requested scsi=on with a modern
> > > > > > > > interface then we can error out cleanly.
> > > > > > > >
> > > > > > > > Given scsi flag is currently ignored, I think
> > > > > > > > this can be a patch on top.
> > > > > > > 
> > > > > > > Looks like virtio_blk_handle_scsi_req() check this:
> > > > > > > 
> > > > > > >     if (!blk->conf.scsi) {
> > > > > > >         status = VIRTIO_BLK_S_UNSUPP;
> > > > > > >         goto fail;
> > > > > > >     }
> > > > > > 
> > > > > > So we should be checking the same condition for the feature flag and
> > > > > > error out in the init function if we have a VERSION_1 device and
> > > > > > blk->conf.scsi is set.
> > > > > 
> > > > > Hm, I wonder how this plays with transports that want to make the
> > > > > virtio-1 vs. legacy decision post-init? For virtio-ccw, I basically
> > > > > only want to offer VERSION_1 if the driver negotiated revision >= 1.
> > > > > I'd need to check for !scsi as well before I can add this feature bit
> > > > > then? Have the init function set a blocker for VERSION_1 so that the
> > > > > driver may only negotiate revision 0?
> > > > 
> > > > 
> > > > We already handle this, do we not?
> > > (...)
> > > > So guest that doesn't negotiate revision >= 1 never gets to see
> > > > VIRTIO_F_VERSION_1.
> > > 
> > > Not my question :) I was wondering about scsi vs. virtio-1 devices. And
> > > as I basically only want to make the decision on whether to offer
> > > VERSION_1 when the guest negotiated a revision, I cannot fence scsi
> > > during init, no?
> > 
> > No, I don't think there's a lot of value in offering scsi only to
> > old guests that don't negotiate revision >= 1.
> > 
> > If user asked for virtio 1 support then that by proxy implies scsi
> > passthrough does not work, and it won't work for legacy
> > guests too.
> 
> This would imply that any transitional device cannot offer scsi,
> doesn't it?

Yes, and that's because as written, transitional devices must set
ANY_LAYOUT, but that's incompatible with scsi.

> We have two layers interacting here: virtio-blk which may or may not
> offer scsi support, and the transport layer which may or may not offer
> VERSION_1 support. Failing scsi commands if VERSION_1 has been
> negotiated makes sense to me; but I don't want to disable scsi config a
> priori because the driver might negotiate VERSION_1. This would imply
> that virtio-blk over virtio-ccw would never offer scsi once we enable
> virtio-1 support, and it kind of defeats the purpose of a transitional
> device for me.
> 
> (The other way round - fail negotiating revison 1 if the device was
> configured with scsi support - makes more sense to me.)

  parent reply	other threads:[~2015-07-13 15:36 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-13  5:46 [Qemu-devel] [PATCH 1/5] virtio-pci: ignore unaligned read/write in virtio_address_space_read()/write() Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 2/5] virtio-blk: disable scsi passthrough for 1.0 device Jason Wang
2015-07-13  7:46   ` Michael S. Tsirkin
2015-07-13  9:00     ` Jason Wang
2015-07-13  9:56       ` Kevin Wolf
2015-07-13 11:51         ` Cornelia Huck
2015-07-13 12:22           ` Michael S. Tsirkin
2015-07-13 12:30             ` Cornelia Huck
2015-07-13 12:36               ` Michael S. Tsirkin
2015-07-13 13:20                 ` Cornelia Huck
2015-07-13 14:34                   ` Paolo Bonzini
2015-07-13 14:41                     ` Cornelia Huck
2015-07-13 15:13                       ` Paolo Bonzini
2015-07-13 15:35                   ` Michael S. Tsirkin [this message]
2015-07-14 17:43                     ` Cornelia Huck
2015-07-15 10:59                       ` Michael S. Tsirkin
2015-07-15 11:46                         ` Cornelia Huck
2015-07-15 12:01                           ` Michael S. Tsirkin
2015-07-15 12:43                             ` Cornelia Huck
2015-07-15 13:16                               ` Michael S. Tsirkin
2015-07-15 13:40                                 ` Cornelia Huck
2015-07-15 14:11                                   ` Michael S. Tsirkin
2015-07-15 14:30                                     ` Cornelia Huck
2015-07-15 14:39                                       ` Michael S. Tsirkin
2015-07-15 15:38                                         ` Cornelia Huck
2015-07-15 18:51                                           ` Michael S. Tsirkin
2015-07-16 12:37                                             ` Cornelia Huck
2015-07-16 12:47                                               ` Michael S. Tsirkin
2015-07-16 17:22                                                 ` Paolo Bonzini
2015-07-17  7:18                                                   ` Cornelia Huck
2015-07-13 11:27       ` Michael S. Tsirkin
2015-07-13  5:46 ` [Qemu-devel] [PATCH 3/5] virtio-blk: set VIRTIO_F_ANY_LAYOUT when 1.0 is supported Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 4/5] Revert "virtio-net: enable virtio 1.0" Jason Wang
2015-07-13  6:16   ` Cornelia Huck
2015-07-13  7:22     ` Michael S. Tsirkin
2015-07-13  8:46       ` Cornelia Huck
2015-07-13  8:29     ` Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 5/5] virtio-net: unbreak any layout Jason Wang
2015-07-13  6:50   ` Paolo Bonzini
2015-07-13  8:30     ` Jason Wang
2015-07-13  7:24   ` Michael S. Tsirkin
2015-07-13  8:22     ` Michael S. Tsirkin
2015-07-13 10:54       ` Greg Kurz
2015-07-13 11:13         ` Michael S. Tsirkin
2015-07-13  8:30     ` Jason Wang
2015-07-13  7:36 ` [Qemu-devel] [PATCH 1/5] virtio-pci: ignore unaligned read/write in virtio_address_space_read()/write() Michael S. Tsirkin
2015-07-13  7:53   ` Gerd Hoffmann
2015-07-13  8:00     ` Michael S. Tsirkin
2015-07-13  8:39       ` Gerd Hoffmann
2015-07-13  8:37   ` Jason Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150713182901-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=jasowang@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.