[dpdk-dev] [PATCH v2 06/23] mlx4: allow applications to partially use fork()

Adrien Mazarguil adrien.mazarguil at 6wind.com
Tue Jun 30 11:27:52 CEST 2015


From: Olga Shern <olgas at mellanox.com>

Although using the PMD from a forked process is still unsupported, this
commit makes Verbs safe enough for applications to call fork() for other
purposes.

Signed-off-by: Olga Shern <olgas at mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
---
 drivers/net/mlx4/mlx4.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 8be1574..ed68beb 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -4686,6 +4686,14 @@ rte_mlx4_pmd_init(const char *name, const char *args)
 {
 	(void)name;
 	(void)args;
+	/*
+	 * RDMAV_HUGEPAGES_SAFE tells ibv_fork_init() we intend to use
+	 * huge pages. Calling ibv_fork_init() during init allows
+	 * applications to use fork() safely for purposes other than
+	 * using this PMD, which is not supported in forked processes.
+	 */
+	setenv("RDMAV_HUGEPAGES_SAFE", "1", 1);
+	ibv_fork_init();
 	rte_eal_pci_register(&mlx4_driver.pci_drv);
 	return 0;
 }
-- 
2.1.0



More information about the dev mailing list