[PATCH] doc: add limitation on MPRQ usage in multi-process app
Alexander Kozyrev
akozyrev at nvidia.com
Fri Feb 4 04:19:13 CET 2022
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 at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
doc/guides/nics/mlx5.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index daa7f2affb..7ac997ac27 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -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 sets
+ 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
--
2.18.2
More information about the dev
mailing list