From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 4A9E3293B; Fri, 8 Dec 2017 03:31:07 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Dec 2017 18:31:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,375,1508828400"; d="scan'208";a="10536183" Received: from deepin-15.sh.intel.com (HELO debian-xvivbkq) ([10.67.104.165]) by orsmga003.jf.intel.com with ESMTP; 07 Dec 2017 18:31:04 -0800 Date: Fri, 8 Dec 2017 10:30:34 +0800 From: Tiwei Bie To: Kevin Traynor Cc: yliu@fridaylinux.org, maxime.coquelin@redhat.com, dev@dpdk.org, antonio.fischetti@intel.com, stable@dpdk.org, "Kavanagh, Mark B" Message-ID: <20171208023034.4f5u3fujmupraaia@debian-xvivbkq> References: <20171207053059.19487-1-tiwei.bie@intel.com> <20171207053059.19487-2-tiwei.bie@intel.com> <9407e2ce-8b2b-9a9d-a493-1757609184a9@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <9407e2ce-8b2b-9a9d-a493-1757609184a9@redhat.com> User-Agent: NeoMutt/20170609 (1.8.3) Subject: Re: [dpdk-dev] [PATCH 1/5] net/virtio: fix vector Rx break caused by rxq flushing 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: Fri, 08 Dec 2017 02:31:08 -0000 On Thu, Dec 07, 2017 at 04:00:57PM +0000, Kevin Traynor wrote: > On 12/07/2017 05:30 AM, Tiwei Bie wrote: > > The vector Rx will be broken if backend has consumed all > > the descs in the avail ring before the device is started. > > Because in current implementation, vector Rx will return > > immediately without refilling the avail ring if the used > > ring is empty. So we have to refill the avail ring after > > flushing the elements in the used ring for vector Rx. > > > > Besides, vector Rx has a different ring layout assumption > > and mbuf management. So we need to handle it differently. > > > > Hi Tiwei, does the issue only occur with the vector rx? How about if the > simple rx is used because VIRTIO_NET_F_MRG_RXBUF is set? Hi Kevin, Yes, you are right! The issue only occurs with the vector Rx. The vector Rx (i.e. the simple Rx) won't be used if VIRTIO_NET_F_MRG_RXBUF is set. Best regards, Tiwei Bie