Hi, I am working on building an Infiniband application with a server that can handle many simultaneous clients. The server exposes a chunk of memory that each of the clients can read via RDMA. I was previously creating a new MR on the server for each client (and of course in that connection's PD). However, under stress testing, I realized that ibv_reg_mr() started failing after I simultaneously MRed the same area enough times to cover 20.0 GB. I presume that the problem is reaching some pinning limit, although ulimit reports "unlimited" for all relevant possibilities. I tried creating a single global PD and a single MR to be shared among the multiple connections, but rdma_create_qp() fails with an invalid argument when I try to do that. I therefore deduce that the PD specified in rdma_create_qp() must correspond to an active connection, not simply be created by opening a device.
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? Thanks in advance, Christopher end -- 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
