From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ananyev, Konstantin" Subject: Re: [PATCHv2 0/5] ethdev: add new API to retrieve RX/TX queue information Date: Thu, 18 Jun 2015 14:17:14 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725836A1389C@irsmsx105.ger.corp.intel.com> References: <1434560084-21237-2-git-send-email-konstantin.ananyev@intel.com> <1434633528-23329-1-git-send-email-konstantin.ananyev@intel.com> <7C4248CAE043B144B1CD242D27562653454ABD61@IRSMSX104.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable To: "Walukiewicz, Miroslaw" , "dev@dpdk.org" Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 5439AC6F2 for ; Thu, 18 Jun 2015 16:17:40 +0200 (CEST) In-Reply-To: <7C4248CAE043B144B1CD242D27562653454ABD61@IRSMSX104.ger.corp.intel.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Mirek, > -----Original Message----- > From: Walukiewicz, Miroslaw > Sent: Thursday, June 18, 2015 2:31 PM > To: Ananyev, Konstantin; dev@dpdk.org > Subject: RE: [dpdk-dev] [PATCHv2 0/5] ethdev: add new API to retrieve RX/= TX queue information >=20 > Konstantin, >=20 > Is there a possibility to read information about available space in NIC q= ueue for TX. I suppose it is possible as some future addition. As I said in the commit message, I left some reserved space, so extra field= s could be added to the structure without ABI breakage. For now, I just added some static/config information for the queue, but I t= hink it is possible and plausible to have some runtime information too. >=20 > It is quite easy to compute (or even available directly) and very useful= especially for application sending multi-descriptor packets like > TCP TSO. >=20 > Now there is no access to such information and the transmit packet functi= on must be called to > be sure that there is available space. Hmm, as I said I was thinking about adding some RT information in future: number of free descriptors (from SW point of view), index of next descripto= r to process by SW, etc. But my thought it would be use by some watchdog thread to collect statistic= s/detect stall, etc. I didn't intend it to be used by IO thread.=20 I am not sure why do you need to call such function at RT? PMD wouldn't TX a packet, if there is not enough free TXDs for the whole pa= cket. >>From other side upper layer, can't always calculate correctly how many TXD = it would really need (context descriptors might be needed, etc). Plus, even if nb_tx_free=3D=3DX, in reality it could be there much more fr= ee TXDs, and SW just need to process them (and would do that at next tx_burst() call. So, why just not: ... n =3D tx_burst(..., nb_tx); if (n < nb_tx) {requeue unsent of packets;} ? Konstantin >=20 > Mirek >=20 > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Konstantin Ananyev > > Sent: Thursday, June 18, 2015 3:19 PM > > To: dev@dpdk.org > > Subject: [dpdk-dev] [PATCHv2 0/5] ethdev: add new API to retrieve RX/TX > > queue information > > > > Add the ability for the upper layer to query RX/TX queue information. > > Right now supported for: > > ixgbe, i40e, e1000 PMDs. > > > > Konstantin Ananyev (5): > > ethdev: add new API to retrieve RX/TX queue information > > i40e: add support for eth_(rxq|txq)_info_get > > ixgbe: add support for eth_(rxq|txq)_info_get > > e1000: add support for eth_(rxq|txq)_info_get > > testpmd: add new command to display RX/TX queue information > > > > app/test-pmd/cmdline.c | 48 +++++++++++++++++++++++++ > > app/test-pmd/config.c | 67 > > ++++++++++++++++++++++++++++++++++ > > app/test-pmd/testpmd.h | 2 ++ > > drivers/net/e1000/e1000_ethdev.h | 12 +++++++ > > drivers/net/e1000/em_ethdev.c | 2 ++ > > drivers/net/e1000/em_rxtx.c | 38 ++++++++++++++++++++ > > drivers/net/e1000/igb_ethdev.c | 4 +++ > > drivers/net/e1000/igb_rxtx.c | 36 +++++++++++++++++++ > > drivers/net/i40e/i40e_ethdev.c | 2 ++ > > drivers/net/i40e/i40e_ethdev.h | 5 +++ > > drivers/net/i40e/i40e_rxtx.c | 42 ++++++++++++++++++++++ > > drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++ > > drivers/net/ixgbe/ixgbe_ethdev.h | 6 ++++ > > drivers/net/ixgbe/ixgbe_rxtx.c | 42 ++++++++++++++++++++++ > > lib/librte_ether/rte_ethdev.c | 54 ++++++++++++++++++++++++++++ > > lib/librte_ether/rte_ethdev.h | 77 > > +++++++++++++++++++++++++++++++++++++++- > > 16 files changed, 440 insertions(+), 1 deletion(-) > > > > -- > > 1.8.5.3