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(a)gmail.com>
Sent: Wednesday, February 27, 2019 8:54 PM
To: Nikhil Agarwal <nagarwal(a)xilinx.com>
Cc: qemu-devel(a)nongnu.org; jasowang(a)redhat.com; libvir-list(a)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