msg/async/rdma: Use RDMA resources only after fork
Thanks to previous patch [1], no need to access RDMA resources before
the fork. Initialize Infiniband class only before a connection is
established or a listener is created. [1] is making sure that the call
to RDMAWorker::listen() is postponed till after the fork.
[1] -
7393db45644d ("msg/async: Postpone bind if network stack is not ready")
While backporting from master branch into the stable branch had to pull
some missing stuff from master:
- Make Infiniband ctor an empty shell. Actual initialization is done
through a call to init()
- RDMADispatcher polling thread is started only after Infiniband::init()
is called
(cherry picked from commit
972c7416deae2dd3a763643be6c9334d4edd1c17)
Issue: 995322
Signed-off-by: Amir Vadai <amir@vadai.me>
Change-Id: Iab1c450937713e6c4b83daf03c903e2fe5562ba2