Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS DPDK git repo: dpdk commit 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da Author: Erez Ferber Date: Wed May 24 15:01:40 2023 +0300 common/mlx5: adjust fork call with new kernel API While doing process fork() the operating system remaps all the parent process's memory to the address space of the child process and activates the Copy-on-Write mechanics - it duplicates physical pages once memory writing happens in the child process. Sometimes memory duplication is not allowed - for example, if the page contains hardware queue descriptors. To handle similar issues the rdma-core library should be prepared for forking. The ibv_fork_init() prepares the library to track all the related memory and prevent it from forking using madvise() system API. This approach allows fork, but not all the memory is forked to the child process and, application should care not to touch pages where the parent application allocated the rdma-core objects. The newer kernels propose an option of copy-on-fork for DMA pages and tracking all the memory and disabling it for the forking is no longer needed. The new API routine ibv_is_fork_initialized() should be involved to decide if library initialization for forking is required. Fixes: 0e83b8e536c1 ("net/mlx5: move rdma-core calls to separate file") Cc: stable@dpdk.org Signed-off-by: Erez Ferber Acked-by: Viacheslav Ovsiienko Testing Summary : 18 Case Done, 18 Successful, 0 Failures Testbed #1: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Testbed #2: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | n/a | | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc TestPlan: pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst asan_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/asan_smoke_test_plan.rst TestSuite: pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py asan_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_asan_smoke.py DPDK STV team