[libvirt] [Qemu-devel] Virtio-net control queue handling

Jason Wang jasowang at redhat.com
Thu Feb 28 02:47:03 UTC 2019


On 2019/2/28 上午1:39, Nikhil Agarwal wrote:
> Hi Stefan,
>
> Thanks for directing question to correct people, yes your understanding is correct.
>
> I want virtio-net control virtqueue to be handled by vhost-user-net device based backend for vdpa use case where control message would do some configuration on actual hw device. Or these changes should to be done in libvirt where QMP event are being handled as of now?
>
> Regards
> Nikhil


Cc Michael. Several methods for dealing with control virtqueue:

1) using backend specific method. For example, multiqueue control for 
TAP was done in this way, and we plan to support RSS in this way as well 
(through steering eBPF program). But this may not work for the 
privilleged operations.
2) inventing new vhost(user) protocol, convert the vq command to 
vhost(user) command and pass it to vhost(user) backend.
3) extend vhost protocol to deal with control vq like you propose here.
4) notify libvirt using QMP event, we've already supported this if rx 
filter is changed for virtio-net, and let management to deal with the 
changes.
5) implementing or linking vhost backend qemu, then there's no need to 
invent no IPCs

For the case of vDPA, I'm not sure the use case for vDPA through 
vhost-user. Can you describe more about that? To me the best way is 
probably done through mdev and VFIO not userspace path.

Thanks


>
>
> -----Original Message-----
> From: Stefan Hajnoczi <stefanha at gmail.com>
> Sent: Wednesday, February 27, 2019 8:54 PM
> To: Nikhil Agarwal <nagarwal at xilinx.com>
> Cc: qemu-devel at nongnu.org; jasowang at redhat.com; libvir-list at redhat.com
> Subject: Re: [Qemu-devel] Virtio-net control queue handling
>
> On Tue, Feb 26, 2019 at 02:13:43PM +0000, Nikhil Agarwal wrote:
>> Is there any option in QEMU to offload virtio device control queue handling to backend instead of deciphering and passing to libvirt via QMP? if not, is there any interface in libvirt which passes on these message to application or i directly use QMP interface from QEMU?
> I'm not sure I understand your question.  It could be because of
> terminology:
>
> "virtio device control queue" == virtio-net control virtqueue?
>
> "backend" == vhost-user-net device backend?
>
> "message" == QMP event?
>
> I have CCed Jason Wang, QEMU network subsystem maintainer, and the libvirt mailing list.
>
> Stefan
>




More information about the libvir-list mailing list