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

From: Tomeu Vizoso
Date: Wed Feb 07 2018 - 02:42:02 EST


On 02/07/2018 02:09 AM, Michael S. Tsirkin wrote:
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?

Can you extend on what makes you think that?

As an aside, crosvm runs the virtio-gpu device in a separate, jailed
process, among other virtual devices.

https://chromium.googlesource.com/chromiumos/platform/crosvm/

Regards,

Tomeu