[ofa-general] Shared Protection Domain for iWARP

Philip Frey1 PHF at zurich.ibm.com
Mon Jan 12 14:20:19 PST 2009


Sean,

many thanks for your reply. I currently have my application up and running 
using
a single QP on each of two hosts. What I want to do now is to establish a 
second connection
using a second QP on each host but let both QPs access the same memory 
region.

The above is just a toy example. In the end I want to connect my host to a 
couple of other hosts
each with its own QP and have them all access 1 MR on the first host 
(star-topology).
For that I need the MR to be accessible by all the remote QPs and 
therefore they all
need to be in the same shared PD on the first host.

I have tried Variant A but when I send from the MR which was registered by 
QP1 using QP2,
I get an async event saying 'Local Work Queue Error' and the connection 
gets terminated.
This is even though, QP1 and QP2 are in the same PD on the local host. Is 
there anything else I need to
share between them or is there a fundamental misunderstanding on my side?

Best regards,
 Philip

"Sean Hefty" <sean.hefty at intel.com> wrote on 01/12/2009 06:27:30 PM:

> [image removed] 
> 
> RE: [ofa-general] Shared Protection Domain for iWARP
> 
> Sean Hefty 
> 
> to:
> 
> 'Philip Frey1', general
> 
> 01/12/2009 06:27 PM
> 
> >QP1:
> >----
> >1.        rdma_create_event_channel()
> >2.        rdma_create_id(event_channel, cm_id_1, ...)
> >3.        rdma_resolve_addr(cm_id_1, ...)
> >4.        rdma_resolve_route(cm_id_1, ...)
> >5. pd_1 = ibv_alloc_pd(cm_id_1->verbs)
> >6.        ibv_create_comp_channel(cm_id_1->verbs)
> >7.        ibv_create_cq(cm_id_1->verbs, ..., comp_channel, ...)
> >8.        rdma_create_qp(cm_id_1, pd_1, init_attrs)
> 
> Do you plan on connecting the QPs together?  If so, you'll need 
rdma_connect()
> here.
> 
> >QP2: (Variant A)
> >----
> >2.        rdma_create_id(event_channel, cm_id_2, ...)
> >3.        rdma_resolve_addr(cm_id_2, ...)
> >4.        rdma_resolve_route(cm_id_2, ...)
> >
> >6.        ibv_create_comp_channel(cm_id_2->verbs)
> >7.        ibv_create_cq(cm_id_2->verbs, ..., comp_channel, ...)
> >8.        rdma_create_qp(cm_id_2, pd_1, init_attrs)
> >
> >----
> >QP2: (Variant B)
> >----
> >6.        ibv_create_comp_channel(cm_id_1->verbs)
> >7.        ibv_create_cq(cm_id_1->verbs, ..., comp_channel, ...)
> >8.        rdma_create_qp(cm_id_1, pd_1, init_attrs)
> 
> I don't know if iWarp supports peer to peer connections.  If not, then 
you'll
> need to change one of the sides to act as the passive (server) side for 
the
> connection.  See the rdma_cm.7 man page for a flow outline.
> 
> - Sean
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20090112/8846ff00/attachment.html>


More information about the general mailing list