]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
msg/async/rdma: Use RDMA resources only after fork 15262/head
authorAmir Vadai <amir@vadai.me>
Wed, 12 Apr 2017 12:17:56 +0000 (15:17 +0300)
committerAmir Vadai <amir@vadai.me>
Tue, 23 May 2017 14:04:44 +0000 (17:04 +0300)
commitec2e6931e04a0765d05aa1c54b7ba6ce7f155571
tree22db25cc79961d3cc87e2cb38367a03d5d51abdd
parente94ba0d2ae4d7e1df41f3de406f27fc15ac5473a
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
src/msg/async/rdma/Infiniband.cc
src/msg/async/rdma/Infiniband.h
src/msg/async/rdma/RDMAStack.cc
src/msg/async/rdma/RDMAStack.h