Snipped

> Dikshant Chitkara <dchitk...@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`


Reply via email to