Hi Brian,

  Is there a special reason why you call btl functions directly instead
of using bml wrappers? What about applying this patch?


diff --git a/ompi/mca/osc/rdma/osc_rdma_component.c 
b/ompi/mca/osc/rdma/osc_rdma_component.c
index 2d0dc06..302dd9e 100644
--- a/ompi/mca/osc/rdma/osc_rdma_component.c
+++ b/ompi/mca/osc/rdma/osc_rdma_component.c
@@ -1044,9 +1044,8 @@ rdma_send_info_send(ompi_osc_rdma_module_t *module,
     ompi_osc_rdma_rdma_info_header_t *header = NULL;

     bml_btl = peer_send_info->bml_btl;
-    descriptor = bml_btl->btl_alloc(bml_btl->btl,
-                                    MCA_BTL_NO_ORDER,
-                                    sizeof(ompi_osc_rdma_rdma_info_header_t));
+    mca_bml_base_alloc(bml_btl, &descriptor, MCA_BTL_NO_ORDER,
+            sizeof(ompi_osc_rdma_rdma_info_header_t));
     if (NULL == descriptor) {
         ret = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
         goto cleanup;
diff --git a/ompi/mca/osc/rdma/osc_rdma_data_move.c 
b/ompi/mca/osc/rdma/osc_rdma_data_move.c
index e9fd17c..e7b5813 100644
--- a/ompi/mca/osc/rdma/osc_rdma_data_move.c
+++ b/ompi/mca/osc/rdma/osc_rdma_data_move.c
@@ -454,10 +454,10 @@ ompi_osc_rdma_sendreq_send(ompi_osc_rdma_module_t *module,
         /* get a buffer... */
         endpoint = (mca_bml_base_endpoint_t*) 
sendreq->req_target_proc->proc_bml;
         bml_btl = mca_bml_base_btl_array_get_next(&endpoint->btl_eager);
-        descriptor = bml_btl->btl_alloc(bml_btl->btl,
-                                        MCA_BTL_NO_ORDER,
-                                        module->m_use_buffers ? 
bml_btl->btl_eager_limit : needed_len < bml_btl->btl_eager_limit ? needed_len :
-                                        bml_btl->btl_eager_limit);
+        mca_bml_base_alloc(bml_btl, &descriptor, MCA_BTL_NO_ORDER,
+                module->m_use_buffers ? bml_btl->btl_eager_limit :
+                needed_len < bml_btl->btl_eager_limit ? needed_len :
+                bml_btl->btl_eager_limit);
         if (NULL == descriptor) {
             ret = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
             goto cleanup;
@@ -698,9 +698,8 @@ ompi_osc_rdma_replyreq_send(ompi_osc_rdma_module_t *module,
     /* Get a BTL and a fragment to go with it */
     endpoint = (mca_bml_base_endpoint_t*) replyreq->rep_origin_proc->proc_bml;
     bml_btl = mca_bml_base_btl_array_get_next(&endpoint->btl_eager);
-    descriptor = bml_btl->btl_alloc(bml_btl->btl,
-                                    MCA_BTL_NO_ORDER,
-                                    bml_btl->btl_eager_limit);
+    mca_bml_base_alloc(bml_btl, &descriptor, MCA_BTL_NO_ORDER,
+            bml_btl->btl_eager_limit);
     if (NULL == descriptor) {
         ret = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
         goto cleanup;
@@ -1260,9 +1259,8 @@ ompi_osc_rdma_control_send(ompi_osc_rdma_module_t *module,
     /* Get a BTL and a fragment to go with it */
     endpoint = (mca_bml_base_endpoint_t*) proc->proc_bml;
     bml_btl = mca_bml_base_btl_array_get_next(&endpoint->btl_eager);
-    descriptor = bml_btl->btl_alloc(bml_btl->btl,
-                                    MCA_BTL_NO_ORDER,
-                                    sizeof(ompi_osc_rdma_control_header_t));
+    mca_bml_base_alloc(bml_btl, &descriptor, MCA_BTL_NO_ORDER,
+            sizeof(ompi_osc_rdma_control_header_t));
     if (NULL == descriptor) {
         ret = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
         goto cleanup;
@@ -1322,9 +1320,8 @@ ompi_osc_rdma_rdma_ack_send(ompi_osc_rdma_module_t 
*module,
     ompi_osc_rdma_control_header_t *header = NULL;

     /* Get a BTL and a fragment to go with it */
-    descriptor = bml_btl->btl_alloc(bml_btl->btl,
-                                    rdma_btl->rdma_order,
-                                    sizeof(ompi_osc_rdma_control_header_t));
+    mca_bml_base_alloc(bml_btl, &descriptor, rdma_btl->rdma_order,
+            sizeof(ompi_osc_rdma_control_header_t));
     if (NULL == descriptor) {
         ret = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
         goto cleanup;
--
                        Gleb.

Reply via email to