SoftRoCE / rxe-dev

Development Repository for RXE
Other
127 stars 55 forks source link

Issue with IPv6 UDP Tunnel when rxe is built into kernel #53

Open sbates130272 opened 7 years ago

sbates130272 commented 7 years ago

Hi

Not sure if this is a major issue but I did notice than when I build my kernel with the RXE module built-in that it would fail to load at boot (on a VM) because it was failing to setup a IPv6 UDP tunnel. The git diff below resolved my issue for me.

If I build RXE as a module and load it after boot then I don't see an issue so I suspect this is an ordering issue and RXE is trying to setup the tunnel before IPv6 services are up and running?

Stephen

batesste@cgy1-donard:~/kernels/linux$ git diff diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c index 0b8d2ea..d92d0b4 100644 --- a/drivers/infiniband/sw/rxe/rxe_net.c +++ b/drivers/infiniband/sw/rxe/rxe_net.c @@ -668,13 +668,13 @@ int rxe_net_init(void)

    spin_lock_init(&dev_list_lock);
yonatanco commented 7 years ago

thanks. we will reproduce this in our lab and solve this.

yonatanco commented 7 years ago

BTW we recently pushed several fixes to upstream kernel. i recommend you start using that. 4.8.0-rc5

sbates130272 commented 7 years ago

Yeah I am using 4.8-rc5 ;-).

sbates130272 commented 7 years ago

Guys

You can solve this particular issue using the following diff. However this exposes another issue with IPv6 on Soft-RoCE that I will report via an email to the linux-rdma mailing list.

diff --git a/drivers/infiniband/sw/rxe/rxe.c b/drivers/infiniband/sw/rxe/rxe.c index 08e09d9..97bc74a 100644 --- a/drivers/infiniband/sw/rxe/rxe.c +++ b/drivers/infiniband/sw/rxe/rxe.c @@ -392,5 +392,5 @@ static void __exit rxe_module_exit(void) pr_info("rxe: unloaded\n"); }

-module_init(rxe_module_init); +late_initcall(rxe_module_init); module_exit(rxe_module_exit);