On 12/26/2014 4:29 AM, Just Floaterions wrote:
I'm using ConnectIB.This is my send_wr code: struct ibv_send_wr wr, *bad_wr = NULL; struct ibv_sge sge; memset(&sge, 0, sizeof(sge)); sge.addr = (uintptr_t)conn->local_buffer; sge.length = 8; sge.lkey = conn->local_mr->lkey; memset(&wr, 0, sizeof(wr)); wr.wr_id= 0; wr.opcode = IBV_WR_ATOMIC_FETCH_AND_ADD; wr.sg_list = &sge; wr.num_sge = 1; wr.send_flags = IBV_SEND_SIGNALED; wr.wr.atomic.remote_addr= (uintptr_t)conn->peer_mr.addr; wr.wr.atomic.rkey = conn->peer_mr.rkey; wr.wr.atomic.compare_add= 1ULL; if (ibv_post_send(conn->qp, &wr, &bad_wr)) { fprintf(stderr, "Error, ibv_post_send() failed\n"); die(""); }
What libmlx5 are you using? Are you using MLNX_OFED? I see that libmlx5 from openfabrics don't have support for atomic operations yet (MLNX_OFED libmlx5 does have atomic support). CC'ing Eli, the mlx5 maintainer. Cheers, Sagi. -- 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
