On Thu, Apr 27, 2017 at 02:34:53PM +0800, 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. 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.
As I have said, we should not enable it again, because there are already few buggy QEMU releases out. We should make sure DPDK also works well with them. > Fixes: 73c8f9f69c6c("vhost: introduce reply ack feature") That commit does nothing wrong. It's QEMU being buggy. That said, I will not add such fixline. I will also use "workaround" instead of "fix" in the title. Also, this patch should be backported to stable release. So, you should add: Cc: sta...@dpdk.org Besides, please reformat you commit log a bit. For example, add space after punctuation, use paragraph as possible, etc. > > Reported-by: Loftus, Ciara <ciara.lof...@intel.com> No "," is allowed. > Signed-off-by: Zhiyong Yang <zhiyong.y...@intel.com> > --- > lib/librte_vhost/vhost_user.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/librte_vhost/vhost_user.h b/lib/librte_vhost/vhost_user.h > index 2ba22db..a3d2900 100644 > --- a/lib/librte_vhost/vhost_user.h > +++ b/lib/librte_vhost/vhost_user.h > @@ -52,7 +52,7 @@ > #define VHOST_USER_PROTOCOL_FEATURES ((1ULL << VHOST_USER_PROTOCOL_F_MQ) | \ > (1ULL << > VHOST_USER_PROTOCOL_F_LOG_SHMFD) |\ > (1ULL << VHOST_USER_PROTOCOL_F_RARP) | > \ > - (1ULL << > VHOST_USER_PROTOCOL_F_REPLY_ACK) | \ > + (0ULL << > VHOST_USER_PROTOCOL_F_REPLY_ACK) | \ > (1ULL << > VHOST_USER_PROTOCOL_F_NET_MTU)) I think you might want to add a simple comment here, something like /* * disable REPLY_ACK feature to workaround the buggy QEMU implementation. * Proved buggy QEMU includes v2.7 - v2.9. */ So, please send v2? --yliu