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
next prev 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).