qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [QEMU PATCH v4 10/13] virtio-gpu: Resource UUID


From: Akihiko Odaki
Subject: Re: [QEMU PATCH v4 10/13] virtio-gpu: Resource UUID
Date: Wed, 13 Sep 2023 21:22:26 +0900
User-agent: Mozilla Thunderbird

On 2023/09/13 20:34, Albert Esteve wrote:


On Wed, Sep 13, 2023 at 12:34 PM Akihiko Odaki <akihiko.odaki@daynix.com <mailto:akihiko.odaki@daynix.com>> wrote:

    On 2023/09/13 16:55, Albert Esteve wrote:
     > Hi Antonio,
     >
     > If I'm not mistaken, this patch is related with:
     >
    https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg01853.html
    <https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg01853.html>
     >
    <https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg01853.html
    <https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg01853.html>>
     > IMHO, ideally, virtio-gpu and vhost-user-gpu both, would use the
     > infrastructure from the patch I linked to store the
     > virtio objects, so that they can be later shared with other devices.

    I don't think such sharing is possible because the resources are
    identified by IDs that are local to the device. That also complicates
    migration.

    Regards,
    Akihiko Odaki

Hi Akihiko,

As far as I understand, the feature to export dma-bufs from the
virtgpu was introduced as part of the virtio cross-device sharing
proposal [1]. Thus, it shall be posible. When virtgpu ASSING_UUID,
it exports and identifies the dmabuf resource, so that when the dmabuf gets
shared inside the guest (e.g., with virtio-video), we can use the assigned
UUID to find the dmabuf in the host (using the patch that I linked above),
and import it.

[1] - https://lwn.net/Articles/828988/ <https://lwn.net/Articles/828988/>

The problem is that virtio-gpu can have other kind of resources like pixman and OpenGL textures and manage them and DMA-BUFs with unified resource ID.

So you cannot change:
g_hash_table_insert(g->resource_uuids, GUINT_TO_POINTER(assign.resource_id), uuid);
by:
virtio_add_dmabuf(uuid, assign.resource_id);

assign.resource_id is not DMA-BUF file descriptor, and the underlying resource my not be DMA-BUF at first place.

Also, since this lives in the common code that is not used only by virtio-gpu-gl but also virtio-gpu, which supports migration, we also need to take care of that. It is not a problem for DMA-BUF as DMA-BUF is not migratable anyway, but the situation is different in this case.

Implementing cross-device sharing is certainly a possibility, but that requires more than dealing with DMA-BUFs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]