All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@collabora.com>
To: David Stevens <stevensd@chromium.org>
Cc: "Gerd Hoffmann" <kraxel@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Zach Reizner" <zachr@chromium.org>,
	"Stéphane Marchesin" <marcheu@chromium.org>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Tomasz Figa" <tfiga@chromium.org>,
	virtio-dev@lists.oasis-open.org,
	"Alexandros Frantzis" <alexandros.frantzis@collabora.co.uk>
Subject: Re: [virtio-dev] [RFC] Upstreaming virtio-wayland (or an alternative)
Date: Mon, 2 Mar 2020 10:28:45 +0100	[thread overview]
Message-ID: <20200302102845.1becf332@collabora.com> (raw)
In-Reply-To: <CAD=HUj5pnug_ePq8_Z=+qb1VcmiDWVwTysBY+x3anxXLTvRHWA@mail.gmail.com>

On Mon, 2 Mar 2020 11:24:50 +0900
David Stevens <stevensd@chromium.org> wrote:

> On Fri, Feb 28, 2020 at 7:30 PM Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > On Fri, Feb 28, 2020 at 07:11:40PM +0900, David Stevens wrote:  
> > > > But there also is "unix socket", or maybe a somewhat broader "stream",
> > > > which would be another feature flag I guess because virtio-ipc would
> > > > just tunnel the stream without the help from other devices.  
> > >
> > > Can you elaborate on what you mean by this? I can envision how
> > > virtio-ipc would be a generic mechanism for passing data+virtio
> > > resources, including any new types of resources it itself defines.
> > > However, if "unix sockets" or a generic "stream" expands beyond
> > > virtio, that seems too broad, with too many edge cases to be feasible
> > > to implement.  
> >
> > As far I know this is exactly what virtio-wayland does today if you try
> > to pass a unix socket file descriptor to the other side, so I assume
> > this functionality is needed ...  
> 
> As Zach said earlier, virtio-wayland implements just enough FD sharing
> support to get wayland working. However, there are many other
> situations where virtio-wayland's unix socket support isn't
> sufficient. I think adding support for sharing unix sockets to a
> generic virtio-ipc would imply that the support is more comprehensive
> than would be feasible to implement. So while virtio-ipc should
> support wayland, either directly or with the support of
> userspace/another virtio device, it also shouldn't overpromise what it
> is capable of doing.

I feel like some of the terms I used were confusing, but I think we're
on the same page when it comes to the actual implementation and
features we want to see supported by this virtio-ipc device. So, how
about rephrasing it this way:

"
virtio-ipc aims at providing a protocol-agnostic message passing
interface with extensible resource-passing capabilities. The initial
implementation should cover the wayland use case, and as such,
should support passing the following type of resources:

* opened virtio-ipc connections (similar to passing an FD to one end of
  a unix pipe, except communication would be bi-directional). With this
  feature we can let user space implement all sort of proxies
  (sockets <-> virtio-ipc, pipes <-> virtio-ipc, ...)
* virtio-gpu dmabufs
* ... [need to look in more details what's needed for keymap and file
  sharing]
"

Note that it's not that far from what virtio-wayland provides today with
2 main differences:

1/ the name of the device no longer implies that the interface is
   wayland-specific
2/ virtio-ipc is resource-type agnostic, and FD <-> resource ID mapping
   creation is left to the subsystem handling the resource. That means
   we shouldn't see this sort of 'convert FD to res-type X' logic [1]
   in the virtio-ipc driver, which should make it easier to extend while
   keeping the code base small enough/sane, no matter how far we
   decide to go with resource passing.

[1]https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.19/drivers/virtio/virtio_wl.c#786

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


  reply	other threads:[~2020-03-02  9:28 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-07 17:28 [virtio-dev] [RFC] Upstreaming virtio-wayland (or an alternative) Boris Brezillon
2020-02-10  5:06 ` [virtio-dev] " David Stevens
2020-02-17 10:02   ` Boris Brezillon
2020-02-17 10:22     ` David Stevens
2020-02-10 13:38 ` Gerd Hoffmann
2020-02-10 16:09   ` Stefan Hajnoczi
2020-02-17 10:28   ` Boris Brezillon
2020-02-17 12:32     ` Gerd Hoffmann
2020-02-17 13:44       ` Boris Brezillon
     [not found] ` <CADMs+9YC3QHOsmsB9pjA-AFC+fc=_a+tSqBbDsecNvkhBc85Dw@mail.gmail.com>
2020-02-17 11:02   ` Boris Brezillon
2020-02-17 13:58 ` Boris Brezillon
     [not found]   ` <CAFNex=BuHdsEjFK3_cTqO2nOE-kB_MSH26sCTekF_6AK8Fyv3Q@mail.gmail.com>
2020-02-17 18:21     ` Boris Brezillon
     [not found]       ` <CAFNex=A8fU3e=FYP=t7jQ0J2E5aoyGKujhj8Df+vOhkzV8etgA@mail.gmail.com>
2020-02-19  8:52         ` Boris Brezillon
2020-02-24 10:33       ` Boris Brezillon
2020-02-24 12:12         ` Gerd Hoffmann
2020-02-24 12:45           ` Boris Brezillon
2020-02-24 13:18             ` Boris Brezillon
2020-02-24 13:42               ` Gerd Hoffmann
2020-02-24 13:57                 ` Boris Brezillon
2020-02-24 14:25                   ` Boris Brezillon
2020-02-24 13:35             ` Gerd Hoffmann
2020-02-24 12:32       ` Gerd Hoffmann
2020-02-25 15:21 ` [virtio-dev] " Boris Brezillon
2020-02-25 15:55   ` Alex Bennée
2020-02-26  9:25     ` Boris Brezillon
2020-02-26 15:12   ` Gerd Hoffmann
2020-02-26 17:05     ` Boris Brezillon
2020-02-27 10:29       ` Gerd Hoffmann
2020-02-27 12:24         ` Boris Brezillon
2020-02-27  4:20   ` David Stevens
2020-02-27  9:09     ` Boris Brezillon
     [not found]       ` <CAFNex=C4wm7=iH9XmyHoTSdkDfA3vbFOuLaaQ4aLjE9keu_NDg@mail.gmail.com>
2020-02-27  9:33         ` Boris Brezillon
2020-02-27 11:14       ` David Stevens
2020-02-27 11:51         ` Boris Brezillon
2020-02-27 14:43         ` Gerd Hoffmann
2020-02-28  8:04           ` Boris Brezillon
2020-02-28  9:27             ` Gerd Hoffmann
2020-02-28 10:11               ` David Stevens
2020-02-28 10:30                 ` Gerd Hoffmann
2020-03-02  2:24                   ` David Stevens
2020-03-02  9:28                     ` Boris Brezillon [this message]
2020-02-28 10:31                 ` Boris Brezillon

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=20200302102845.1becf332@collabora.com \
    --to=boris.brezillon@collabora.com \
    --cc=alexandros.frantzis@collabora.co.uk \
    --cc=kraxel@redhat.com \
    --cc=marcheu@chromium.org \
    --cc=stefanha@redhat.com \
    --cc=stevensd@chromium.org \
    --cc=tfiga@chromium.org \
    --cc=tomeu.vizoso@collabora.com \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=zachr@chromium.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.