From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id BD4F4CFA0 for ; Thu, 27 Apr 2017 09:56:51 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F1A06C04B942; Thu, 27 Apr 2017 07:56:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com F1A06C04B942 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=maxime.coquelin@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com F1A06C04B942 Received: from [10.36.112.43] (ovpn-112-43.ams2.redhat.com [10.36.112.43]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 742AD99441; Thu, 27 Apr 2017 07:56:49 +0000 (UTC) To: Zhiyong Yang , dev@dpdk.org Cc: yuanhan.liu@linux.intel.com, ciara.loftus@intel.com, =?UTF-8?Q?Marc-Andr=c3=a9_Lureau?= References: <1493274893-40764-1-git-send-email-zhiyong.yang@intel.com> From: Maxime Coquelin Message-ID: <57212715-6192-dba2-418a-2418a5d14953@redhat.com> Date: Thu, 27 Apr 2017 09:56:47 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <1493274893-40764-1-git-send-email-zhiyong.yang@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 27 Apr 2017 07:56:51 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH] vhost: fix MQ fails to startup X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Apr 2017 07:56:52 -0000 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. > Fixes: 73c8f9f69c6c("vhost: introduce reply ack feature") > > Reported-by: Loftus, Ciara > Signed-off-by: Zhiyong Yang > --- > 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)) > > typedef enum VhostUserRequest { > Cheers, Maxime