OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-dev] virtio-snd spec question


Sure. This is how I expect the device side ctl listening loop should look like:

while (...) {
  request = virtqueue_pop(ctl_vq, ...); Â//1
    response = virtqueue_pop(ctl_vq, ...); //2
    virtqueue_push(ctl_vq, response, response_size): //3
  virtqueue_push(ctl_vq, request, 0): //4
}

My understanding is that line 1 could read output from line 3 if the kernel is not fastÂenough fetching the response.

On Tue, Feb 1, 2022 at 11:44 PM Michael S. Tsirkin <mst@redhat.com> wrote:
On Tue, Feb 01, 2022 at 03:57:10PM -0800, Roman Kiryanov wrote:
> Hello,
>
> I work in Android Studio Emulator and I am currently implementing a virtio-snd
> device. We found a spec draft here:
>
> https://github.com/oasis-tcs/virtio-spec/commit/
> e73c8cdf3e822fd83c26c6de964a947670f93cc3#
> diff-73045e70aeaf45f93087610437b705e2d320c82a9d29b4027721f5f5f3918dc5
>
> 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.

Could you explain a bit more? which function in the kernel driver are
you referring to?




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]