[dpdk-dev] DPDK PDUMP Issue
Varghese, Vipin
vipin.varghese at intel.com
Wed Jul 22 06:08:02 CEST 2020
Snipped
> Dikshant Chitkara <dchitkara at Airspan.com> wrote:
>
> > Hi Team,
> >
> > We are facing an issue w.r.t to using DPDK PDUMP utility and want to check if
> you can help us in this regard.
> >
> > This issue is specific to DPDK 19.05 version or may be newer versions and
> was not found on DPDK 18.08 version.
> >
> > The issue is that when we built DPDK in shared library mode and try to run
> PDUMP we get following error on PDUMP console:
> >
> > EAL: Failed to hotplug add device
> > EAL: Error - exiting with code: 1
> > Cause: vdev creation failed
> >
> > On Debugging above error message, I found that inside rte_dev_probe()
> function in the file lib/librte_eal/common/eal_common_dev.c , req.result = -
> 14 which is non-zero value and points to enum EFAULT (Bad address) value,
> thus leading to above error.
> >
> > However, when I ran PDUMP in DPDK 18.08, I did not observe any such issue
> and it worked fine.
> >
> > DPDK was built with following flags set in config/common_base file:
> >
> > CONFIG_RTE_LIBRTE_PMD_PCAP=y
> > CONFIG_RTE_LIBRTE_PDUMP=y
> >
> > I ran PDUMP with testpmd as primary application and was trying to send
> some traffic on the Ethernet dpdk port using testpmd and capture it using
> pdump.
> >
> > Attached are the logs for both testpmd and pdump in both DPDK19_05 and
> DPDK_18_08 version for your reference.
> >
> > Let us know if you can help in this regard.
> >
> > Thanks,
> > Dikshant
> >
>
> Pdump runs as secondary process, what is your primary process.
> Is the secondary process using the same exact versions of DPDK and libraries as
> the primary process?
> The secondary process needs access to the same devices and drivers as the
> primary process to work.
Based on the log files shared, I have made assumptions as
1. Primary: testpmd
2. DPDK version: 19.05
3. SHARED LIB in .config: yes
4. export LD_LIBRARY_PATH: yes
Using arguments passed in primary, I faced error
```
EAL: Error - exiting with code: 1
Cause: Creation of mbuf pool for socket 0 failed: Invalid argument
Cause: Mempool creation failed: Invalid argument
```
Hence had to modify with ` -d librte_mempool_ring.so`. Using arguments passed in secondary, I faced similar error too.
With these corrections, I am able to get similar error shared as
```
EAL: failed to parse device "vdev:net_pcap_tx_0"
EAL: Failed to hotplug add device on primary
EAL: Error - exiting with code: 1
Cause: vdev creation failed
```
Checking the testpmd Makefile, it is narrowed down to missing PCAP_PMD build factor. I rebuild testpmd with ` LD_FLAGS="-lrte_pmd_pcap" make` and re-ran the same. With this I can get it working properly.
Ideally there should had been an entry in Makefile as
```
ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
LDLIBS += -lrte_pmd_pcap
endif
```
reference: This is similar to the error and solution provided in ` https://stackoverflow.com/questions/62795017/dpdk-pdump-failed-to-hotplug-add-device/62869287#62869287`
More information about the dev
mailing list