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.sh...@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, >