doc: add mlx5 MPRQ limitation with multi-process

MPRQ cannot be used in multi-process applications because of
externally attached MPRQ buffers. A callback is registered by
a primary process to free MPRQ buffers once they are no longer
needed. But this information is shared among all the processes.
The virtual address of the mlx5_mprq_buf_free_cb function is
different in a secondary process, which leads to a segmentation
fault. Document that MPRQ is not supported in a multi-process
app, since there is no way to find out if this is the one.

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
This commit is contained in:
Alexander Kozyrev 2022-02-04 05:19:13 +02:00 committed by Raslan Darawsheh
parent 7cad3dc312
commit 793f5f4a34

View File

@ -138,6 +138,9 @@ Limitations
- For secondary process:
- Forked secondary process not supported.
- MPRQ is not supported. Callback to free externally attached MPRQ buffer is set
in a primary process, but has a different virtual address in a secondary process.
Calling a function at the wrong address leads to a segmentation fault.
- External memory unregistered in EAL memseg list cannot be used for DMA
unless such memory has been registered by ``mlx5_mr_update_ext_mp()`` in
primary process and remapped to the same virtual address in secondary