[dpdk-dev] rte_eth_rx_burst stops running on dpdk extlib

Jose Gavine Cueto pepedocs at gmail.com
Wed Oct 30 01:18:28 CET 2013


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 thread.

snippet of code that runs on lcore:

void burst_fwd(...){
 num_rx = 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.


More information about the dev mailing list