From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <simon.kagstrom@netinsight.net> Received: from ernst.netinsight.se (ernst.netinsight.se [194.16.221.21]) by dpdk.org (Postfix) with SMTP id D8F948D90 for <dev@dpdk.org>; Mon, 16 May 2016 12:33:01 +0200 (CEST) Received: from [10.100.1.152] (unverified [10.100.1.152]) by ernst.netinsight.se (EMWAC SMTPRS 0.83) with SMTP id <B0033488816@ernst.netinsight.se>; Mon, 16 May 2016 12:33:16 +0200 To: "Pattan, Reshma" <reshma.pattan@intel.com>, "dev@dpdk.org" <dev@dpdk.org>, "thomas.monjalon@6wind.com" <thomas.monjalon@6wind.com> References: <20160516113349.7d2a992f@miho> <3AEA2BF9852C6F48A459DA490692831F0102622D@IRSMSX109.ger.corp.intel.com> From: =?UTF-8?Q?Simon_K=c3=a5gstr=c3=b6m?= <simon.kagstrom@netinsight.net> Message-ID: <5739A1D4.6010003@netinsight.net> Date: Mon, 16 May 2016 12:32:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <3AEA2BF9852C6F48A459DA490692831F0102622D@IRSMSX109.ger.corp.intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH / RFC ] ethdev: Allow rte_eth_dev_configure with zero RX/TX queues X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> X-List-Received-Date: Mon, 16 May 2016 10:33:02 -0000 On 2016-05-16 12:24, Pattan, Reshma wrote: >> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index >> a31018e..5481d45 100644 >> --- a/lib/librte_ether/rte_ethdev.c >> +++ b/lib/librte_ether/rte_ethdev.c >> @@ -944,11 +944,6 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t >> nb_rx_q, uint16_t nb_tx_q, >> */ >> (*dev->dev_ops->dev_infos_get)(dev, &dev_info); >> >> - if (nb_rx_q == 0 && nb_tx_q == 0) { >> - RTE_PMD_DEBUG_TRACE("ethdev port_id=%d both rx and tx >> queue cannot be 0\n", port_id); >> - return -EINVAL; >> - } > > This was added to allow devices, at least with one direction (RX/TX) supported. As, devices with both directions disabled doesn't make sense right? Well, not for running them, no. But this is a part of the shutdown procedure between tests (I should have been more clear I guess). As far as I can see in the code, rte_eth_dev_configure() is the only point which actually calls {rx,tx}_queue_release(), so without this call, we can't get the memory pool full again. So basically, our test suite looks like rte_eth_dev_configure(port, 32, 32); // For example <run a test> rte_eth_dev_configure(port, 0, 0); Check that the mempool is full again rte_eth_dev_configure(port, 32, 32); <run another test> rte_eth_dev_configure(port, 0, 0); Check that the mempool is full again ... And without this fix, the mempool check fails since a few of the buffers are tied up in the RX descriptor ring of the PMD. // Simon