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