virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Anthony Liguori <aliguori@us.ibm.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	kvm-devel <kvm@vger.kernel.org>,
	lf-virt <virtualization@lists.linux-foundation.org>,
	Anthony Liguori <aliguori@linux.vnet.ibm.com>,
	target-devel <target-devel@vger.kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Zhi Yong Wu <wuzhy@cn.ibm.com>, Christoph Hellwig <hch@lst.de>,
	Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Subject: Re: [PATCH 0/6] tcm_vhost/virtio-scsi WIP code for-3.6
Date: Thu, 5 Jul 2012 17:40:01 +0300	[thread overview]
Message-ID: <20120705144001.GB31257@redhat.com> (raw)
In-Reply-To: <4FF59F6B.2000101@us.ibm.com>

On Thu, Jul 05, 2012 at 09:06:35AM -0500, Anthony Liguori wrote:
> On 07/05/2012 08:53 AM, Michael S. Tsirkin wrote:
> >On Thu, Jul 05, 2012 at 12:22:33PM +0200, Paolo Bonzini wrote:
> >>Il 05/07/2012 03:52, Nicholas A. Bellinger ha scritto:
> >>>
> >>>fio randrw workload | virtio-scsi-raw | virtio-scsi+tcm_vhost | bare-metal raw block
> >>>------------------------------------------------------------------------------------
> >>>25 Write / 75 Read  |      ~15K       |         ~45K          |         ~70K
> >>>75 Write / 25 Read  |      ~20K       |         ~55K          |         ~60K
> >>
> >>This is impressive, but I think it's still not enough to justify the
> >>inclusion of tcm_vhost.
> 
> We have demonstrated better results at much higher IOP rates with
> virtio-blk in userspace so while these results are nice, there's no
> reason to believe we can't do this in userspace.
> 
> >>In my opinion, vhost-blk/vhost-scsi are mostly
> >>worthwhile as drivers for improvements to QEMU performance.  We want to
> >>add more fast paths to QEMU that let us move SCSI and virtio processing
> >>to separate threads, we have proof of concepts that this can be done,
> >>and we can use vhost-blk/vhost-scsi to find bottlenecks more effectively.
> >
> >A general rant below:
> >
> >OTOH if it works, and adds value, we really should consider including code.
> 
> Users want something that has lots of features and performs really,
> really well.  They want everything.
> 
> Having one device type that is "fast" but has no features and
> another that is "not fast" but has a lot of features forces the user
> to make a bad choice.  No one wins in the end.
>
> virtio-scsi is brand new.  It's not as if we've had any significant
> time to make virtio-scsi-qemu faster.  In fact, tcm_vhost existed
> before virtio-scsi-qemu did if I understand correctly.

Can't same can be said about virtio scsi - it seems to be
slower so we force a bad choice between blk and scsi at the user?

> 
> >To me, it does not make sense to reject code just because in theory
> >someone could write even better code.
> 
> There is no theory.  We have proof points with virtio-blk.
> 
> >Code walks. Time to marker matters too.
> 
> But guest/user facing decisions cannot be easily unmade and making
> the wrong technical choices because of premature concerns of "time
> to market" just result in a long term mess.
> 
> There is no technical reason why tcm_vhost is going to be faster
> than doing it in userspace.

But doing what in userspace exactly?

> We can demonstrate this with
> virtio-blk.  This isn't a theoretical argument.
>
> >Yes I realize more options increases support. But downstreams can make
> >their own decisions on whether to support some configurations:
> >add a configure option to disable it and that's enough.
> >
> >>In fact, virtio-scsi-qemu and virtio-scsi-vhost are effectively two
> >>completely different devices that happen to speak the same SCSI
> >>transport.  Not only virtio-scsi-vhost must be configured outside QEMU
> >
> >configuration outside QEMU is OK I think - real users use
> >management anyway. But maybe we can have helper scripts
> >like we have for tun?
> 
> Asking a user to write a helper script is pretty awful...

A developer can write a helper. A user should just use management.

> >
> >>and doesn't support -device;
> >
> >This needs to be fixed I think.
> >
> >>it (obviously) presents different
> >>inquiry/vpd/mode data than virtio-scsi-qemu,
> >
> >Why is this obvious and can't be fixed?
> 
> It's an entirely different emulation path.  It's not a simple packet
> protocol like virtio-net.  It's a complex command protocol where the
> backend maintains a very large amount of state.
>
> >Userspace virtio-scsi
> >is pretty flexible - can't it supply matching inquiry/vpd/mode data
> >so that switching is transparent to the guest?
> 
> Basically, the issue is that the kernel has more complete SCSI
> emulation that QEMU does right now.
> 
> There are lots of ways to try to solve this--like try to reuse the
> kernel code in userspace or just improving the userspace code.  If
> we were able to make the two paths identical, then I strongly
> suspect there'd be no point in having tcm_vhost anyway.
>
> Regards,
> 
> Anthony Liguori

However, a question we should ask ourselves is whether this will happen
in practice, and when.

I have no idea, I am just asking questions.

-- 
MST

  parent reply	other threads:[~2012-07-05 14:40 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1341375846-27882-1-git-send-email-nab@linux-iscsi.org>
2012-07-04  4:24 ` [PATCH 1/6] vhost: Separate vhost-net features from vhost features Nicholas A. Bellinger
2012-07-04  4:41   ` Asias He
2012-07-04  4:24 ` [PATCH 2/6] vhost: make vhost work queue visible Nicholas A. Bellinger
2012-07-04  4:24 ` [PATCH 3/6] vhost: Add vhost_scsi specific defines Nicholas A. Bellinger
2012-07-04  4:24 ` [PATCH 4/6] tcm_vhost: Initial merge for vhost level target fabric driver Nicholas A. Bellinger
2012-07-04  4:24 ` [PATCH 5/6] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning Nicholas A. Bellinger
2012-07-04  4:24 ` [PATCH 6/6] virtio-scsi: Set shost->max_id=1 for tcm_vhost WWPNs Nicholas A. Bellinger
2012-07-04 14:02 ` [PATCH 0/6] tcm_vhost/virtio-scsi WIP code for-3.6 Michael S. Tsirkin
2012-07-04 14:52   ` Paolo Bonzini
2012-07-04 15:05     ` Michael S. Tsirkin
2012-07-04 22:12       ` Anthony Liguori
2012-07-05  1:52         ` Nicholas A. Bellinger
2012-07-05 10:22           ` Paolo Bonzini
2012-07-05 13:53             ` Michael S. Tsirkin
2012-07-05 14:06               ` Anthony Liguori
2012-07-05 14:32               ` Paolo Bonzini
2012-07-05 21:00                 ` Michael S. Tsirkin
     [not found]               ` <4FF59F6B.2000101@us.ibm.com>
2012-07-05 14:40                 ` Michael S. Tsirkin [this message]
2012-07-05 14:47                   ` Paolo Bonzini
2012-07-05 17:26                     ` Michael S. Tsirkin
2012-07-06  3:01                 ` Nicholas A. Bellinger
     [not found]                 ` <1341543672.23954.285.camel@haakon2.linux-iscsi.org>
     [not found]                   ` <1341553397.3023.16.camel@dabdike.hilton.com>
2012-07-06  9:13                     ` SCSI Performance regression [was Re: [PATCH 0/6] tcm_vhost/virtio-scsi WIP code for-3.6] Nicholas A. Bellinger
     [not found]                       ` <1341582550.2941.10.camel@dabdike>
2012-07-06 18:21                         ` Nicholas A. Bellinger
2012-07-06 20:30                     ` [Ksummit-2012-discuss] " Christoph Lameter
     [not found]                     ` <alpine.DEB.2.00.1207061528520.2656@router.home>
2012-07-06 22:06                       ` Nicholas A. Bellinger
2012-07-06  3:38               ` [PATCH 0/6] tcm_vhost/virtio-scsi WIP code for-3.6 Nicholas A. Bellinger
2012-07-06  5:39                 ` Paolo Bonzini
2012-07-05 17:53           ` Bart Van Assche
     [not found]           ` <4FF5D494.2090707@acm.org>
2012-07-05 19:57             ` Bart Van Assche
2012-07-10  0:29           ` Nicholas A. Bellinger
2012-07-05  2:01       ` Nicholas A. Bellinger
     [not found]       ` <1341453665.23954.224.camel@haakon2.linux-iscsi.org>
2012-07-05  9:31         ` Michael S. Tsirkin
2012-07-06  3:13           ` Nicholas A. Bellinger
     [not found] ` <1341375846-27882-6-git-send-email-nab@linux-iscsi.org>
2012-07-04 14:50   ` [PATCH 5/6] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning Paolo Bonzini
     [not found] ` <1341375846-27882-7-git-send-email-nab@linux-iscsi.org>
2012-07-04 14:50   ` [PATCH 6/6] virtio-scsi: Set shost->max_id=1 for tcm_vhost WWPNs Paolo Bonzini
2012-07-05  2:05     ` Nicholas A. Bellinger
2012-07-05  6:42       ` Paolo Bonzini
     [not found] ` <1341375846-27882-5-git-send-email-nab@linux-iscsi.org>
2012-07-05 17:47   ` [PATCH 4/6] tcm_vhost: Initial merge for vhost level target fabric driver Bart Van Assche
     [not found]   ` <4FF5D31F.90404@acm.org>
2012-07-05 17:59     ` Bart Van Assche
2012-07-04  4:24 [PATCH 0/6] tcm_vhost/virtio-scsi WIP code for-3.6 Nicholas A. Bellinger

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=20120705144001.GB31257@redhat.com \
    --to=mst@redhat.com \
    --cc=aliguori@linux.vnet.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=kvm@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=target-devel@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wuzhy@cn.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).