Support RDMA devices without Implicit ODP using mlockall()
UPD: Seems it won't work because ibv_reg_mr() takes a permissions argument and doesn't allow more permissions than allowed by the kernel for memory mappings. So the only way to register all memory is probably to iterate over /proc/PID/maps... :) Mellanox docs mention that older MLNX_OFED emulated ODP, so maybe it's still possible to use it, but it's not confirmed.
This commit is contained in:
+20
-11
@@ -48,19 +48,28 @@
|
||||
type: string
|
||||
info: |
|
||||
RDMA device name to use for Vitastor OSD communications (for example,
|
||||
"rocep5s0f0"). Please note that Vitastor RDMA requires Implicit On-Demand
|
||||
Paging (Implicit ODP) and Scatter/Gather (SG) support from the RDMA device
|
||||
to work. For example, Mellanox ConnectX-3 and older adapters don't have
|
||||
Implicit ODP, so they're unsupported by Vitastor. Run `ibv_devinfo -v` as
|
||||
root to list available RDMA devices and their features.
|
||||
"rocep5s0f0"). Please note that if your RDMA device doesn't support
|
||||
Implicit ODP (Implicit On-Demand Paging) then all Vitastor OSDs and clients
|
||||
will have to use mlockall() to lock all application memory to use RDMA.
|
||||
In case of the native Vitastor QEMU driver with RDMA, all virtual machine
|
||||
memory will be locked if your RDMA device doesn't support Implicit ODP.
|
||||
|
||||
Notably, Mellanox ConnectX-3 and older adapters don't support Implicit ODP,
|
||||
while ConnectX-4 and newer do. Run `ibv_devinfo -v` as root to list
|
||||
available RDMA devices and their features.
|
||||
info_ru: |
|
||||
Название RDMA-устройства для связи с Vitastor OSD (например, "rocep5s0f0").
|
||||
Имейте в виду, что поддержка RDMA в Vitastor требует функций устройства
|
||||
Implicit On-Demand Paging (Implicit ODP) и Scatter/Gather (SG). Например,
|
||||
адаптеры Mellanox ConnectX-3 и более старые не поддерживают Implicit ODP и
|
||||
потому не поддерживаются в Vitastor. Запустите `ibv_devinfo -v` от имени
|
||||
суперпользователя, чтобы посмотреть список доступных RDMA-устройств, их
|
||||
параметры и возможности.
|
||||
Имейте в виду, что если ваше устройство не поддерживает Implicit ODP
|
||||
(Implicit On-Demand Paging), то все OSD и клиенты Vitastor будут вынуждены
|
||||
блокировать всю память приложения с помощью mlockall(), чтобы задействовать
|
||||
RDMA. В случае нативного QEMU-драйвера это будет означать, что при
|
||||
использовании RDMA на устройстве без поддержки Implicit ODP блокироваться
|
||||
от выгрузки будет вся память виртуальных машин.
|
||||
|
||||
В случае с адаптерами Mellanox Implicit ODP поддерживается начиная с
|
||||
ConnectX-4. ConnectX-3 и более старые адаптеры не поддерживают Implicit ODP.
|
||||
Чтобы посмотреть список своих RDMA-устройств и их возможностей, запустите
|
||||
`ibv_devinfo -v` от имени суперпользователя.
|
||||
- name: rdma_port_num
|
||||
type: int
|
||||
default: 1
|
||||
|
||||
Reference in New Issue
Block a user