Fixes #3514: integrate MXM 2.0 api changes into v1.6 v1.6 v1.6.4
authorjsquyres
Tue Feb 19 16:00:12 2013 +0000 (4 months ago)
branchv1.6
changeset 214138ec1aa94dba9
parent 21401 e9595ae7d911
child 21419 a27757844ee7
Fixes #3514: integrate MXM 2.0 api changes into v1.6

---svn-pre-commit-ignore-below---

Custom patch from ticket based on:

r28069 [[BR]]
MTL MXM: adapt to mxm 2.0 api changes - flags are only for send requests, and SYNC is part of the opcode.
ompi/mca/mtl/mxm/mtl_mxm_recv.c
ompi/mca/mtl/mxm/mtl_mxm_send.c
     1.1 --- a/ompi/mca/mtl/mxm/mtl_mxm_recv.c	Fri Feb 15 16:13:42 2013 +0000
     1.2 +++ b/ompi/mca/mtl/mxm/mtl_mxm_recv.c	Tue Feb 19 16:00:12 2013 +0000
     1.3 @@ -68,7 +68,9 @@
     1.4      mxm_recv_req->base.state               = MXM_REQ_NEW;
     1.5      ompi_mtl_mxm_set_recv_envelope(mxm_recv_req, comm, src, tag);
     1.6  
     1.7 +#if MXM_API < MXM_VERSION(2,0)
     1.8      mxm_recv_req->base.flags               = 0;
     1.9 +#endif
    1.10      mxm_recv_req->base.data_type           = MXM_REQ_DATA_BUFFER;
    1.11      mxm_recv_req->base.data.buffer.ptr     = mtl_mxm_request->buf;
    1.12      mxm_recv_req->base.data.buffer.length  = mtl_mxm_request->length;
     2.1 --- a/ompi/mca/mtl/mxm/mtl_mxm_send.c	Fri Feb 15 16:13:42 2013 +0000
     2.2 +++ b/ompi/mca/mtl/mxm/mtl_mxm_send.c	Tue Feb 19 16:00:12 2013 +0000
     2.3 @@ -101,27 +101,36 @@
     2.4      mxm_send_req.base.state         = MXM_REQ_NEW;
     2.5      mxm_send_req.base.mq            = ompi_mtl_mxm_mq_lookup(comm);
     2.6      mxm_send_req.base.conn          = ompi_mtl_mxm_conn_lookup(comm, dest);
     2.7 -    mxm_send_req.base.flags         = MXM_REQ_FLAG_BLOCKING;
     2.8 +    mxm_send_req.base.context       = NULL;
     2.9 +    mxm_send_req.base.completed_cb  = NULL;
    2.10  
    2.11 -    mxm_send_req.base.context       = NULL;
    2.12      ret = ompi_mtl_mxm_choose_send_datatype(&mxm_send_req, convertor);
    2.13      if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) {
    2.14          return ret;
    2.15      }
    2.16 +
    2.17  #if MXM_API < MXM_VERSION(1,5)
    2.18      mxm_send_req.base.data.buffer.mkey   = MXM_MKEY_NONE;
    2.19  #else
    2.20      mxm_send_req.base.data.buffer.memh   = MXM_INVALID_MEM_HANDLE;
    2.21  #endif
    2.22 -    mxm_send_req.base.completed_cb       = NULL;
    2.23 +
    2.24 +    mxm_send_req.op.send.tag             = tag;
    2.25 +    mxm_send_req.op.send.imm_data        = ompi_comm_rank(comm);
    2.26 +#if MXM_API < MXM_VERSION(2,0)
    2.27 +    mxm_send_req.base.flags              = MXM_REQ_FLAG_BLOCKING;
    2.28 +    mxm_send_req.opcode                  = MXM_REQ_OP_SEND;
    2.29      if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) {
    2.30          mxm_send_req.base.flags          |= MXM_REQ_FLAG_SEND_SYNC;
    2.31      }
    2.32 -
    2.33 -    mxm_send_req.opcode                  = MXM_REQ_OP_SEND;
    2.34 -    mxm_send_req.op.send.tag             = tag;
    2.35 -    mxm_send_req.op.send.imm_data        = ompi_comm_rank(comm);
    2.36 -
    2.37 +#else
    2.38 +    mxm_send_req.flags                   = MXM_REQ_SEND_FLAG_BLOCKING;
    2.39 +    if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) {
    2.40 +        mxm_send_req.opcode              = MXM_REQ_OP_SEND_SYNC;
    2.41 +    } else {
    2.42 +        mxm_send_req.opcode              = MXM_REQ_OP_SEND;
    2.43 +    }
    2.44 +#endif
    2.45  
    2.46      /* post-send */
    2.47      err = mxm_req_send(&mxm_send_req);
    2.48 @@ -171,7 +180,6 @@
    2.49      mxm_send_req->base.state               = MXM_REQ_NEW;
    2.50      mxm_send_req->base.mq                  = ompi_mtl_mxm_mq_lookup(comm);
    2.51      mxm_send_req->base.conn                = ompi_mtl_mxm_conn_lookup(comm, dest);
    2.52 -    mxm_send_req->base.flags               = 0;
    2.53      mxm_send_req->base.data_type           = MXM_REQ_DATA_BUFFER;
    2.54      mxm_send_req->base.data.buffer.ptr     = mtl_mxm_request->buf;
    2.55      mxm_send_req->base.data.buffer.length  = mtl_mxm_request->length;
    2.56 @@ -182,11 +190,22 @@
    2.57  #endif
    2.58      mxm_send_req->base.context             = mtl_mxm_request;
    2.59      mxm_send_req->base.completed_cb        = ompi_mtl_mxm_send_completion_cb;
    2.60 +
    2.61 +#if MXM_API < MXM_VERSION(2,0)
    2.62 +    mxm_send_req->base.flags               = 0;
    2.63 +    mxm_send_req->opcode                   = MXM_REQ_OP_SEND;
    2.64      if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) {
    2.65          mxm_send_req->base.flags           |= MXM_REQ_FLAG_SEND_SYNC;
    2.66 +    } else {
    2.67      }
    2.68 -
    2.69 -    mxm_send_req->opcode                   = MXM_REQ_OP_SEND;
    2.70 +#else
    2.71 +    mxm_send_req->flags                    = 0;
    2.72 +    if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) {
    2.73 +        mxm_send_req->opcode               = MXM_REQ_OP_SEND_SYNC;
    2.74 +    } else {
    2.75 +        mxm_send_req->opcode               = MXM_REQ_OP_SEND;
    2.76 +    }
    2.77 +#endif
    2.78      mxm_send_req->op.send.tag              = tag;
    2.79      mxm_send_req->op.send.imm_data         = ompi_comm_rank(comm);
    2.80