Hi,<br><br>I am trying to send two
integers (essentially a buf array of type uint32_t) to the server via
RDMA_WRITE method. The following is piece of code that I rewrote:<br>
<br>++++++++++++++++++++++++++++++++++<br><div id=":1e5" class="ii gt"><br> buf[0] = strtoul(argv[2], NULL, 0);<br> buf[1] = strtoul(argv[3], NULL, 0);<br><br> printf("%d + %d = ", buf[0], buf[1]);<br><br> buf[0] = htonl(buf[0]);<br>
buf[1] = htonl(buf[1]);<br>
<br> /* -----------------------------------<br> ---- START - write operation 1 ----<br> ----------------------------------- */<br><br>int c;<br>for(c = 0; c < 2; c++)<br>
{<br> sge.addr = (uintptr_t) buf + ((uint32_t)c*sizeof(uint32_t));<br> sge.length = sizeof(uint32_t);<br> sge.lkey = mr->lkey;<br><br> send_wr.wr_id = (uint64_t)(c+1);//1;<br> send_wr.opcode = IBV_WR_RDMA_WRITE;<br>
send_wr.sg_list = &sge;<br> send_wr.num_sge = 1;<br> send_wr.wr.rdma.rkey = ntohl(server_pdata.buf_rkey);<br> send_wr.wr.rdma.remote_addr = ntohll(server_pdata.buf_va);<br><br clear="all"> if(ibv_post_send(cm_id->qp, &send_wr, &bad_send_wr))<br>
return 1;<br>}<br><br>++++++++++++++++++++++++++++++++++<br><br>I receive no compilation errors but it does not write to remote memory. Any suggestions of what might be wrong?<br><br>Thanks,<br></div>-- <br>Syed Zafar ul Hussan Gilani | BIT-7<br>
Research Student | CHPSC<br>MSP 2008-09<br>NUST SEECS | <a href="http://hpc.niit.edu.pk/~zafar">http://hpc.niit.edu.pk/~zafar</a><br>