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
[root@flexran3 x86_64-native-linuxapp-icc]# ./app/dpdk-pdump -d librte_pmd_i40e.so -d librte_pmd_pcap.so -- --pdump 'port=0,queue=*,tx-dev=/opt/dpdk-18.08_pdump/capture.pcap' EAL: Detected 40 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_242298_bf92949544f44 EAL: Probing VFIO support... EAL: PCI device 0000:41:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:41:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:86:00.0 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.1 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.2 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.3 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:88:00.0 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e EAL: PCI device 0000:88:00.1 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e Port 1 MAC: 00 00 00 01 02 03 ^C Signal 2 received, preparing to exit... ##### PDUMP DEBUG STATS ##### -packets dequeued: 32 -packets transmitted to vdev: 32 -packets freed: 0 [root@flexran3 x86_64-native-linuxapp-icc]#
[root@flexran3 x86_64-native-linuxapp-icc]# ./app/testpmd -c 0xf0 -n 4 -- -i --port-topology=chained EAL: Detected 40 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Probing VFIO support... EAL: PCI device 0000:41:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:41:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:86:00.0 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.1 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.2 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.3 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:88:00.0 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e EAL: PCI device 0000:88:00.1 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e Interactive-mode selected testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=171456, size=2176, socket=1 testpmd: preferred mempool ops selected: ring_mp_mc Configuring Port 0 (socket 1) Port 0: 3C:FD:FE:CD:34:A4 Checking link statuses... Done testpmd> Port 0: LSC event testpmd> testpmd> testpmd> start tx_first io packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP over anonymous pages disabled Logical Core 5 (socket 0) forwards packets on 1 streams: RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00 io packet forwarding packets/burst=32 nb forwarding cores=1 - nb forwarding ports=1 port 0: RX queue number: 1 Tx queue number: 1 Rx offloads=0x1000 Tx offloads=0x10000 RX queue: 0 RX desc=256 - RX free threshold=32 RX threshold registers: pthresh=8 hthresh=8 wthresh=0 RX Offloads=0x0 TX queue: 0 TX desc=256 - TX free threshold=32 TX threshold registers: pthresh=32 hthresh=0 wthresh=0 TX offloads=0x0 - TX RS bit threshold=32 testpmd> stop Telling cores to stop... Waiting for lcores to finish... ---------------------- Forward statistics for port 0 ---------------------- RX-packets: 0 RX-dropped: 0 RX-total: 0 TX-packets: 32 TX-dropped: 0 TX-total: 32 ---------------------------------------------------------------------------- +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++ RX-packets: 0 RX-dropped: 0 RX-total: 0 TX-packets: 32 TX-dropped: 0 TX-total: 32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Done. testpmd>
[root@flexran3 x86_64-native-linux-icc]# ./app/dpdk-pdump -d librte_pmd_i40e.so -d librte_pmd_pcap.so -- --pdump 'port=0,queue=*,tx-dev=/mnt/data/dchitkara/DPDK_2020_01_30_x86/capture.pcap' EAL: Detected 40 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_230173_27baa83cf2e36 EAL: Probing VFIO support... EAL: PCI device 0000:41:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:41:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:86:00.0 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.1 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.2 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.3 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:88:00.0 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e EAL: PCI device 0000:88:00.1 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e EAL: Failed to hotplug add device Inside rte_dev_probe,req.result = -14 EAL: Error - exiting with code: 1 Cause: vdev creation failed [root@flexran3 x86_64-native-linux-icc]#
[root@flexran3 x86_64-native-linux-icc]# ./app/testpmd -c 0xf0 -n 4 -- -i --port-topology=chained EAL: Detected 40 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Probing VFIO support... EAL: PCI device 0000:41:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:41:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:86:00.0 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.1 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.2 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:86:00.3 on NUMA socket 1 EAL: probe driver: 8086:1572 net_i40e EAL: PCI device 0000:88:00.0 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e EAL: PCI device 0000:88:00.1 on NUMA socket 1 EAL: probe driver: 8086:158b net_i40e Interactive-mode selected testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=171456, size=2176, socket=1 testpmd: preferred mempool ops selected: ring_mp_mc Configuring Port 0 (socket 1) Port 0: 3C:FD:FE:CD:34:A4 Checking link statuses... Done testpmd> Port 0: link state change event testpmd> testpmd> testpmd> EAL: failed to parse device "vdev:net_pcap_tx_0" EAL: Failed to hotplug add device on primary testpmd> testpmd>