From: Alexander Kozyrev Date: Fri, 4 Feb 2022 03:19:13 +0000 (+0200) Subject: doc: add mlx5 MPRQ limitation with multi-process X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=793f5f4a3454b2a35c5de50feb2bd3fd970d4dd6;p=dpdk.git 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 --- 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