Le 21/12/2023 à 09:09, Akihiko Odaki a écrit :
On 2023/12/19 16:53, Huang Rui wrote:
From: Antonio Caggiano <antonio.caggi...@collabora.com>
Support BLOB resources creation, mapping and unmapping by calling the
new stable virglrenderer 0.10 interface. Only enabled when available and
via the blob config. E.g. -device virtio-vga-gl,blob=true
I have another concern about delaying virgl_renderer_resource_unref() until the
resource gets unmapped; the guest will expect the resource ID will be available
for a new resource immediately after VIRTIO_GPU_CMD_RESOURCE_UNREF, but it will
break the assumption and may corrupt things.
Yes this is a problem.
And another one is virglrenderer is not really thread-safe, so this callstack:
#0 virgl_resource_blob_async_unmap ()
#1 object_finalize ()
#2 object_unref ()
#3 memory_region_unref ()
#4 flatview_destroy ()
#5 call_rcu_thread ()
#6 qemu_thread_start ()
Will call into virgl_renderer_ctx_resource_unmap which in turn uses
virgl_resource_lookup
without any multithreading considerations.
Regards,
Pierre-Eric