All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] 答复: Re:  [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user
@ 2017-08-21  3:28 lu.zhipeng
  2017-08-21  3:34 ` Jason Wang
  0 siblings, 1 reply; 2+ messages in thread
From: lu.zhipeng @ 2017-08-21  3:28 UTC (permalink / raw)
  To: jasowang; +Cc: mst, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 4564 bytes --]

>On 2017年08月21日 09:50, ZhiPeng Lu wrote:>> commit 96a3d98d2cdbd897ff5ab33427aa4cfb94077665 (vhost: don't set vring call>> if no vector) set vring call fd to -1 for drivers does not use interrupt>> at all(e.g virtio-net pmd). That patch setting vring call fd to -1 cause>> the network to not work when running dpdk in the guest. The openvswitch port>> status is down by executing the command "ovs-vsctl list interface">> in host of running the guest. The network is ok if it doesn't set vring call fd>> to -1 in vhost_virtqueue_start.>> The patch doesn't set vring call fd to -1 for vhost-user.>>>> Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>>> --->>   hw/virtio/vhost.c | 3 ++->>   1 file changed, 2 insertions(+), 1 deletion(-)>>>> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c>> index 6eddb09..bb8db7d 100644>> --- a/hw/virtio/vhost.c>> +++ b/hw/virtio/vhost.c>> @@ -1098,7 +1098,8 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,>>   >>       if (k->query_guest_notifiers &&>>           k->query_guest_notifiers(qbus->parent) &&>> -        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) {>> +        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR &&>> +        vdev->use_guest_notifier_mask) {>>           file.fd = -1>>           r = dev->vhost_ops->vhost_set_vring_call(dev, &file)>>           if (r) {>Hi:>Which kind/version of vhost-user bakcend did you use? What happen if we >don't do vhost_set_vring_call for it? Is this a bug of vhost-user >backend instead of qemu?---- I use qemu-2.8.1 ,but i think  that the latest version of QEMU also has problems like this.

 if (!vdev->use_guest_notifier_mask) {

        /* TODO: check and handle errors. */

        vhost_virtqueue_mask(dev, vdev, idx, false) 

        ---------- set right  callfd 

    }




    if (k->query_guest_notifiers &&

        k->query_guest_notifiers(qbus->parent) &&

        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) {

        file.fd = -1

        r = dev->vhost_ops->vhost_set_vring_call(dev, &file)

-----------set call fd to -1

        if (r) {

            goto fail_vector

        }

    }

 So   the callfd of  ovs+dpdk in host  is -1.  it  can't be able  to interact with the guest.






为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支持。


芦志朋 luzhipeng






IT开发工程师 IT Development
Engineer
操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/System Product









四川省成都市天府大道中段800号
E: lu.zhipeng@zte.com.cn 
www.zte.com.cn










原始邮件



发件人: <jasowang@redhat.com>
收件人:芦志朋10108272 <mst@redhat.com>
抄送人: <qemu-devel@nongnu.org>
日 期 :2017年08月21日 11:11
主 题 :Re: [Qemu-devel] [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user







On 2017年08月21日 09:50, ZhiPeng Lu wrote:
> commit 96a3d98d2cdbd897ff5ab33427aa4cfb94077665 (vhost: don't set vring call
> if no vector) set vring call fd to -1 for drivers does not use interrupt
> at all(e.g virtio-net pmd). That patch setting vring call fd to -1 cause
> the network to not work when running dpdk in the guest. The openvswitch port
> status is down by executing the command "ovs-vsctl list interface"
> in host of running the guest. The network is ok if it doesn't set vring call fd
> to -1 in vhost_virtqueue_start.
> The patch doesn't set vring call fd to -1 for vhost-user.
>
> Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> ---
>   hw/virtio/vhost.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index 6eddb09..bb8db7d 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -1098,7 +1098,8 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
>   
>       if (k->query_guest_notifiers &&
>           k->query_guest_notifiers(qbus->parent) &&
> -        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) {
> +        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR &&
> +        vdev->use_guest_notifier_mask) {
>           file.fd = -1
>           r = dev->vhost_ops->vhost_set_vring_call(dev, &file)
>           if (r) {

Hi:

Which kind/version of vhost-user bakcend did you use? What happen if we 
don't do vhost_set_vring_call for it? Is this a bug of vhost-user 
backend instead of qemu?

Thanks

[-- Attachment #2: 24242e5637af428891c4db731e7765ad.jpg --]
[-- Type: image/jpeg, Size: 2064 bytes --]

[-- Attachment #3: 9ae3e214c17d49ed935d87c674ba3ee2.jpg --]
[-- Type: image/jpeg, Size: 6015 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] 答复: Re: [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user
  2017-08-21  3:28 [Qemu-devel] 答复: Re: [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user lu.zhipeng
@ 2017-08-21  3:34 ` Jason Wang
  0 siblings, 0 replies; 2+ messages in thread
From: Jason Wang @ 2017-08-21  3:34 UTC (permalink / raw)
  To: lu.zhipeng; +Cc: qemu-devel, mst



On 2017年08月21日 11:28, lu.zhipeng@zte.com.cn wrote:
>   if (!vdev->use_guest_notifier_mask) {
>
>          /* TODO: check and handle errors. */
>
>          vhost_virtqueue_mask(dev, vdev, idx, false)
>
>          ---------- set right  callfd
>
>      }
>
>
>
>
>      if (k->query_guest_notifiers &&
>
>          k->query_guest_notifiers(qbus->parent) &&
>
>          virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) {
>
>          file.fd = -1
>
>          r = dev->vhost_ops->vhost_set_vring_call(dev, &file)
>
> -----------set call fd to -1
>
>          if (r) {
>
>              goto fail_vector
>
>          }
>
>      }
>
>   So   the callfd of  ovs+dpdk in host  is -1.  it  can't be able  to interact with the guest.
>
>

The queue does not even an vector, so it won't generate any interrupt. 
Why callfd is still needed?

Thanks

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-21  3:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-21  3:28 [Qemu-devel] 答复: Re: [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user lu.zhipeng
2017-08-21  3:34 ` Jason Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.