From: <lu.zhipeng@zte.com.cn>
To: jasowang@redhat.com
Cc: mst@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] 答复: Re: [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user
Date: Mon, 21 Aug 2017 11:28:10 +0800 (CST) [thread overview]
Message-ID: <201708211128100789834@zte.com.cn> (raw)
[-- 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 --]
next reply other threads:[~2017-08-21 3:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-21 3:28 lu.zhipeng [this message]
2017-08-21 3:34 ` [Qemu-devel] 答复: Re: [PATCH] vhost: don't set vring call fd to -1 invhost_virtqueue_start for vhost-user Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201708211128100789834@zte.com.cn \
--to=lu.zhipeng@zte.com.cn \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.