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

Attachment: signature.asc
Description: PGP signature

Reply via email to