Hi.

Bharath Ramesh wrote:
I am getting this error when I am trying to do a bunch of send/receives.
I have registered the receive buffer. I printed the address of the
buffers and their respective lkeys, they all match but I am still
getting this error.

The code snippet looks as follows:

struct ibv_mr *mr;
struct ibv_sge sge;
struct ibv_recv_wr wr;
struct ibv_recv_wr *wr_bad;

// registering buffers
mr = ibv_reg_mr (ib_pd, buf, size, IBV_ACCESS_LOCAL_WRITE |
                        IBV_ACCESS_REMOTE_READ |
                        IBV_ACCESS_REMOTE_WRITE);


//Post the receive buffer
sge.addr = (uintptr_t) buf;
sge.length = size;
sge.lkey = mr->lkey;
wr.wr_id = WR_ID;
wr.next = NULL;
wr.sg_list = &sge;
wr.num_sge = 1;
if (ibv_post_recv (ib_qp, &wr, &wr_bad) != 0) {
  printf ("ERROR: Unable to post receiver buffer.\n");
  return -1;
}

When I poll for the completion event I get this error. Any help on this
is appreciated. I am not subscribed to this list, I would appreciate if
you please cc me on the reply.


If the address that you given in the RR is valid (you didn't deregister this MR):
You should check the following things:
* If this is a UD QP, maybe the extra 40 bytes (for the GRH) is missing in the recv buffer.
* Maybe the incoming message is larger than the receive buffer
* maybe the PD of the QP and the MR are not the same


If this didn't help you, the value of the vendor_err in the completion structure may help me....

Dotan
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to