From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from jaguar.aricent.com (jaguar.aricent.com [180.151.2.24]) by dpdk.org (Postfix) with ESMTP id DF368592D for ; Wed, 30 Oct 2013 08:12:32 +0100 (CET) Received: from jaguar.aricent.com (localhost [127.0.0.1]) by postfix.imss71 (Postfix) with ESMTP id 5019936B27; Wed, 30 Oct 2013 12:43:06 +0530 (IST) Received: from GUREXHT01.ASIAN.AD.ARICENT.COM (gurexht01.asian.ad.aricent.com [10.203.171.136]) by jaguar.aricent.com (Postfix) with ESMTP id 3920236B64; Wed, 30 Oct 2013 12:43:06 +0530 (IST) Received: from GUREXMB01.asian.ad.aricent.com ([10.203.171.134]) by GUREXHT01.ASIAN.AD.ARICENT.COM ([10.203.171.136]) with mapi; Wed, 30 Oct 2013 12:43:06 +0530 From: Prashant Upadhyaya To: Jose Gavine Cueto Date: Wed, 30 Oct 2013 12:43:06 +0530 Thread-Topic: [dpdk-dev] rte_eth_rx_burst stops running on dpdk extlib Thread-Index: Ac7VPj1r1JugBucnTbmXZkJnPDMOewAAPy8w Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 X-TM-AS-MML: No Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] rte_eth_rx_burst stops running on dpdk extlib X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Oct 2013 07:12:33 -0000 Hi Pepe, Please also make sure that you are following the correct makefile templates= (as present in examples) when you build your app separately. If you don't, then you will naturally miss out on some flags and that can p= rove fatal because your app will see some code differently in the header fi= les of rte than what the library was built with based on the compiler flags= . Regards -Prashant From: Jose Gavine Cueto [mailto:pepedocs@gmail.com] Sent: Wednesday, October 30, 2013 12:34 PM To: Prashant Upadhyaya Cc: dev@dpdk.org Subject: Re: [dpdk-dev] rte_eth_rx_burst stops running on dpdk extlib Hi Prashant, Are you referring to the rte_* libraries ? I had actually compiled them us= ing the setup script ($(RTE_SDK)/tools/setup.sh) and then linked the PMD li= b extension I've made and then linked the pktdump eventually, before seeing= the problem. However, building it all as an app. didn't show any issue. I will try to redo the building/linking just to make sure. Thank you! On Wed, Oct 30, 2013 at 2:57 PM, Prashant Upadhyaya > wrote: Hi Pepe, How about this -- compile the libraries yourself and then link your applica= tion with them just like the original usecase where you find the problem. If this works, then the problem is with the precompiled libraries you were = picking from somewhere. Regards -Prashant -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Beh= alf Of Jose Gavine Cueto Sent: Wednesday, October 30, 2013 12:22 PM To: dev@dpdk.org Subject: Re: [dpdk-dev] rte_eth_rx_burst stops running on dpdk extlib Hi, Could someone help me ? Or at least let me know if what I'm doing (diagram above) is right with regard to using a external dpdk library ? I assume dp= dk external libraries can be treated as norma C libraries. Cheers, Pepe On Wed, Oct 30, 2013 at 8:18 AM, Jose Gavine Cueto >wrote: > Hi, > > I'm writing a very simple packet dump application that can be > described by the following diagram: > > --------------------------- > | pktdump | > ---------------------------- > | PMD lib extension | > | (extlib) | > ---------------------------- > | DPDK PMD lib | > ---------------------------- > > pktdump - very simple app. built with gcc and linked with pmd lib > extension and dpdk libs. > pmd lib extension - an extension of dpdk pmd library, which provides > some higher-level APIs dpdk pmd lib - pmd lib provided by Intel > > I have an issue where in when I run the pktdump app. it's lcore > threads stops executing at varying number of times. Sometimes it doesn't= even run. > But this only happens if I use the PMD lib extension. On the other > hand, if pktdump is directly built with pmd lib extension code while > pmd lib extension is built as an extapp, it works very well. I wonder > what's the difference, code-wise there is none, the only difference I > can see is how they are built (extapp, extlib). > > The pmd lib extension's lcore threads basically do simple forwarding > (rx > -> tx). So rte_eth_rx_burst is called when receiving packets and > rte_eth_tx_burst when transmitting packets. These runs on an lcore threa= d. > > snippet of code that runs on lcore: > > void burst_fwd(...){ > num_rx =3D rte_eth_rx_burst(...) > ... > rte_eth_tx_burst(...) > } > > Any tips on how to debug this, some quick inspections may help. Is > there some specific build options for building libraries, because this > only happens on extlib. > -- To stop learning is like to stop loving. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D Please refer to http://www.aricent.com/legal/email_disclaimer.html for important disclosures regarding this electronic communication. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D -- To stop learning is like to stop loving. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D Please refer to http://www.aricent.com/legal/email_disclaimer.html for important disclosures regarding this electronic communication. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D