mlx4: allow application to partially fork
authorOlga Shern <olgas@mellanox.com>
Tue, 30 Jun 2015 09:27:52 +0000 (11:27 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 1 Jul 2015 08:55:40 +0000 (10:55 +0200)
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@mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
drivers/net/mlx4/mlx4.c

index 8be1574..ed68beb 100644 (file)
@@ -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;
 }