I was hoping for some acks from Gerd or anyone else with a clue about graphics, but as that doesn't seem to happen I'll merge. Thanks!
On Mon, Aug 21, 2023 at 02:37:56PM +0200, Albert Esteve wrote: > Hi all, > > A little bump for this patch, sorry for the extra noise. > > Regards, > Albert > > > On Wed, Aug 2, 2023 at 11:08 AM Albert Esteve <aest...@redhat.com> wrote: > > v1 link -> https://lists.gnu.org/archive/html/qemu-devel/2023-05/ > msg00598.html > v2 link -> https://lists.gnu.org/archive/html/qemu-devel/2023-05/ > msg04530.html > v3 link -> https://lists.gnu.org/archive/html/qemu-devel/2023-05/ > msg06126.html > v4 link -> https://lists.gnu.org/archive/html/qemu-devel/2023-06/ > msg05174.html > v4 -> v5: > - Allow shared table to hold pointers for vhost devices, in a struct that > defines the types that the table can store > - New message VHOST_USER_GET_SHARED_OBJECT to retrieve objects stored in > vhost backends > - Minor additions to support the previous items (e.g. new test usecases). > > This patch covers the required steps to add support for virtio > cross-device > resource sharing[1], > which support is already available in the kernel. > > The main usecase will be sharing dma buffers from virtio-gpu devices (as > the exporter > -see VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID in [2]), to virtio-video (under > discussion) > devices (as the buffer-user or importer). Therefore, even though virtio > specs talk about > resources or objects[3], this patch adds the infrastructure with dma-bufs > in mind. > Note that virtio specs let the devices themselves define what a vitio > object is. > > These are the main parts that are covered in the patch: > > - Add hash function to uuid module > - Shared resources table, to hold all resources that can be shared in the > host and their assigned UUID, > or pointers to the backend holding the resource > - Internal shared table API for virtio devices to add, lookup and remove > resources > - Unit test to verify the API > - New messages to the vhost-user protocol to allow backend to interact > with > the shared > table API through the control socket > - New vhost-user feature bit to enable shared objects feature > > Applies cleanly to 38a6de80b917b2a822cff0e38d83563ab401c890 > > [1] - https://lwn.net/Articles/828988/ > [2] - https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/ > virtio-v1.2-csd01.html#x1-3730006 > [3] - https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/ > virtio-v1.2-csd01.html#x1-10500011 > > Albert Esteve (4): > uuid: add a hash function > virtio-dmabuf: introduce virtio-dmabuf > vhost-user: add shared_object msg > vhost-user: refactor send_resp code > > MAINTAINERS | 7 + > docs/interop/vhost-user.rst | 57 +++++++ > hw/display/meson.build | 1 + > hw/display/virtio-dmabuf.c | 136 +++++++++++++++++ > hw/virtio/vhost-user.c | 174 ++++++++++++++++++++-- > include/hw/virtio/vhost-backend.h | 3 + > include/hw/virtio/virtio-dmabuf.h | 103 +++++++++++++ > include/qemu/uuid.h | 2 + > subprojects/libvhost-user/libvhost-user.c | 118 +++++++++++++++ > subprojects/libvhost-user/libvhost-user.h | 55 ++++++- > tests/unit/meson.build | 1 + > tests/unit/test-uuid.c | 27 ++++ > tests/unit/test-virtio-dmabuf.c | 137 +++++++++++++++++ > util/uuid.c | 14 ++ > 14 files changed, 821 insertions(+), 14 deletions(-) > create mode 100644 hw/display/virtio-dmabuf.c > create mode 100644 include/hw/virtio/virtio-dmabuf.h > create mode 100644 tests/unit/test-virtio-dmabuf.c > > -- > 2.40.0 > >