On Wed, Nov 14, 2012 at 12:13 PM, Hefty, Sean <[email protected]> wrote:

> The rdma_cm will automatically allocate one PD per RDMA device.  You can 
> share this PD among multiple connections.  To use this PD, pass in NULL into 
> rdma_create_qp().  The rdma_cm_id will reference the shared PD.

That's great to know; thanks Sean (and everyone else who confirmed
that a shared PD and possibly CQ is the way to go). Is there a way to
reference this shared PD in ibv_reg_mr() as well? It seems that using
NULL there too is not the solution, and I'm having difficulty tracing
back from struct rdma_cm_id to find out where that shared PD is
stored. I'd prefer to use this solution for simplicity's sake, so any
additional details would be greatly appreciated. For what it's worth,
I tried passing NULL to rdma_create_qp() as you suggested, and found
it to work admirably.

>> Long question short: is there any way I can share the same MR among
>> multiple clients, so that my shared memory region is limited to N
>> bytes instead of N/C (clients) bytes?
>
> Yes, but if there are multiple devices being used, then you'll need to track 
> those registrations separately.

That's reasonable.

Thanks,
Christopher
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to