infiniband - How to use SRQ with different connections in libibverbs -
how use srq when connected more 1 connections. lets say, there 3 connections namely process 0, 1 , 2. creating srq, need call
struct ibv_srq *ibv_create_srq(struct ibv_pd *pd, struct ibv_srq_init_attr *srq_init_attr);
for above call need provide protection domain, in knowledge, protection domain allocated specific each connection call
ibv_alloc_pd(id->verbs)
in id created each channel. basically, question how assign srq different qp belonging different connection id different protection domain, or in other words, different connections can have same protection domain?
a single srq or pd cannot shared among multiple processes. point of srq reduce number of receives need posted when single process has many qps. , sharing srq among processes wouldn't make sense. when post receive srq, buffer have come address space of 1 of processes. if receive on different process's qp used work request, process wouldn't able access data had received (since buffer belongs different process).
you can of course share srqs , other verbs data structures between multiple threads in single process.
the verbs object can shared among multiple processes xrc domain (xrcd). see ibv_open_xrcd()
etc.
Comments
Post a Comment