查询RDMA网卡逻辑Port与物理设备映射的几种方式

通过ibv_devicesibv_devinfo输出的device,例如mlx4_0,对应的是RDMA网卡上的某个Port。mlx4_0具体对应主机上的哪个网卡(例如eth0)、对应哪个PCIe设备,可以通过以下方式查询。

逻辑Port与主机网卡的映射

1、如果安装了MLNX_OFED,可以通过ibdev2netdev命令查询。

# ibdev2netdev  
mlx4_0 port 1 ==> eth2 (Up)  
mlx4_0 port 2 ==> ib0 (Down)

2、如果按照了MST (Mellanox Software Tools),可以通过mst命令查询

# mst start  
Starting MST (Mellanox Software Tools) driver set  
Loading MST PCI module - Success  
Loading MST PCI configuration module - Success  
Create devices  
# mst status -v  
MST modules:  
------------  
    MST PCI module loaded  
    MST PCI configuration module loaded  
PCI devices:  
------------  
DEVICE_TYPE             MST                           PCI       RDMA    NET                       NUMA  
ConnectX3(rev:1)        /dev/mst/mt4099_pciconf0  
ConnectX3(rev:1)        /dev/mst/mt4099_pci_cr0       0a:00.0   **mlx4_0**  net-**ib0**,net-**eth2**          0

3、如果使用Inbox Driver,可以通过如下命令查询,其中eth0可以换成其他网卡,例如eth2ib0

# cat /sys/class/net/eth0/device/infiniband_verbs/uverbs0/ibdev
mlx4_0

逻辑Port与PCI设备的映射

在找到逻辑Port对应的主机网卡后,通过ethtool -i就可以查询到网卡具体的PCI ID,然后通过lspci找到具体的PCI设备。例如:

# cat /sys/class/net/enp129s0f1/device/infiniband_verbs/uverbs1/ibdev
qedr1
# ethtool -i enp129s0f1
driver: qede
version: 8.33.0.20
firmware-version: mfw 8.23.11.0 storm 8.37.2.0
expansion-rom-version:
bus-info: 0000:81:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: yes
# lspci -v | grep 81:00.1
81:00.1 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)