Hi,
qemu can use memfd to allocate guest ram. Now, with the help of udmabuf, qemu can create a *host* dma-buf for the *guest* graphics buffer.
Guess each physical address in the iovec in VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING can be passed as the offset in the udmabuf_create_item struct?
Exactly.
https://git.kraxel.org/cgit/qemu/commit/?h=sirius/udmabuf&id=515a5b9f121...
Are you thinking of anything else besides passing the winsrv protocol across the guest/host boundary? Just wondering if I'm missing something.
The patch above uses the dmabuf internally in qemu. It simply mmaps it, so qemu has a linear representation of the resource and can use it as pixman image backing storage without copying the pixel data.
So it is useful even without actually exporting the dmabuf to other processes.
cheers, Gerd
PS: Any chance you can review the v7 patch?