public RdmaCqProvider createCqProvider(C endpoint) throws IOException { logger.info("setting up cq processor"); return new RdmaCqProvider(endpoint.getIdPriv().getVerbs(), cqSize); }
public void close() throws IOException, InterruptedException { running = false; thread.join(); super.close(); } }
@Override public IbvQP createQpProvider(DaRPCClientEndpoint<R, T> endpoint) throws IOException { RdmaCqProvider cqProvider = endpoint.getCqProvider(); IbvCQ cq = cqProvider.getCQ(); IbvQP qp = this.createQP(endpoint.getIdPriv(), endpoint.getPd(), cq); return qp; }
public IbvQP createQpProvider(C endpoint) throws IOException{ RdmaCqProvider cqProvider = endpoint.getCqProvider(); IbvCQ cq = cqProvider.getCQ(); IbvQPInitAttr attr = new IbvQPInitAttr(); attr.cap().setMax_recv_sge(this.maxSge); attr.cap().setMax_recv_wr(this.maxWR); attr.cap().setMax_send_sge(this.maxSge); attr.cap().setMax_send_wr(this.maxWR); attr.setQp_type(IbvQP.IBV_QPT_RC); attr.setRecv_cq(cq); attr.setSend_cq(cq); IbvQP qp = endpoint.getIdPriv().createQP(endpoint.getPd(), attr); return qp; }
@Override protected synchronized void init() throws IOException { super.init(); for (int i = 0; i < RdmaConstants.STORAGE_RDMA_QUEUESIZE; i++){ SVCPostSend write = initWriteOp(); writeOps.add(write); SVCPostSend read = initReadOp(); readOps.add(read); } IbvCQ cq = getCqProvider().getCQ(); this.wcList = new IbvWC[getCqProvider().getCqSize()]; for (int i = 0; i < wcList.length; i++){ wcList[i] = new IbvWC(); } this.poll = cq.poll(wcList, wcList.length); }
@Override public RdmaCqProvider createCqProvider(DaRPCClientEndpoint<R, T> endpoint) throws IOException { return new RdmaCqProvider(endpoint.getIdPriv().getVerbs(), recvQueueSize() + sendQueueSize()); }
@Override protected synchronized void init() throws IOException { super.init(); IbvCQ cq = getCqProvider().getCQ(); this.wcList = new IbvWC[getCqProvider().getCqSize()]; for (int i = 0; i < wcList.length; i++){ wcList[i] = new IbvWC(); } this.poll = cq.poll(wcList, wcList.length); for(int i = 0; i < pipelineLength; i++){ recvBufs[i] = ByteBuffer.allocateDirect(bufferSize); sendBufs[i] = ByteBuffer.allocateDirect(bufferSize); this.recvCall[i] = setupRecvTask(recvBufs[i], i); this.sendCall[i] = setupSendTask(sendBufs[i], i); } }
@Override protected synchronized void init() throws IOException { super.init(); IbvCQ cq = getCqProvider().getCQ(); this.wcList = new IbvWC[getCqProvider().getCqSize()]; for (int i = 0; i < wcList.length; i++){ wcList[i] = new IbvWC(); } this.poll = cq.poll(wcList, wcList.length); for(int i = 0; i < pipelineLength; i++){ recvBufs[i] = ByteBuffer.allocateDirect(bufferSize); sendBufs[i] = ByteBuffer.allocateDirect(bufferSize); this.recvCall[i] = setupRecvTask(recvBufs[i], i); this.sendCall[i] = setupSendTask(sendBufs[i], i); } this.installRecvs(pipelineLength); }