qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
To: Christoph Hellwig <hch@lst.de>
Cc: kvm@vger.kernel.org, Rusty Russell <rusty@rustcorp.com.au>,
	qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Paul Brook <paul@codesourcery.com>,
	Hannes Reinecke <hare@suse.de>
Subject: Re: [Qemu-devel] Re: [PATCH] virtio-blk: add SGI_IO passthru support
Date: Thu, 30 Apr 2009 13:55:52 -0700	[thread overview]
Message-ID: <1241124952.32740.562.camel@haakon2.linux-iscsi.org> (raw)
In-Reply-To: <20090430201350.GA30619@lst.de>

On Thu, 2009-04-30 at 22:13 +0200, Christoph Hellwig wrote:
> On Wed, Apr 29, 2009 at 12:37:20PM +0100, Paul Brook wrote:
> > How exactly does it introduce additional latency? A scsi command block is 
> > hardly large or complicated. Are you suggesting that a 16/32byte scsi command 
> > takes significantly longer to process than a 16byte virtio command 
> > descriptor? I'd expect any extra processing to be a small fraction of the 
> > host syscall latency, let alone the latency of the physical host adapter. It 
> > probably even fits on the same CPU cache line.
> 
> Encoding the scsi CDB is additional work but I would be surprised it it
> is mesurable.  Just using scsi cdbs would be simple enough, the bigger
> issue is emulating a full blown scsi bus because then you need to do all
> kinds queueing decisions at target levels etc and drag in a complicated
> scsi stack and not just a simple block driver in the guest.  And at
> least on current linux kernels that does introduce mesurable latency.
>
> Now it might be possible to get that latency down to a level where we
> can ignore it but when doing all this additional work there always will
> be additional overhead.
> 

/me puts on SCSI target mode hat

The other obvious benefit for allowing passthrough SCSI block devices
into KVM guests via virtio-blk means that at some point those SCSI block
devices could be coming from a local target mode stack that is
representing LVM block devices as SCSI-3 storage, or say FILEIO on top
of a btrfs mount also representing SCSI-3 storage along with the typical
hardware passthroughs for local (KVM Host) accessable SCSI devices.

The important part is that KVM guests using SG_IO passthrough with
virtio-blk (assuming that they actually showed up as SCSI devices in the
KVM guest) is that guests would be able to take advantage of existing
Linux SCSI I/O fencing functionality that is used for H/A, and for
cluster filesystems like GFS in RHEL, etc.

Also using scsi_dh_alua in Linux KVM guests against SCSI-3 compatible
block_devices using the passthrough means you could do some interesting
things with controlling bandwith and paths using asymmetric access port
states from local storage into Linux KVM guest.

How much latency overhead a SCSI passthrough (with a pseudo SCSI bus) in
the KVM guest would add compared to native virtio-blk would be the key
metric.  Now if the KVM SCSI passthrough was talking in SCSI-target mode
directly to drivers/scsi (instead of going through Block -> SCSI for
example) it would actually involve less overhead on the KVM host IMHO.

For the usage of using BLOCK and FILEIO devices that have SCSI-3
emulation on top (and then passing into the KVM guest) would obviously
add processing overhead, but for those folks who are interested in SCSI
I/O fencing in the KVM guest using existing tools, the performance
overhead would be reasonable tradeoff on machines with a fast memory and
point-to-point bus architecture.

--nab

> > 
> > Paul
> ---end quoted text---
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  reply	other threads:[~2009-04-30 20:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090427082606.GA32604@lst.de>
2009-04-27  8:29 ` [Qemu-devel] [PATCH] virtio-blk: add SGI_IO passthru support Christoph Hellwig
2009-04-27  9:15   ` Avi Kivity
2009-04-28  9:47     ` Christoph Hellwig
2009-04-27 14:36   ` [Qemu-devel] " Anthony Liguori
2009-04-28  9:51     ` Christoph Hellwig
2009-04-28 16:37       ` Anthony Liguori
2009-04-28 16:52         ` Christian Borntraeger
2009-04-29 10:48         ` Christoph Hellwig
2009-04-29 11:11           ` Paul Brook
2009-04-29 11:19             ` Christian Borntraeger
2009-04-29 11:29               ` Paul Brook
2009-04-29 11:21             ` Christoph Hellwig
2009-04-29 11:37               ` Paul Brook
2009-04-30 20:13                 ` Christoph Hellwig
2009-04-30 20:55                   ` Nicholas A. Bellinger [this message]
2009-04-30 21:49                   ` Paul Brook
2009-04-30 21:56                     ` Javier Guerra
2009-05-01  7:24                     ` Christoph Hellwig
2009-05-01 11:08                       ` Jamie Lokier
2009-05-01 14:28                         ` Christoph Hellwig
2009-05-05  5:21                   ` Rusty Russell
2009-04-28 19:09       ` Christian Borntraeger
2009-04-29 10:50         ` Christoph Hellwig
2009-04-29 11:07           ` Christian Borntraeger
2009-04-28  9:57   ` [Qemu-devel] [PATCH 2/2] virtio-blk: add SG_IO " Christoph Hellwig

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=1241124952.32740.562.camel@haakon2.linux-iscsi.org \
    --to=nab@linux-iscsi.org \
    --cc=borntraeger@de.ibm.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=kvm@vger.kernel.org \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    /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).