Hi
I am trying to bind DPDK with the MLX(mlx5_core). On running the application which uses DPDK API rte_eth_dev_count_avail() returns 0 on the MLX5 NIC card.
dpdk-devbind.py -s says that the
interface is bound to mlx5_core( and not binding to igb_uio)
1.RDMA packages was installed from Oracle Linux - https://docs.oracle.com/cd/E93554_01/E95779/html/uek5_install_ofed.html
- MFT tools were installed from Mellanox.
3.DPDK version - 18.11 compiled with CONFIG_RTE_LIBRTE_MLX5_PMD=y
Below are the commands:
# lsmod | grep mlx5
mlx5_ib 196608 0
ib_core 233472 11 rdma_cm,ib_ipoib,resilient_rdmaip,rds_rdma,iw_cm,ib_umad,i40iw,rdma_ucm,ib_uverbs,mlx5_ib,ib_cm
mlx5_core 507904 1 mlx5_ib
mlxfw 20480 1 mlx5_core
ptp 20480 3 i40e,tg3,mlx5_core
# lsmod | grep ib_
ib_umad 24576 0
ib_ipoib 135168 1 resilient_rdmaip
ib_uverbs 110592 1 rdma_ucm
ib_cm 69632 3 rdma_cm,ib_ipoib,rds_rdma
ib_core 233472 11 rdma_cm,ib_ipoib,resilient_rdmaip,rds_rdma,iw_cm,ib_umad,i40iw,rdma_ucm**,ib_uverbs**,mlx5_ib,ib_cm
#mst status
MST modules:
MST PCI module is not
loaded
MST PCI configuration
module loaded
MST devices:
/dev/mst/mt4115_pciconf0 -
PCI configuration cycles access.
domain:bus:dev.fn=0000:08:00.0
addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
Chip
revision is: 00
# ibv_devinfo
hca_id: mlx5_0
transport: InfiniBand
(0)
fw_ver: 12.25.1020
node_guid: 506b:4b03:00db:fe0a
sys_image_guid: 506b:4b03:00db:fe0a
vendor_id: 0x02c9
vendor_part_id: 4115
hw_ver: 0x0
board_id: MT_2150110033
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE
(4)
max_mtu: 4096
(5)
active_mtu: 1024
(3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet
hca_id: mlx5_1
transport: InfiniBand
(0)
fw_ver: 12.25.1020
node_guid: 506b:4b03:00db:fe0b
sys_image_guid: 506b:4b03:00db:fe0a
vendor_id: 0x02c9
vendor_part_id: 4115
hw_ver: 0x0
board_id: MT_2150110033
phys_port_cnt: 1
port: 1
state: PORT_DOWN
(1)
max_mtu: 4096
(5)
active_mtu: 1024
(3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet
# mlxconfig -d /dev/mst/mt4115_pciconf0 q
Output attached
#
/var/cache/ocsm/dpdk/dpdk-18.11/usertools/dpdk-devbind.py -s
Network devices using kernel
driver
===================================
0000:02:00.0 'NetXtreme BCM5720
Gigabit Ethernet PCIe 165f’ if=em1 drv=tg3 unused=igb_uio Active
0000:02:00.1 'NetXtreme BCM5720
Gigabit Ethernet PCIe 165f’ if=em2 drv=tg3 unused=igb_uio
0000:08:00.0 'MT27700 Family [ConnectX-4]
1013’ if=p2p1 drv=mlx5_core unused=igb_uio
0000:08:00.1 'MT27700 Family
[ConnectX-4] 1013’ if=p2p2 drv=mlx5_core unused=igb_uio
0000:41:00.0 'Ethernet Controller
X710 for 10GbE SFP+ 1572’ if=p1p1 drv=i40e unused=igb_uio
0000:41:00.1 'Ethernet Controller
X710 for 10GbE SFP+ 1572’ if=p1p2 drv=i40e unused=igb_uio
However testpmd works fine here;
# ./testpmd -l 8-15 -n 4 -w 08:00.0 -w 08:00.1 – --rxq=2 --txq=2 -i
EAL: Detected 32 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support…
EAL: VFIO support initialized
EAL: PCI device 0000:08:00.0 on NUMA socket 0
EAL: probe driver: 15b3:1013 net_mlx5
EAL: PCI device 0000:08:00.1 on NUMA socket 0
EAL: probe driver: 15b3:1013 net_mlx5
Interactive-mode selected
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=203456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc
Configuring Port 0 (socket 0)
Port 0: 50:6B:4B:DB:FE:0A
Configuring Port 1 (socket 0)
Port 1: 50:6B:4B:DB:FE:0B
Checking link statuses…
Done
Is anything missing for DPDK APIs rte_eth_dev_count_avail() not working here which is blocking DPDK application.
Guidance to resolve from this blocking issue is much appreciated.
Thanks in advance
Output_mlxconfig.txt (8.04 KB)