Hello,
I work in Android Studio Emulator and I am currently implementing a virtio-snd device. We found a spec draft here:
It mentions four virtqueues: ctl, event, rx and tx. It is not very clear where a virtio-snd device should put responses to the ctl requests from the linux kernel driver. There is a kernel driver implementation and we have a virtio-sndÂdevice implemented in another emulator, it uses the same virtqueue (ctl) to put ctl responses and the current kernel driver seems happy with this.
Do you know if this is expected behavior? I am far from an expert here, but I believe the device and the kernel will race here by reading from the same virtqueue: the device could read VirtQueueElement produced by itself before the kernel if the kernel is not fast enough.
Thank you.
Regards,
Roman.