From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: "Zhiyong Yang" <zhiyong.yang@intel.com>,
dev@dpdk.org, ciara.loftus@intel.com,
"Marc-André Lureau" <mlureau@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH] vhost: fix MQ fails to startup
Date: Fri, 28 Apr 2017 10:25:58 +0800 [thread overview]
Message-ID: <20170428022558.GM11512@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <0bb0c833-1178-c587-8085-12137ebd91d5@redhat.com>
On Thu, Apr 27, 2017 at 10:52:20AM +0200, Maxime Coquelin wrote:
>
>
> On 04/27/2017 10:20 AM, Yuanhan Liu wrote:
> >On Thu, Apr 27, 2017 at 09:56:47AM +0200, Maxime Coquelin wrote:
> >>Hi Zhiyong,
> >>
> >>+Marc-André
> >>
> >>On 04/27/2017 08:34 AM, Zhiyong Yang wrote:
> >>>vhost since dpdk17.02 + qemu2.7 and above will cause failures of
> >>>new connection when negotiating to set MQ. (one queue pair works
> >>>well).Because there exist some bugs in qemu code when introducing
> >>>VHOST_USER_PROTOCOL_F_REPLY_ACK to qemu. when dealing with the vhost
> >>>message VHOST_USER_SET_MEM_TABLE for the second time, qemu indeed
> >>>doesn't send the messge (The message needs to be sent only once)but
> >>>still will be waiting for dpdk's reply ack, then, qemu is always
> >>>freezing. DPDK code works in the right way.
> >>
> >>I'm looking at Qemu's vhost_user_set_mem_table() function, but fail to
> >>see how it could wait for the reply-ack if it didn't send the
> >>VHOST_USER_SET_MEM_TABLE request before.
> >>
> >>>But the feature
> >>>VHOST_USER_PROTOCOL_F_REPLY_ACK has to be disabled by default at the
> >>>dpdk side in order to avoid the feature support of DPDK + qemu at
> >>>the same time. if doing like that, MQ can works well. Once Qemu bugs
> >>>have been fixed and upstreamed, we can enable it.
> >>
> >>The problem is for DPDK to detect whether bug is fixed in Qemu.
> >>Maybe only way would be to have a new protocol feature flag, which is
> >>not really its role.
> >
> >Wouldn't that be an overkill, judging that REPLY_ACK is not a must
> >feature?
>
> Yes, maybe. But it was introduced to fix (possible) race conditions:
> https://lists.gnu.org/archive/html/qemu-devel/2016-07/msg06173.html
But AFAIK, that commit has been reverted:
commit 94c9cb31c04737f86be29afefbff401cd23bc24d
Author: Michael S. Tsirkin <mst@redhat.com>
Date: Mon Aug 15 16:35:24 2016 +0300
Revert "vhost-user: Attempt to fix a race with set_mem_table."
This reverts commit 28ed5ef16384f12500abd3647973ee21b03cbe23.
I still think it's the right thing to do, but
tests have been failing sporadically.
Revert for now, and hope to fix it before the release.
>
> Note that I planned to use this feature for the device IOTLB
> implementation to let the backend decide whether it wants the IOTLB
> misses synchronous or asynchronous. But I can still change the protocol
> spec to make this behavior specific to this request.
Maybe we could introduce a version message? With that, we could tell
whether the frontend has fixed the known bug or not.
Note that we already has the "version" info in current vhost-user spec.
It's just 2 bits in the message "flag" field though, which is not quite
enough.
--yliu
next prev parent reply other threads:[~2017-04-28 2:29 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-27 6:34 [PATCH] vhost: fix MQ fails to startup Zhiyong Yang
2017-04-27 7:41 ` Loftus, Ciara
2017-04-27 7:56 ` Maxime Coquelin
2017-04-27 8:05 ` Maxime Coquelin
2017-04-27 8:24 ` Yang, Zhiyong
2017-04-27 8:32 ` Maxime Coquelin
2017-04-27 8:20 ` Yuanhan Liu
2017-04-27 8:52 ` Maxime Coquelin
2017-04-28 2:25 ` Yuanhan Liu [this message]
2017-04-28 7:23 ` Maxime Coquelin
2017-04-28 7:35 ` Yuanhan Liu
2017-04-28 7:39 ` Yuanhan Liu
2017-04-28 7:57 ` Maxime Coquelin
2017-04-28 8:00 ` Yuanhan Liu
2017-04-27 8:12 ` Yuanhan Liu
2017-04-27 8:32 ` Yang, Zhiyong
2017-04-27 9:41 ` [PATCH v2] vhost: workaround " Zhiyong Yang
2017-04-27 10:00 ` Maxime Coquelin
2017-04-28 4:29 ` Yuanhan Liu
2017-05-10 2:07 ` Yang, Zhiyong
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=20170428022558.GM11512@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=ciara.loftus@intel.com \
--cc=dev@dpdk.org \
--cc=maxime.coquelin@redhat.com \
--cc=mlureau@redhat.com \
--cc=mst@redhat.com \
--cc=zhiyong.yang@intel.com \
/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.