From 793f5f4a3454b2a35c5de50feb2bd3fd970d4dd6 Mon Sep 17 00:00:00 2001 From: Alexander Kozyrev Date: Fri, 4 Feb 2022 05:19:13 +0200 Subject: [PATCH] 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 Acked-by: Viacheslav Ovsiienko --- 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..c3cc0c0f41 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 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 -- 2.39.5