private SVCPostRecv setupRecvTask(int wrid) throws IOException { ArrayList<IbvRecvWR> recvWRs = new ArrayList<IbvRecvWR>(1); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvSge sge = new IbvSge(); sge.setAddr(MemoryUtils.getAddress(recvBufs[wrid])); sge.setLength(rawBufferSize); sge.setLkey(dataMr.getLkey()); sgeList.add(sge); IbvRecvWR recvWR = new IbvRecvWR(); recvWR.setWr_id(wrid); recvWR.setSg_list(sgeList); recvWRs.add(recvWR); return postRecv(recvWRs); } }
this.recvMr = mrlist[2]; sgeSend.setAddr(sendMr.getAddr()); sgeSend.setLength(sendMr.getLength()); sgeSend.setLkey(sendMr.getLkey()); sgeList.add(sgeSend); sendWR.setWr_id(2000); wrList_send.add(sendWR); sgeRecv.setAddr(recvMr.getAddr()); sgeRecv.setLength(recvMr.getLength()); int lkey = recvMr.getLkey(); sgeRecv.setLkey(lkey); sgeListRecv.add(sgeRecv); recvWR.setSg_list(sgeListRecv);
private SVCPostSend initWriteOp() throws IOException { LinkedList<IbvSendWR> wrList_send = new LinkedList<IbvSendWR>(); IbvSendWR writeWR = new IbvSendWR(); writeWR.setWr_id(opcount.getAndIncrement()); writeWR.setOpcode(IbvSendWR.IBV_WR_RDMA_WRITE); LinkedList<IbvSge> sgeListWrite = new LinkedList<IbvSge>(); IbvSge sgeSendWrite = new IbvSge(); sgeListWrite.add(sgeSendWrite); writeWR.setSg_list(sgeListWrite); wrList_send.add(writeWR); IbvSendWR readWR = new IbvSendWR(); readWR.setWr_id(opcount.getAndIncrement()); readWR.setOpcode(IbvSendWR.IBV_WR_RDMA_READ); readWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); LinkedList<IbvSge> sgeListRead = new LinkedList<IbvSge>(); IbvSge sgeSendRead = new IbvSge(); sgeSendRead.setLength(1); sgeListRead.add(sgeSendRead); readWR.setSg_list(sgeListRead); wrList_send.add(readWR); SVCPostSend rdmaOp = this.postSend(wrList_send); return rdmaOp; }
private SVCPostSend initReadOp() throws IOException{ LinkedList<IbvSendWR> wrList_send = new LinkedList<IbvSendWR>(); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvSge sgeSend = new IbvSge(); IbvSendWR sendWR = new IbvSendWR(); sgeList.add(sgeSend); sendWR.setSg_list(sgeList); wrList_send.add(sendWR); sendWR.setWr_id(opcount.getAndIncrement()); sendWR.setOpcode(IbvSendWR.IBV_WR_RDMA_READ); sendWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); SVCPostSend rdmaOp = this.postSend(wrList_send); return rdmaOp; }
@Override public void setLength(int length) { super.setLength(length); postSendCall.setLength(this, 8); }
@Override public void setAddr(long addr) { super.setAddr(addr); postSendCall.setAddr(this, 0); }
@Override public void setLkey(int lkey) { super.setLkey(lkey); postSendCall.setLkey(this, 12); }
sendBuf.clear(); sgeSend.setAddr(dataMr.getAddr()); sgeSend.setLength(dataMr.getLength()); sgeSend.setLkey(dataMr.getLkey()); sgeList.add(sgeSend); sendWR.setWr_id(2000); sgeRecv.setAddr(recvMr.getAddr()); sgeRecv.setLength(recvMr.getLength()); int lkey = recvMr.getLkey(); sgeRecv.setLkey(lkey); sgeListRecv.add(sgeRecv); recvWR.setSg_list(sgeListRecv);
private SVCPostSend initWriteOp() throws IOException { LinkedList<IbvSendWR> wrList_send = new LinkedList<IbvSendWR>(); IbvSendWR writeWR = new IbvSendWR(); writeWR.setWr_id(opcount.getAndIncrement()); writeWR.setOpcode(IbvSendWR.IBV_WR_RDMA_WRITE); writeWR.setSend_flags(0); LinkedList<IbvSge> sgeListWrite = new LinkedList<IbvSge>(); IbvSge sgeSendWrite = new IbvSge(); sgeListWrite.add(sgeSendWrite); writeWR.setSg_list(sgeListWrite); wrList_send.add(writeWR); IbvSendWR readWR = new IbvSendWR(); readWR.setWr_id(opcount.getAndIncrement()); readWR.setOpcode(IbvSendWR.IBV_WR_RDMA_READ); readWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); LinkedList<IbvSge> sgeListRead = new LinkedList<IbvSge>(); IbvSge sgeSendRead = new IbvSge(); sgeSendRead.setLength(1); sgeListRead.add(sgeSendRead); readWR.setSg_list(sgeListRead); wrList_send.add(readWR); SVCPostSend rdmaOp = this.postSend(wrList_send); return rdmaOp; }
private SVCPostSend initReadOp() throws IOException{ LinkedList<IbvSendWR> wrList_send = new LinkedList<IbvSendWR>(); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvSge sgeSend = new IbvSge(); IbvSendWR sendWR = new IbvSendWR(); sgeList.add(sgeSend); sendWR.setSg_list(sgeList); wrList_send.add(sendWR); sendWR.setWr_id(opcount.getAndIncrement()); sendWR.setOpcode(IbvSendWR.IBV_WR_RDMA_READ); sendWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); SVCPostSend rdmaOp = this.postSend(wrList_send); return rdmaOp; }
private SVCPostSend setupSendTask(int wrid) throws IOException { ArrayList<IbvSendWR> sendWRs = new ArrayList<IbvSendWR>(1); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvSge sge = new IbvSge(); sge.setAddr(MemoryUtils.getAddress(sendBufs[wrid])); sge.setLength(rawBufferSize); sge.setLkey(dataMr.getLkey()); sgeList.add(sge); IbvSendWR sendWR = new IbvSendWR(); sendWR.setSg_list(sgeList); sendWR.setWr_id(wrid); sendWRs.add(sendWR); sendWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); sendWR.setOpcode(IbvSendWR.IbvWrOcode.IBV_WR_SEND.ordinal()); return postSend(sendWRs); }
public void init() throws IOException{ super.init(); for (int i = 0; i < buffercount; i++){ mrlist[i] = registerMemory(buffers[i]).execute().free().getMr(); } this.dataBuf = buffers[0]; this.dataMr = mrlist[0]; this.sendBuf = buffers[1]; this.sendMr = mrlist[1]; this.recvBuf = buffers[2]; this.recvMr = mrlist[2]; sgeSend.setAddr(sendMr.getAddr()); sgeSend.setLength(sendMr.getLength()); sgeSend.setLkey(sendMr.getLkey()); sgeList.add(sgeSend); sendWR.setWr_id(2000); sendWR.setSg_list(sgeList); sendWR.setOpcode(IbvSendWR.IBV_WR_SEND); sendWR.setSend_flags(IbvSendWR.IBV_SEND_SIGNALED); wrList_send.add(sendWR); sgeRecv.setAddr(recvMr.getAddr()); sgeRecv.setLength(recvMr.getLength()); int lkey = recvMr.getLkey(); sgeRecv.setLkey(lkey); sgeListRecv.add(sgeRecv); recvWR.setSg_list(sgeListRecv); recvWR.setWr_id(2001); wrList_recv.add(recvWR); this.postRecv(wrList_recv).execute(); }
protected ReadClientEndpoint(RdmaEndpointGroup<? extends RdmaEndpoint> group, RdmaCmId idPriv, boolean serverSide, int size) throws IOException { super(group, idPriv, serverSide); this.buffersize = size; buffers = new ByteBuffer[3]; this.mrlist = new IbvMr[3]; for (int i = 0; i < 3; i++){ buffers[i] = ByteBuffer.allocateDirect(buffersize); } this.wrList_send = new LinkedList<IbvSendWR>(); this.sgeSend = new IbvSge(); this.sgeList = new LinkedList<IbvSge>(); this.sendWR = new IbvSendWR(); this.wrList_recv = new LinkedList<IbvRecvWR>(); this.sgeRecv = new IbvSge(); this.sgeListRecv = new LinkedList<IbvSge>(); this.recvWR = new IbvRecvWR(); }
private SVCPostRecv setupRecvTask(ByteBuffer recvBuf, int wrid) throws IOException { ArrayList<IbvRecvWR> recvWRs = new ArrayList<IbvRecvWR>(1); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvMr mr = registerMemory(recvBuf).execute().free().getMr(); recvMRs[wrid] = mr; IbvSge sge = new IbvSge(); sge.setAddr(mr.getAddr()); sge.setLength(mr.getLength()); int lkey = mr.getLkey(); sge.setLkey(lkey); sgeList.add(sge); IbvRecvWR recvWR = new IbvRecvWR(); recvWR.setWr_id(wrid); recvWR.setSg_list(sgeList); recvWRs.add(recvWR); return postRecv(recvWRs); } }
sendBuf.clear(); sgeSend.setAddr(sendMr.getAddr()); sgeSend.setLength(sendMr.getLength()); sgeSend.setLkey(sendMr.getLkey()); sgeList.add(sgeSend); sendWR.setWr_id(2000); wrList_send.add(sendWR); sgeRecv.setAddr(recvMr.getAddr()); sgeRecv.setLength(recvMr.getLength()); int lkey = recvMr.getLkey(); sgeRecv.setLkey(lkey); sgeListRecv.add(sgeRecv); recvWR.setSg_list(sgeListRecv);
protected ReadServerEndpoint(RdmaActiveEndpointGroup<? extends RdmaEndpoint> group, RdmaCmId idPriv, boolean serverSide, int size) throws IOException { super(group, idPriv, serverSide); this.buffersize = size; buffers = new ByteBuffer[3]; this.mrlist = new IbvMr[3]; for (int i = 0; i < 3; i++){ buffers[i] = ByteBuffer.allocateDirect(buffersize); } this.wrList_send = new LinkedList<IbvSendWR>(); this.sgeSend = new IbvSge(); this.sgeList = new LinkedList<IbvSge>(); this.sendWR = new IbvSendWR(); this.wrList_recv = new LinkedList<IbvRecvWR>(); this.sgeRecv = new IbvSge(); this.sgeListRecv = new LinkedList<IbvSge>(); this.recvWR = new IbvRecvWR(); this.wcEvents = new ArrayBlockingQueue<IbvWC>(10); }
private SVCPostRecv setupRecvTask(ByteBuffer recvBuf, int wrid) throws IOException { ArrayList<IbvRecvWR> recvWRs = new ArrayList<IbvRecvWR>(1); LinkedList<IbvSge> sgeList = new LinkedList<IbvSge>(); IbvMr mr = registerMemory(recvBuf).execute().free().getMr(); recvMRs[wrid] = mr; IbvSge sge = new IbvSge(); sge.setAddr(mr.getAddr()); sge.setLength(mr.getLength()); int lkey = mr.getLkey(); sge.setLkey(lkey); sgeList.add(sge); IbvRecvWR recvWR = new IbvRecvWR(); recvWR.setWr_id(wrid); recvWR.setSg_list(sgeList); recvWRs.add(recvWR); return postRecv(recvWRs); } }
sendBuf.clear(); sgeSend.setAddr(sendMr.getAddr()); sgeSend.setLength(sendMr.getLength()); sgeSend.setLkey(sendMr.getLkey()); sgeList.add(sgeSend); sendWR.setWr_id(2000); sgeRecv.setAddr(recvMr.getAddr()); sgeRecv.setLength(recvMr.getLength()); int lkey = recvMr.getLkey(); sgeRecv.setLkey(lkey); sgeListRecv.add(sgeRecv); recvWR.setSg_list(sgeListRecv);