qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: msuchanek <msuchanek@suse.de>
Cc: "Jan Kiszka" <jan.kiszka@siemens.com>,
	Jailhouse <jailhouse-dev@googlegroups.com>,
	"Wei Wang" <wei.w.wang@intel.com>,
	"Marc-André Lureau" <marcandre.lureau@gmail.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	Qemu-devel <qemu-devel-bounces+msuchanek=suse.de@nongnu.org>
Subject: Re: [Qemu-devel] Towards an ivshmem 2.0?
Date: Mon, 30 Jan 2017 11:25:50 +0000	[thread overview]
Message-ID: <20170130112550.GA2118@stefanha-x1.localdomain> (raw)
In-Reply-To: <7586642a42833441c2bbe5ac3403e44b@suse.de>

[-- Attachment #1: Type: text/plain, Size: 2998 bytes --]

On Sun, Jan 29, 2017 at 12:56:23PM +0100, msuchanek wrote:
> On 2017-01-17 10:59, Stefan Hajnoczi wrote:
> > On Mon, Jan 16, 2017 at 02:10:17PM +0100, Jan Kiszka wrote:
> > > On 2017-01-16 13:41, Marc-André Lureau wrote:
> > > > On Mon, Jan 16, 2017 at 12:37 PM Jan Kiszka <jan.kiszka@siemens.com
> > > > <mailto:jan.kiszka@siemens.com>> wrote:
> > > >     So, this is our proposal. Would be great to hear some opinions if you
> > > >     see value in adding support for such an "ivshmem 2.0" device to QEMU as
> > > >     well and expand its ecosystem towards Linux upstream, maybe also DPDK
> > > >     again. If you see problems in the new design /wrt what QEMU provides so
> > > >     far with its ivshmem device, let's discuss how to resolve them. Looking
> > > >     forward to any feedback!
> > > >
> > > >
> > > > My feeling is that ivshmem is not being actively developped in qemu, but
> > > > rather virtio-based solutions (vhost-pci for vm2vm).
> > > 
> > > As pointed out, for us it's most important to keep the design simple -
> > > even at the price of "reinventing" some drivers for upstream (at
> > > least,
> > > we do not need two sets of drivers because our interface is fully
> > > symmetric). I don't see yet how vhost-pci could achieve the same, but
> > > I'm open to learn more!
> > 
> > The concept of symmetry is nice but only applies for communications
> > channels like networking and serial.
> > 
> > It doesn't apply for I/O that is fundamentally asymmetric like disk I/O.
> > 
> > I just wanted to point this out because lack symmetry has also bothered
> > me about virtio but it's actually impossible to achieve it for all
> > device types.
> > 
> 
> What's asymetric about storage? IIRC both SCSI and Firewire which can be
> used for storage are symmetric. All asymmetry only comes from usage
> convention or less capable buses like IDE/SATA.

I'll also add Intel NVMe and virtio-blk to the list of interfaces that
are not symmetric.

Even for SCSI, separate roles for initiator and target are central to
the SCSI Architecture Model.  The consequence is that hardware
interfaces and software stacks are not symmetric.  For example, the
Linux SCSI target only supports a small set of FC HBAs with explicit
target mode support rather than all SCSI HBAs.

Intuitively this makes sense - if the I/O has clear "client" and
"server" roles then why should both sides implement both roles?  It adds
cost and complexity for no benefit.

The same goes for other device types like graphics cards.  They are
inherently asymmetric.  Only one side has the actual hardware to perform
the I/O so it doesn't make sense to be symmetric.

You can pretend they are symmetric by restricting the hardware interface
and driver to just message passing.  Then another layer of software
handles the asymmetric behavior.  But then you may as well use iSCSI,
VNC, etc and not have a hardware interface for disk and graphics.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

  reply	other threads:[~2017-01-30 11:26 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-16  8:36 [Qemu-devel] Towards an ivshmem 2.0? Jan Kiszka
2017-01-16 12:41 ` Marc-André Lureau
2017-01-16 13:10   ` Jan Kiszka
2017-01-17  9:13     ` Wang, Wei W
2017-01-17  9:46       ` Jan Kiszka
2017-01-20 11:54         ` Wang, Wei W
2017-01-20 16:37           ` Jan Kiszka
2017-01-23  3:49             ` Wang, Wei W
2017-01-23 10:14               ` Måns Rullgård
2017-01-17  9:59     ` Stefan Hajnoczi
2017-01-17 10:32       ` Jan Kiszka
2017-01-29 11:56       ` msuchanek
2017-01-30 11:25         ` Stefan Hajnoczi [this message]
2017-01-16 14:18 ` Stefan Hajnoczi
2017-01-16 14:34   ` Jan Kiszka
2017-01-17 10:00     ` Stefan Hajnoczi
2017-01-23 14:19 ` Markus Armbruster
2017-01-25  9:18   ` Jan Kiszka
2017-01-27 19:36     ` Markus Armbruster
2017-01-29  8:43       ` Jan Kiszka
2017-01-29 14:00         ` Marc-André Lureau
2017-01-29 14:14           ` Jan Kiszka
2017-01-30  8:02             ` Markus Armbruster
2017-01-30  8:05               ` Jan Kiszka
2017-01-31  2:51             ` Wang, Wei W
2017-01-30  8:00         ` Markus Armbruster
2017-01-30  8:14           ` Jan Kiszka
2017-01-30 12:19             ` Markus Armbruster
2017-01-30 15:57               ` Jan Kiszka

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=20170130112550.GA2118@stefanha-x1.localdomain \
    --to=stefanha@gmail.com \
    --cc=armbru@redhat.com \
    --cc=jailhouse-dev@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    --cc=marcandre.lureau@gmail.com \
    --cc=msuchanek@suse.de \
    --cc=qemu-devel-bounces+msuchanek=suse.de@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wei.w.wang@intel.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).