Ошибка при использовании окон памяти глаголов (ibv_alloc_mw)

#infiniband #rdma #mellanox #ofed

#infiniband #rdma #mellanox #ofed

Вопрос:

Я пытаюсь использовать окна памяти, и я получаю EPERM (errno = 1) при вызове ibv_alloc_mw (с обоими типами MWS).

У меня есть карты mellanox ConnectX-3 и следующие ОФЕД:

 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
  

При запуске rping в офисе Mellanox я получаю ту же ошибку:

 librdmacm-1.1.0mlnx/examples> ./rping -s amp;
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
  

Поддерживается ли ibv_alloc_mw вообще Mellanox?

Редактировать:

Я получил доступ к карте ConnectX-4 и получил ту же ошибку. Я также вижу, что при каждой попытке запустить 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)
  

Комментарии:

1. Используете ли вы также драйвер ядра Mellanox OFED? И последняя версия прошивки?

2. ДА. У меня был включен SR-IOV, и, похоже, окна памяти плохо работают с виртуальными адаптерами. Спасибо за помощь.

Ответ №1:

При дальнейшем изучении кажется, что это связано с тем, что SR-IOV включен в узлах, которые я использую. Отключение SR-IOV позволяет выполнить эту работу.