qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Albert Esteve <aesteve@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	Albert Esteve <aesteve@redhat.com>
Subject: [PATCH 0/4] Virtio shared dma-buf
Date: Wed,  3 May 2023 10:19:07 +0200	[thread overview]
Message-ID: <20230503081911.119168-1-aesteve@redhat.com> (raw)

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:

Shared resources table, to hold all resources that can be shared in the host and their assigned UUID
Internal shared table API for virtio devices to add, lookup and remove resources
Unit test to verify the API.
New message to the vhost-user protocol to allow backend to interact with the shared
table API through the control socket

Applies cleanly to 4ebc33f

[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):
  virtio-dmabuf: introduce virtio-dmabuf
  vhost-user: add shared_object msg
  vhost-user: refactor send_resp code
  libvhost-user: add write_msg cb to dev struct

 docs/interop/vhost-user.rst               |  15 +++
 hw/display/meson.build                    |   1 +
 hw/display/virtio-dmabuf.c                |  88 +++++++++++++++++
 hw/virtio/vhost-user.c                    |  90 ++++++++++++++---
 include/hw/virtio/virtio-dmabuf.h         |  58 +++++++++++
 subprojects/libvhost-user/libvhost-user.c |  40 ++++++++
 subprojects/libvhost-user/libvhost-user.h |  46 +++++++++
 tests/unit/meson.build                    |   1 +
 tests/unit/test-virtio-dmabuf.c           | 112 ++++++++++++++++++++++
 9 files changed, 438 insertions(+), 13 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



             reply	other threads:[~2023-05-03  8:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-03  8:19 Albert Esteve [this message]
2023-05-03  8:19 ` [PATCH 1/4] virtio-dmabuf: introduce virtio-dmabuf Albert Esteve
2023-05-08 13:12   ` Cornelia Huck
2023-05-09  7:21     ` Albert Esteve
2023-05-09 10:52   ` Marc-André Lureau
2023-05-09 12:52     ` Albert Esteve
2023-05-09 12:57       ` Marc-André Lureau
2023-05-17 15:10         ` Albert Esteve
2023-05-03  8:19 ` [PATCH 2/4] vhost-user: add shared_object msg Albert Esteve
2023-05-03  8:19 ` [PATCH 3/4] vhost-user: refactor send_resp code Albert Esteve
2023-05-03  8:19 ` [PATCH 4/4] libvhost-user: add write_msg cb to dev struct Albert Esteve
2023-05-09 10:11   ` Marc-André Lureau
2023-05-09 11:17     ` Albert Esteve
2023-05-09 12:53       ` Marc-André Lureau
2023-05-10 12:30         ` Albert Esteve

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230503081911.119168-1-aesteve@redhat.com \
    --to=aesteve@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).