Re: passing FDs across domains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  Hi,

[ Cc'ing David Airlie and Marc-André Lureau ]

> > Lets step back and look at the problem you are trying to solve.
> > 
> > It seems you want guest wayland applications appear seamless on the host
> > wayland server, correct?
> 
> Correct.
> 
> > How does the wayland rendering workflow look like?  As far I know the
> > wayland protocol doesn't include any rendering.  Rendering happens
> > client side, into some buffer (one per window), which is then passed to
> > the server for display compositing.  Correct?  So you basically want
> > pass that buffer from guest to host?
> 
> Correct.
> 
> > What kind of shared memory is used by wayland?
> > sysv shm?  gbm buffers / dmabufs?
> 
> Typically, shared memory for CPU-rendered content, and dmabufs for
> GPU-rendered content.

Ok.  I guess solving this for virtio-gpu (with virgl enabled) is easiest
then.  Due to opengl rendering being offloaded to the host gpu the
guest window content already is in a host gpu buffer.

So we "only" need to export that buffer as dmabuf and pass it to the
wayland server.  That still doesn't look trivial though.  qemu must
manage the dmabufs, so it must be involved somehow; a direct guest
client -> host server wayland connection (alone) will not work.

I think we need either a wayland proxy in qemu which rewrites the buffer
references, or the host wayland server must talk to both guest client
(vsock could work for that) and qemu (for dmabuf management).  Or some
mixed model, such as a separate wayland proxy server talking to qemu for
dmabuf management.

I suspect in any case we need a wayland protocol extension for a new
buffer type as passing buffer references from guest to host can't use
filehandles.

cheers,
  Gerd




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux