Re: [PATCH v2 4/4] drm/virtio: Support virtgpu exported resources

From: David Stevens
Date: Thu Mar 05 2020 - 03:51:06 EST


On Wed, Mar 4, 2020 at 5:01 PM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote:
>
> Hi,
>
> > + if (vgdev->has_resource_assign_uuid) {
> > + spin_lock(&vgdev->resource_export_lock);
> > + if (bo->uuid_state == UUID_NOT_INITIALIZED) {
> > + bo->uuid_state = UUID_INITIALIZING;
> > + needs_init = true;
> > + }
> > + spin_unlock(&vgdev->resource_export_lock);
> > +
> > + if (needs_init) {
> > + ret = virtio_gpu_cmd_resource_assign_uuid(vgdev, bo);
>
> You can submit a fenced command, then wait on the fence here. Removes
> the need for UUID_INITIALIZING.

Synchronously waiting is simper, but only doing the wait when trying
to use the UUID can help to hide the latency of the virito commands.
That can save quite a bit of time when setting up multiple buffers for
a graphics pipeline, which I think is worthwhile.

-David