Re: [PATCH v3 1/2] drm/virtio: Add window server support

From: Michael S. Tsirkin
Date: Tue Feb 06 2018 - 20:17:10 EST


On Tue, Feb 06, 2018 at 03:23:02PM +0100, Gerd Hoffmann wrote:
> > Creation of shareable buffer by guest
> > -------------------------------------------------
> >
> > 1. Client requests virtio driver to create a buffer suitable for sharing
> > with host (DRM_VIRTGPU_RESOURCE_CREATE)
>
> client or guest proxy?
>
> > 4. QEMU maps that buffer to the guest's address space
> > (KVM_SET_USER_MEMORY_REGION), passes the guest PFN to the virtio driver
>
> That part is problematic. The host can't simply allocate something in
> the physical address space, because most physical address space
> management is done by the guest. All pci bars are mapped by the guest
> firmware for example (or by the guest OS in case of hotplug).
>
> > 4. QEMU pops data+buffers from the virtqueue, looks up shmem FD for each
> > resource, sends data + FDs to the compositor with SCM_RIGHTS

If you squint hard, this sounds a bit like a use-case for vhost-user-gpu, does it not?

> BTW: Is there a 1:1 relationship between buffers and shmem blocks? Or
> does the wayland protocol allow for offsets in buffer meta data, so you
> can place multiple buffers in a single shmem block?
>
> cheers,
> Gerd