From bramesh at vt.edu Thu Feb 24 23:26:37 2011 From: bramesh at vt.edu (Bharath Ramesh) Date: Fri, 25 Feb 2011 02:26:37 -0500 Subject: [ofa-general] Help with atomic operations Message-ID: <009e01cbd4bd$56f42760$04dc7620$@edu> Hi, I am trying to use IB atomic operations, specifically fetch and add. I tried a small example but I am unable to get it to work. The WC status is REM_INV_REQ_ERR. My sample code is as follows: sge.addr = (uintptr_t) &data; sge.length = sizeof (uint64_t); sge.lkey = ib_mr->lkey; wr.opcode = IBV_WR_ATOMIC_FETCH_AND_ADD; wr.send_flags = IBV_SEND_SIGNALED; wr.next = NULL; wr.num_sge = 1; wr.sg_list = &sge; wr.wr.atomic.remote_addr = vaddr; wr.wr.atomic.compare_add = 1; //wr.wr.atomic.swap = 0; wr.wr.atomic.rkey = rkey; wr.wr_id = 1; ret = ibv_post_send (ib_qp, &wr, &wr_bad); do { c = ibv_poll_cq (ib_cq, 1, &wc); } while (c == 0); if (c < 0) { printf ("ERROR: ibv_poll_cq failed.\n"); return -1; } if (wc.status != IBV_WC_SUCCESS) { // print wc info. // print qp status. } Any help on this appreciated. Regards, Bharath -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 4985 bytes Desc: not available URL: