我正在尝试将dpdk-pdump与dpdk-stable-18.02.1一起使用。
我的配置:
CONFIG_RTE_LIBRTE_BNX2X_PMD=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=y
CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=y
CONFIG_RTE_LIBRTE_PMD_PCAP=y
CONFIG_RTE_LIBRTE_PDUMP=y
将设备绑定到DPDK:
Network devices using DPDK-compatible driver
============================================
0000:03:00.1 'NetXtreme II BCM57810 10 Gigabit Ethernet 168e' drv=igb_uio unused=vfio-pci
我首先开始主要流程:
# ./testpmd -c 3 -n 4 -- -i --total-num-mbufs=16384 --port-topology=chained
EAL: Detected 32 lcore(s)
EAL: Multi-process socket /var/run/.rte_unix
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:03:00.0 on NUMA socket 0
EAL: probe driver: 14e4:168e net_bnx2x
EAL: PCI device 0000:03:00.1 on NUMA socket 0
EAL: probe driver: 14e4:168e net_bnx2x
Interactive-mode selected
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=16384, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
rte_mempool_ops_get_capabilities: Function not supported
rte_mempool_ops_register_memory_area: Function not supported
[...]
Configuring Port 0 (socket 0)
PMD: bnx2x_interrupt_action(): Interrupt handled
PMD: bnx2x_interrupt_action(): Interrupt handled
PMD: bnx2x_interrupt_action(): Interrupt handled
Port 0: C4:34:6B:B0:EA:64
Checking link statuses...
Done
PMD: bnx2x_interrupt_action(): Interrupt handled
testpmd>
但是,辅助pdump进程失败。
# ./dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=./capture.pcap'
EAL: Detected 32 lcore(s)
EAL: Multi-process socket /var/run/.rte_unix_14636_fe8ed726aadaf
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel.
EAL: This may cause issues with mapping memory into secondary processes
EAL: PCI device 0000:03:00.0 on NUMA socket 0
EAL: probe driver: 14e4:168e net_bnx2x
EAL: PCI device 0000:03:00.1 on NUMA socket 0
EAL: probe driver: 14e4:168e net_bnx2x
dpdk-pdump: /root/dpdk-stable-18.02.1/drivers/net/bnx2x/bnx2x_ethdev.c:563: bnx2x_common_dev_init: Assertion `sc->bar[0].base_addr' failed.
Aborted (core dumped)
我错过了什么吗?请给我一些信息来理解这个问题。
答案 0 :(得分:-1)
我发现我可以使用ixgbe驱动程序运行dpdk-pdump。
在比较bnx2x_ethdev.c
和ixgbe_ethdev.c
之后,我发现bnx2x不支持多进程:
https://dpdk.org/doc/guides/nics/overview.html
由于dpdk-pdump作为辅助进程运行,似乎无法使用bnx2x运行。