<br><tt><font size=2>Hello,</font></tt>
<br>
<br><tt><font size=2>I have a short user application question for the experts:
I would like 2 QPs to be able</font></tt>
<br><tt><font size=2>to access a single shared MR. For that I need the
QPs to be in the same PD.</font></tt>
<br><tt><font size=2>What is the right way to do that with OFED 1.4?</font></tt>
<br>
<br><tt><font size=2>MPA initiator:</font></tt>
<br><tt><font size=2>**************</font></tt>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>QP1:</font></tt>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>1.        rdma_create_event_channel()</font></tt>
<br><tt><font size=2>2.        rdma_create_id(event_channel,
cm_id_1, ...)</font></tt>
<br><tt><font size=2>3.        rdma_resolve_addr(cm_id_1,
...)</font></tt>
<br><tt><font size=2>4.        rdma_resolve_route(cm_id_1,
...)</font></tt>
<br><tt><font size=2>5. pd_1 = ibv_alloc_pd(cm_id_1->verbs)</font></tt>
<br><tt><font size=2>6.        ibv_create_comp_channel(cm_id_1->verbs)</font></tt>
<br><tt><font size=2>7.        ibv_create_cq(cm_id_1->verbs,
..., comp_channel, ...)</font></tt>
<br><tt><font size=2>8.        rdma_create_qp(cm_id_1,
pd_1, init_attrs)</font></tt>
<br>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>QP2: (Variant A)</font></tt>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>2.        rdma_create_id(event_channel,
cm_id_2, ...)</font></tt>
<br><tt><font size=2>3.        rdma_resolve_addr(cm_id_2,
...)</font></tt>
<br><tt><font size=2>4.        rdma_resolve_route(cm_id_2,
...)</font></tt>
<br>
<br><tt><font size=2>6.        ibv_create_comp_channel(cm_id_2->verbs)</font></tt>
<br><tt><font size=2>7.        ibv_create_cq(cm_id_2->verbs,
..., comp_channel, ...)</font></tt>
<br><tt><font size=2>8.        rdma_create_qp(cm_id_2,
pd_1, init_attrs)</font></tt>
<br>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>QP2: (Variant B)</font></tt>
<br><tt><font size=2>----</font></tt>
<br><tt><font size=2>6.        ibv_create_comp_channel(cm_id_1->verbs)</font></tt>
<br><tt><font size=2>7.        ibv_create_cq(cm_id_1->verbs,
..., comp_channel, ...)</font></tt>
<br><tt><font size=2>8.        rdma_create_qp(cm_id_1,
pd_1, init_attrs)</font></tt>
<br>
<br>
<br><tt><font size=2>The short question is: Do I need to create a new CM
ID (including addr/route resolving)</font></tt>
<br><tt><font size=2>in order to be able to create a new QP with its own
completion channel and CQ but with</font></tt>
<br><tt><font size=2>a PD which is shared with QP1</font></tt>
<br>
<br><tt><font size=2>        or</font></tt>
<br>
<br><tt><font size=2>do I reuse the CM ID, create a new completion channel
/ CQ on it and create a new QP</font></tt>
<br><tt><font size=2>based on the old CM ID and the PD which is shared
with QP1?</font></tt>
<br>
<br>
<br><tt><font size=2>Many thanks for your advice,</font></tt>
<br><tt><font size=2> Philip</font></tt>