All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	netdev@vger.kernel.org, David Miller <davem@davemloft.net>,
	kvm@vger.kernel.org, virtualization@lists.linux-foundation.org
Subject: Re: [PATCH] AF_VMCHANNEL address family for	guest<->host	communication.
Date: Mon, 15 Dec 2008 14:52:07 -0800	[thread overview]
Message-ID: <4946DF97.7070600@goop.org> (raw)
In-Reply-To: <4946A5E0.5080303@codemonkey.ws>

Anthony Liguori wrote:
> Jeremy Fitzhardinge wrote:
>   
>>> Each of these sockets are going to be connected to a backend (to 
>>> implement guest<=>copy/paste for instance).  We want to implement 
>>> those backends in userspace and preferably in QEMU.
>>>
>>> Using some raw protocol over ethernet means you don't have 
>>> reliability.  If you use a protocol to get reliability (like TCP), 
>>> you now have to implement a full TCP/IP stack in userspace or get the 
>>> host kernel involved.  I'd rather not get the host kernel involved 
>>> from a security perspective.
>>>   
>>>       
>> There's nothing wrong with user-mode TCP, or you could run your TCP 
>> stack in a special-purpose guest if you're really paranoid.
>>     
>
> That seems unnecessarily complex.
>   

Well, the simplest thing is to let the host TCP stack do TCP.  Could you 
go into more detail about why you'd want to avoid that?

> This is why I've been pushing for the backends to be implemented in 
> QEMU.  Then QEMU can marshal the backend-specific state and transfer it 
> during live migration.  For something like copy/paste, this is obvious 
> (the clipboard state).  A general command interface is probably 
> stateless so it's a nop.
>   

Copy/paste seems like a particularly bogus example.  Surely this isn't a 
sensible way to implement it?

> I'm not a fan of having external backends to QEMU for the very reasons 
> you outline above.  You cannot marshal the state of a channel we know 
> nothing about.  We're really just talking about extending virtio in a 
> guest down to userspace so that we can implement paravirtual device 
> drivers in guest userspace.  This may be an X graphics driver, a mouse 
> driver, copy/paste, remote shutdown, etc.
>   
> A socket seems like a natural choice.  If that's wrong, then we can 
> explore other options (like a char device, virtual fs, etc.).

I think a socket is a pretty poor choice.  It's too low level, and it 
only really makes sense for streaming data, not for data storage 
(name/value pairs).  It means that everyone ends up making up their own 
serializations.  A filesystem view with notifications seems to be a 
better match for the use-cases you mention (aside from cut/paste), with 
a single well-defined way to serialize onto any given channel.  Each 
"file" may well have an application-specific content, but in general 
that's going to be something pretty simple.

>   This 
> shouldn't be confused with networking though and all the talk of doing 
> silly things like streaming fence traffic through it just encourages the 
> confusion.

I'm not sure what you're referring to here.

    J

  reply	other threads:[~2008-12-15 22:52 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-14 11:50 [PATCH] AF_VMCHANNEL address family for guest<->host communication Gleb Natapov
2008-12-14 12:23 ` Evgeniy Polyakov
2008-12-14 12:46   ` Gleb Natapov
2008-12-14 12:46   ` Gleb Natapov
2008-12-14 12:23 ` Evgeniy Polyakov
2008-12-15  6:44 ` David Miller
2008-12-15  7:48   ` Gleb Natapov
2008-12-15  7:48   ` Gleb Natapov
2008-12-15  8:27     ` David Miller
2008-12-15  8:27     ` David Miller
2008-12-15 15:02   ` Anthony Liguori
2008-12-15 15:02   ` Anthony Liguori
2008-12-15 17:45     ` Jeremy Fitzhardinge
2008-12-15 18:26       ` Itamar Heim
2008-12-15 18:26       ` Itamar Heim
2008-12-15 18:45       ` Anthony Liguori
2008-12-15 18:45       ` Anthony Liguori
2008-12-15 22:52         ` Jeremy Fitzhardinge [this message]
2008-12-15 23:08           ` Anthony Liguori
2008-12-15 23:44             ` Jeremy Fitzhardinge
2008-12-15 23:44             ` Jeremy Fitzhardinge
2008-12-15 23:52             ` Evgeniy Polyakov
2008-12-15 23:52             ` Evgeniy Polyakov
2008-12-16  0:01               ` Dor Laor
2008-12-16  0:01               ` Dor Laor
2008-12-15 23:08           ` Anthony Liguori
2008-12-15 22:52         ` Jeremy Fitzhardinge
2008-12-15 17:45     ` Jeremy Fitzhardinge
2008-12-15 19:43     ` David Miller
2008-12-15 19:43     ` David Miller
2008-12-15 20:44       ` Anthony Liguori
2008-12-15 20:44       ` Anthony Liguori
2008-12-15 22:29         ` David Miller
2008-12-15 22:29         ` David Miller
2008-12-15 23:01           ` Anthony Liguori
2008-12-15 23:10             ` David Miller
2008-12-15 23:10             ` David Miller
2008-12-15 23:17               ` Anthony Liguori
2008-12-16  2:55                 ` Herbert Xu
2008-12-16  2:55                 ` Herbert Xu
2008-12-15 23:17               ` Anthony Liguori
2008-12-15 23:13             ` Stephen Hemminger
2008-12-15 23:13             ` Stephen Hemminger
2008-12-15 23:45             ` Evgeniy Polyakov
2008-12-15 23:45             ` Evgeniy Polyakov
2008-12-16  6:57               ` Gleb Natapov
2008-12-16 21:25                 ` Evgeniy Polyakov
2008-12-16 21:25                 ` Evgeniy Polyakov
2008-12-16 23:20                   ` Dor Laor
2008-12-16 23:20                   ` Dor Laor
2008-12-17 14:31                   ` Gleb Natapov
2008-12-18 12:30                     ` Evgeniy Polyakov
2008-12-18 12:30                     ` Evgeniy Polyakov
2008-12-17 14:31                   ` Gleb Natapov
2008-12-16  6:57               ` Gleb Natapov
2008-12-15 23:01           ` Anthony Liguori
2008-12-15  6:44 ` David Miller
  -- strict thread matches above, loose matches on Subject: below --
2008-12-14 11:50 Gleb Natapov

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=4946DF97.7070600@goop.org \
    --to=jeremy@goop.org \
    --cc=anthony@codemonkey.ws \
    --cc=davem@davemloft.net \
    --cc=kvm@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /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.