使用动词记忆 Windows (ibv_alloc_mw) 时出错

Error using verbs Memory Windows (ibv_alloc_mw)

我正在尝试使用内存 windows 并且在调用 [= 时得到 EPERM (errno=1) 44=](两种类型的 MW)。

我有 mellanox ConnectX-3 卡和以下 OFED:

ofed_info | head -n 1
MLNX_OFED_LINUX-3.2-2.0.0.0 (OFED-3.2-2.0.0):

看来我的卡应该支持这个功能:

ibv_devinfo -v | grep EXP_MW
EXP_MW_TYPE_2B
EXP_MW_TYPE_2B

当在 Mellanox OFED 中 运行ning rping 时,我得到同样的错误:

librdmacm-1.1.0mlnx/examples> ./rping -s &
librdmacm-1.1.0mlnx/examples> ./rping -c -a 10.10.49.87 -w 1
rdma_buf alloc_mw failed
rping_setup_buffers failed: -12

librdmacm-1.1.0mlnx/examples> ./rping -c -a 10.10.49.87 -w 2
rdma_buf alloc_mw failed
rping_setup_buffers failed: -12

Mellanox 是否支持 ibv_alloc_mw?

编辑:

我访问了 ConnectX-4 卡并遇到了同样的错误。我还可以看到,每当我尝试使用内存 window 选项 运行 rping 时,都会记录错误:

dmesg | tail -n 2
[9349257.246854] mlx4_core 0000:02:00.0: vhcr command 0xd slave:0in_param 0xe26b4000 in_mod=0x110 op_mod=0x0 failed with error:0, status -1
[9349257.246856] mlx4_core 0000:02:00.0: SW2HW_MPT failed (-1)

经过进一步探索,这似乎是由于在我使用的节点中启用了 SR-IOV。禁用 SR-IOV 使这项工作。