Hanging when testing Venus Driver with "stuck in ring seqno wait with iter at"

DUO Labs dvdugo333 at gmail.com
Sat May 13 23:07:51 UTC 2023

After some more checking, it seems the problem is in here: `vn_cs_encoder_reserve_internal`, as this is the only place where a vn_cs_encoder can grow with `vn_cs_encoder_add_buffer`. For the buffer_count to be 0, this must mean that this is never called. The vn_cs_encoder assigned to a ring is always initialized with `VN_CS_ENCODER_STORAGE_SHMEM_ARRAY` (see `vn_instance_init_ring`). Therefore, the only way for `vn_cs_encoder_add_buffer` to never be called is if `virtgpu_ioctl_resource_create_blob` in `virtgpu_shmem_create` returns 0. Unfortunately, I can't narrow it down from here, because there are two cases where this can be true: either `virtgpu_ioctl(gpu, DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB, &args)` has an error or `args.bo_handle` is `0` (that is, it's never set by the ioctl call). I'm leaning towards the first case being true; however, the second case can be true as bo_handle is never referenced by QEMU, so it's possible it's never set. I'm hoping for a little assistance on how to continue.

More information about the mesa-dev mailing list