Message ID | 20181108160818.5485-10-yuval.shaia@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for RDMA MAD | expand |
On 11/8/18 6:08 PM, Yuval Shaia wrote: > opcode for WC should be set by the device and not taken from work > element. > > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> > --- > hw/rdma/vmw/pvrdma_qp_ops.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/rdma/vmw/pvrdma_qp_ops.c b/hw/rdma/vmw/pvrdma_qp_ops.c > index 7b0f440fda..3388be1926 100644 > --- a/hw/rdma/vmw/pvrdma_qp_ops.c > +++ b/hw/rdma/vmw/pvrdma_qp_ops.c > @@ -154,7 +154,7 @@ int pvrdma_qp_send(PVRDMADev *dev, uint32_t qp_handle) > comp_ctx->cq_handle = qp->send_cq_handle; > comp_ctx->cqe.wr_id = wqe->hdr.wr_id; > comp_ctx->cqe.qp = qp_handle; > - comp_ctx->cqe.opcode = wqe->hdr.opcode; > + comp_ctx->cqe.opcode = IBV_WC_SEND; That is interesting, what should happen if the opcode in hdr is different? Maybe fail the operation? Thanks, Marcel > > rdma_backend_post_send(&dev->backend_dev, &qp->backend_qp, qp->qp_type, > (struct ibv_sge *)&wqe->sge[0], wqe->hdr.num_sge,
On Sat, Nov 10, 2018 at 08:21:51PM +0200, Marcel Apfelbaum wrote: > > > On 11/8/18 6:08 PM, Yuval Shaia wrote: > > opcode for WC should be set by the device and not taken from work > > element. > > > > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> > > --- > > hw/rdma/vmw/pvrdma_qp_ops.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/hw/rdma/vmw/pvrdma_qp_ops.c b/hw/rdma/vmw/pvrdma_qp_ops.c > > index 7b0f440fda..3388be1926 100644 > > --- a/hw/rdma/vmw/pvrdma_qp_ops.c > > +++ b/hw/rdma/vmw/pvrdma_qp_ops.c > > @@ -154,7 +154,7 @@ int pvrdma_qp_send(PVRDMADev *dev, uint32_t qp_handle) > > comp_ctx->cq_handle = qp->send_cq_handle; > > comp_ctx->cqe.wr_id = wqe->hdr.wr_id; > > comp_ctx->cqe.qp = qp_handle; > > - comp_ctx->cqe.opcode = wqe->hdr.opcode; > > + comp_ctx->cqe.opcode = IBV_WC_SEND; > > That is interesting, what should happen if the opcode in hdr is different? > Maybe fail the operation? openmpi builds its entire IB state machine on that, see here: https://github.com/open-mpi/ompi/blob/3dc1629771177a883cd8f1be6e97ab152e0f4584/opal/mca/btl/openib/btl_openib_component.c#L3512 > > Thanks, > Marcel > > > rdma_backend_post_send(&dev->backend_dev, &qp->backend_qp, qp->qp_type, > > (struct ibv_sge *)&wqe->sge[0], wqe->hdr.num_sge, >
diff --git a/hw/rdma/vmw/pvrdma_qp_ops.c b/hw/rdma/vmw/pvrdma_qp_ops.c index 7b0f440fda..3388be1926 100644 --- a/hw/rdma/vmw/pvrdma_qp_ops.c +++ b/hw/rdma/vmw/pvrdma_qp_ops.c @@ -154,7 +154,7 @@ int pvrdma_qp_send(PVRDMADev *dev, uint32_t qp_handle) comp_ctx->cq_handle = qp->send_cq_handle; comp_ctx->cqe.wr_id = wqe->hdr.wr_id; comp_ctx->cqe.qp = qp_handle; - comp_ctx->cqe.opcode = wqe->hdr.opcode; + comp_ctx->cqe.opcode = IBV_WC_SEND; rdma_backend_post_send(&dev->backend_dev, &qp->backend_qp, qp->qp_type, (struct ibv_sge *)&wqe->sge[0], wqe->hdr.num_sge,
opcode for WC should be set by the device and not taken from work element. Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> --- hw/rdma/vmw/pvrdma_qp_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)