Hello everyone, We have had issues with our machine using IPoIB on FreeBSD with the mlx4 driver. The machine would hang on shutdown.
We traced the issue to IPoIB registering multicast groups that increase the reference count of the port in the ib_multicast client. When shutting down the machine, the kernel tore down the ib_multicast before it tore down IPoIB, causing it to wait forever for the references to disappear before it deleted the multicast client. This issue can be remedied by changing the initialisation of the IPoIB module to happen after the mlx4 driver is initialised. By doing this, all multicast groups will be cleaned up before the ib_multicast client is destroyed. See patch attached. Sponsored by: Lysator ACS Cordially, Andreas Kempe
--- sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c 2020-02-21 20:52:35.311328000 +0100 +++ sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c 2020-02-22 01:06:20.720997000 +0100 @@ -1754,7 +1754,7 @@ } } -module_init(ipoib_init_module); +module_init_order(ipoib_init_module, SI_ORDER_FOURTH); module_exit(ipoib_cleanup_module); static int
signature.asc
Description: PGP signature