Skip to content

Commit 7c31586

Browse files
authored
Merge pull request #7501 from awlauria/finalize_leaks_ggouaillardet_awlauria
Finalize memchecker calls and one memory leak
2 parents 11028d0 + 04a3a28 commit 7c31586

28 files changed

+144
-87
lines changed

ompi/dpm/dpm.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
* Copyright (c) 2011-2015 Los Alamos National Security, LLC. All rights
1717
* reserved.
1818
* Copyright (c) 2013-2019 Intel, Inc. All rights reserved.
19-
* Copyright (c) 2014-2017 Research Organization for Information Science
19+
* Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
20+
* Copyright (c) 2014-2020 Research Organization for Information Science
2021
* and Technology (RIST). All rights reserved.
2122
* Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved.
2223
* $COPYRIGHT$
@@ -1113,6 +1114,16 @@ int ompi_dpm_finalize(void)
11131114
return OMPI_SUCCESS;
11141115
}
11151116

1117+
static void cleanup_dpm_disconnect_objs(ompi_dpm_disconnect_obj **objs, int count)
1118+
{
1119+
for(int i = 0; i < count; i++) {
1120+
if (NULL != objs[i]->reqs) {
1121+
free(objs[i]->reqs);
1122+
}
1123+
free(objs[i]);
1124+
}
1125+
free(objs);
1126+
}
11161127

11171128
/**********************************************************************/
11181129
/**********************************************************************/
@@ -1126,7 +1137,7 @@ int ompi_dpm_dyn_finalize(void)
11261137
ompi_communicator_t *comm=NULL;
11271138

11281139
if (1 <ompi_comm_num_dyncomm) {
1129-
objs = (ompi_dpm_disconnect_obj**)malloc(ompi_comm_num_dyncomm*
1140+
objs = (ompi_dpm_disconnect_obj**)malloc(ompi_comm_num_dyncomm *
11301141
sizeof(ompi_dpm_disconnect_obj*));
11311142
if (NULL == objs) {
11321143
return OMPI_ERR_OUT_OF_RESOURCE;
@@ -1140,13 +1151,12 @@ int ompi_dpm_dyn_finalize(void)
11401151
}
11411152
}
11421153

1143-
if (j != ompi_comm_num_dyncomm+1) {
1144-
free(objs);
1154+
if (j != ompi_comm_num_dyncomm) {
1155+
cleanup_dpm_disconnect_objs(objs, j);
11451156
return OMPI_ERROR;
11461157
}
11471158

11481159
disconnect_waitall(ompi_comm_num_dyncomm, objs);
1149-
free(objs);
11501160
}
11511161

11521162
return OMPI_SUCCESS;
@@ -1265,13 +1275,7 @@ static int disconnect_waitall (int count, ompi_dpm_disconnect_obj **objs)
12651275
ret = ompi_request_wait_all(2*totalcount, reqs, MPI_STATUSES_IGNORE);
12661276

12671277
/* Finally, free everything */
1268-
for (i=0; i< count; i++ ) {
1269-
if (NULL != objs[i]->reqs ) {
1270-
free(objs[i]->reqs );
1271-
}
1272-
free(objs[i]);
1273-
}
1274-
1278+
cleanup_dpm_disconnect_objs(objs, count);
12751279
free(reqs);
12761280

12771281
return ret;

ompi/include/ompi/memchecker.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
* reserved.
77
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
88
* Copyright (c) 2012-2013 Inria. All rights reserved.
9-
* Copyright (c) 2014-2017 Research Organization for Information Science
9+
* Copyright (c) 2014-2018 Research Organization for Information Science
1010
* and Technology (RIST). All rights reserved.
1111
* Copyright (c) 2014 Intel, Inc. All rights reserved.
1212
*
13-
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
13+
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
1414
* $COPYRIGHT$
1515
*
1616
* Additional copyrights may follow
@@ -107,7 +107,7 @@ static inline int memchecker_call (int (*f)(void *, size_t), const void * addr,
107107

108108
if( datatype->super.size == (size_t) (datatype->super.true_ub - datatype->super.true_lb) ) {
109109
/* We have a contiguous type. */
110-
f( (void*)addr , datatype->super.size * count );
110+
f( (void*)((char *)addr+datatype->super.true_lb), datatype->super.size * count );
111111
} else {
112112
/* Now we got a noncontigous type. */
113113
uint32_t elem_pos = 0, i;
@@ -128,7 +128,18 @@ static inline int memchecker_call (int (*f)(void *, size_t), const void * addr,
128128

129129
while( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ) {
130130
/* now here we have a basic datatype */
131-
f( (void *)(source_base + pElem->elem.disp), pElem->elem.count*pElem->elem.extent );
131+
size_t blength = opal_datatype_basicDatatypes[pElem->elem.common.type]->size;
132+
if ((size_t)pElem->elem.extent == blength) {
133+
/* block is made of contiguous basic datatype */
134+
f( (void *)(source_base + pElem->elem.disp), pElem->elem.count*blength );
135+
} else {
136+
uint32_t j;
137+
ptrdiff_t offset;
138+
for (j = 0, offset=0; j < pElem->elem.count; j++) {
139+
f( (void *)(source_base + pElem->elem.disp + offset), blength);
140+
offset += pElem->elem.extent;
141+
}
142+
}
132143
elem_pos++; /* advance to the next data */
133144
pElem = &(description[elem_pos]);
134145
continue;

ompi/mca/osc/pt2pt/osc_pt2pt_frag.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* Copyright (c) 2012 Sandia National Laboratories. All rights reserved.
44
* Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights
55
* reserved.
6+
* Copyright (c) 2018 Research Organization for Information Science
7+
* and Technology (RIST). All rights reserved.
68
* $COPYRIGHT$
79
*
810
* Additional copyrights may follow
@@ -91,11 +93,18 @@ static inline ompi_osc_pt2pt_frag_t *ompi_osc_pt2pt_frag_alloc_non_buffered (omp
9193

9294
curr->header->base.type = OMPI_OSC_PT2PT_HDR_TYPE_FRAG;
9395
curr->header->base.flags = OMPI_OSC_PT2PT_HDR_FLAG_VALID;
96+
#if OPAL_ENABLE_DEBUG
97+
curr->header->padding[0] = 0;
98+
curr->header->padding[1] = 0;
99+
#endif
94100
if (module->passive_target_access_epoch) {
95101
curr->header->base.flags |= OMPI_OSC_PT2PT_HDR_FLAG_PASSIVE_TARGET;
96102
}
97103
curr->header->source = ompi_comm_rank(module->comm);
98104
curr->header->num_ops = 1;
105+
#if OPAL_ENABLE_DEBUG
106+
curr->header->pad = 0;
107+
#endif
99108

100109
return curr;
101110
}

ompi/mca/osc/pt2pt/osc_pt2pt_header.h

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
1414
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
1515
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
16-
* Copyright (c) 2015 Research Organization for Information Science
16+
* Copyright (c) 2015-2018 Research Organization for Information Science
1717
* and Technology (RIST). All rights reserved.
1818
* $COPYRIGHT$
1919
*
@@ -100,7 +100,7 @@ typedef struct ompi_osc_pt2pt_header_get_t ompi_osc_pt2pt_header_get_t;
100100

101101
struct ompi_osc_pt2pt_header_complete_t {
102102
ompi_osc_pt2pt_header_base_t base;
103-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
103+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
104104
uint8_t padding[2];
105105
#endif
106106
int frag_count;
@@ -123,7 +123,7 @@ typedef struct ompi_osc_pt2pt_header_post_t ompi_osc_pt2pt_header_post_t;
123123

124124
struct ompi_osc_pt2pt_header_lock_t {
125125
ompi_osc_pt2pt_header_base_t base;
126-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
126+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
127127
uint8_t padding[2];
128128
#endif
129129
int32_t lock_type;
@@ -133,14 +133,17 @@ typedef struct ompi_osc_pt2pt_header_lock_t ompi_osc_pt2pt_header_lock_t;
133133

134134
struct ompi_osc_pt2pt_header_lock_ack_t {
135135
ompi_osc_pt2pt_header_base_t base;
136+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
137+
uint8_t padding[2];
138+
#endif
136139
uint32_t source;
137140
uint64_t lock_ptr;
138141
};
139142
typedef struct ompi_osc_pt2pt_header_lock_ack_t ompi_osc_pt2pt_header_lock_ack_t;
140143

141144
struct ompi_osc_pt2pt_header_unlock_t {
142145
ompi_osc_pt2pt_header_base_t base;
143-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
146+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
144147
uint8_t padding[2];
145148
#endif
146149
int32_t lock_type;
@@ -151,7 +154,7 @@ typedef struct ompi_osc_pt2pt_header_unlock_t ompi_osc_pt2pt_header_unlock_t;
151154

152155
struct ompi_osc_pt2pt_header_unlock_ack_t {
153156
ompi_osc_pt2pt_header_base_t base;
154-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
157+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
155158
uint8_t padding[6];
156159
#endif
157160
uint64_t lock_ptr;
@@ -160,7 +163,7 @@ typedef struct ompi_osc_pt2pt_header_unlock_ack_t ompi_osc_pt2pt_header_unlock_a
160163

161164
struct ompi_osc_pt2pt_header_flush_t {
162165
ompi_osc_pt2pt_header_base_t base;
163-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
166+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
164167
uint8_t padding[2];
165168
#endif
166169
uint32_t frag_count;
@@ -170,7 +173,7 @@ typedef struct ompi_osc_pt2pt_header_flush_t ompi_osc_pt2pt_header_flush_t;
170173

171174
struct ompi_osc_pt2pt_header_flush_ack_t {
172175
ompi_osc_pt2pt_header_base_t base;
173-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
176+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
174177
uint8_t padding[6];
175178
#endif
176179
uint64_t lock_ptr;
@@ -179,6 +182,9 @@ typedef struct ompi_osc_pt2pt_header_flush_ack_t ompi_osc_pt2pt_header_flush_ack
179182

180183
struct ompi_osc_pt2pt_frag_header_t {
181184
ompi_osc_pt2pt_header_base_t base;
185+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
186+
uint8_t padding[2];
187+
#endif
182188
uint32_t source; /* rank in window of source process */
183189
opal_atomic_int32_t num_ops; /* number of operations in this buffer */
184190
uint32_t pad; /* ensure the fragment header is a multiple of 8 bytes */

ompi/mca/pml/ob1/pml_ob1_cuda.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
#include "pml_ob1_recvreq.h"
3737
#include "pml_ob1_sendreq.h"
3838
#include "ompi/mca/bml/base/base.h"
39-
#include "ompi/memchecker.h"
4039

4140
size_t mca_pml_ob1_rdma_cuda_btls(
4241
mca_bml_base_endpoint_t* bml_endpoint,

ompi/mca/pml/ob1/pml_ob1_hdr.h

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
* Copyright (c) 2009 IBM Corporation. All rights reserved.
1414
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
1515
* reserved.
16+
* Copyright (c) 2018 Research Organization for Information Science
17+
* and Technology (RIST). All rights reserved.
1618
* $COPYRIGHT$
1719
*
1820
* Additional copyrights may follow
@@ -84,11 +86,11 @@ struct mca_pml_ob1_match_hdr_t {
8486
int32_t hdr_src; /**< source rank */
8587
int32_t hdr_tag; /**< user tag */
8688
uint16_t hdr_seq; /**< message sequence number */
87-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
89+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
8890
uint8_t hdr_padding[2]; /**< explicitly pad to 16 bytes. Compilers seem to already prefer to do this, but make it explicit just in case */
8991
#endif
9092
};
91-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
93+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
9294
#define OMPI_PML_OB1_MATCH_HDR_LEN 16
9395
#else
9496
#define OMPI_PML_OB1_MATCH_HDR_LEN 14
@@ -104,7 +106,7 @@ static inline void mca_pml_ob1_match_hdr_prepare (mca_pml_ob1_match_hdr_t *hdr,
104106
hdr->hdr_src = hdr_src;
105107
hdr->hdr_tag = hdr_tag;
106108
hdr->hdr_seq = hdr_seq;
107-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
109+
#if OPAL_ENABLE_DEBUG
108110
hdr->hdr_padding[0] = 0;
109111
hdr->hdr_padding[1] = 0;
110112
#endif
@@ -169,7 +171,7 @@ static inline void mca_pml_ob1_rendezvous_hdr_prepare (mca_pml_ob1_rendezvous_hd
169171
*/
170172
struct mca_pml_ob1_rget_hdr_t {
171173
mca_pml_ob1_rendezvous_hdr_t hdr_rndv;
172-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
174+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
173175
uint8_t hdr_padding[4];
174176
#endif
175177
opal_ptr_t hdr_frag; /**< source fragment (for fin) */
@@ -185,7 +187,7 @@ static inline void mca_pml_ob1_rget_hdr_prepare (mca_pml_ob1_rget_hdr_t *hdr, ui
185187
{
186188
mca_pml_ob1_rendezvous_hdr_prepare (&hdr->hdr_rndv, MCA_PML_OB1_HDR_TYPE_RGET, hdr_flags,
187189
hdr_ctx, hdr_src, hdr_tag, hdr_seq, hdr_msg_length, hdr_src_req);
188-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
190+
#if OPAL_ENABLE_DEBUG
189191
hdr->hdr_padding[0] = 0;
190192
hdr->hdr_padding[1] = 0;
191193
hdr->hdr_padding[2] = 0;
@@ -215,7 +217,7 @@ static inline void mca_pml_ob1_rget_hdr_prepare (mca_pml_ob1_rget_hdr_t *hdr, ui
215217
*/
216218
struct mca_pml_ob1_frag_hdr_t {
217219
mca_pml_ob1_common_hdr_t hdr_common; /**< common attributes */
218-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
220+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
219221
uint8_t hdr_padding[6];
220222
#endif
221223
uint64_t hdr_frag_offset; /**< offset into message */
@@ -229,7 +231,7 @@ static inline void mca_pml_ob1_frag_hdr_prepare (mca_pml_ob1_frag_hdr_t *hdr, ui
229231
uint64_t hdr_dst_req)
230232
{
231233
mca_pml_ob1_common_hdr_prepare (&hdr->hdr_common, MCA_PML_OB1_HDR_TYPE_FRAG, hdr_flags);
232-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
234+
#if OPAL_ENABLE_DEBUG
233235
hdr->hdr_padding[0] = 0;
234236
hdr->hdr_padding[1] = 0;
235237
hdr->hdr_padding[2] = 0;
@@ -260,7 +262,7 @@ static inline void mca_pml_ob1_frag_hdr_prepare (mca_pml_ob1_frag_hdr_t *hdr, ui
260262

261263
struct mca_pml_ob1_ack_hdr_t {
262264
mca_pml_ob1_common_hdr_t hdr_common; /**< common attributes */
263-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
265+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
264266
uint8_t hdr_padding[6];
265267
#endif
266268
opal_ptr_t hdr_src_req; /**< source request */
@@ -275,7 +277,7 @@ static inline void mca_pml_ob1_ack_hdr_prepare (mca_pml_ob1_ack_hdr_t *hdr, uint
275277
uint64_t hdr_send_offset, uint64_t hdr_send_size)
276278
{
277279
mca_pml_ob1_common_hdr_prepare (&hdr->hdr_common, MCA_PML_OB1_HDR_TYPE_ACK, hdr_flags);
278-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
280+
#if OPAL_ENABLE_DEBUG
279281
hdr->hdr_padding[0] = 0;
280282
hdr->hdr_padding[1] = 0;
281283
hdr->hdr_padding[2] = 0;
@@ -313,8 +315,8 @@ static inline void mca_pml_ob1_ack_hdr_prepare (mca_pml_ob1_ack_hdr_t *hdr, uint
313315

314316
struct mca_pml_ob1_rdma_hdr_t {
315317
mca_pml_ob1_common_hdr_t hdr_common; /**< common attributes */
316-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
317-
uint8_t hdr_padding[2]; /** two to pad out the hdr to a 4 byte alignment. hdr_req will then be 8 byte aligned after 4 for hdr_seg_cnt */
318+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
319+
uint8_t hdr_padding[6]; /** two to pad out the hdr to a 4 byte alignment. hdr_req will then be 8 byte aligned after 4 for hdr_seg_cnt */
318320
#endif
319321
/* TODO: add real support for multiple destination segments */
320322
opal_ptr_t hdr_req; /**< destination request */
@@ -334,9 +336,13 @@ static inline void mca_pml_ob1_rdma_hdr_prepare (mca_pml_ob1_rdma_hdr_t *hdr, ui
334336
size_t local_handle_size)
335337
{
336338
mca_pml_ob1_common_hdr_prepare (&hdr->hdr_common, MCA_PML_OB1_HDR_TYPE_PUT, hdr_flags);
337-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
339+
#if OPAL_ENABLE_DEBUG
338340
hdr->hdr_padding[0] = 0;
339341
hdr->hdr_padding[1] = 0;
342+
hdr->hdr_padding[2] = 0;
343+
hdr->hdr_padding[3] = 0;
344+
hdr->hdr_padding[4] = 0;
345+
hdr->hdr_padding[5] = 0;
340346
#endif
341347
hdr->hdr_req.lval = hdr_req;
342348
hdr->hdr_frag.pval = hdr_frag;
@@ -371,8 +377,8 @@ static inline void mca_pml_ob1_rdma_hdr_prepare (mca_pml_ob1_rdma_hdr_t *hdr, ui
371377

372378
struct mca_pml_ob1_fin_hdr_t {
373379
mca_pml_ob1_common_hdr_t hdr_common; /**< common attributes */
374-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
375-
uint8_t hdr_padding[2];
380+
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT || OPAL_ENABLE_DEBUG
381+
uint8_t hdr_padding[6];
376382
#endif
377383
int64_t hdr_size; /**< number of bytes completed (positive), error code (negative) */
378384
opal_ptr_t hdr_frag; /**< completed RDMA fragment */
@@ -383,9 +389,13 @@ static inline void mca_pml_ob1_fin_hdr_prepare (mca_pml_ob1_fin_hdr_t *hdr, uint
383389
uint64_t hdr_frag, int64_t hdr_size)
384390
{
385391
mca_pml_ob1_common_hdr_prepare (&hdr->hdr_common, MCA_PML_OB1_HDR_TYPE_FIN, hdr_flags);
386-
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && OPAL_ENABLE_DEBUG
392+
#if OPAL_ENABLE_DEBUG
387393
hdr->hdr_padding[0] = 0;
388394
hdr->hdr_padding[1] = 0;
395+
hdr->hdr_padding[2] = 0;
396+
hdr->hdr_padding[3] = 0;
397+
hdr->hdr_padding[4] = 0;
398+
hdr->hdr_padding[5] = 0;
389399
#endif
390400
hdr->hdr_frag.lval = hdr_frag;
391401
hdr->hdr_size = hdr_size;

ompi/mca/pml/ob1/pml_ob1_recvfrag.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
#include "ompi/communicator/communicator.h"
4141
#include "ompi/mca/pml/pml.h"
4242
#include "ompi/peruse/peruse-internal.h"
43-
#include "ompi/memchecker.h"
4443
#include "ompi/runtime/ompi_spc.h"
4544

4645
#include "pml_ob1.h"

ompi/mca/pml/ob1/pml_ob1_recvreq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
#include "pml_ob1_sendreq.h"
4141
#include "pml_ob1_rdmafrag.h"
4242
#include "ompi/mca/bml/base/base.h"
43-
#include "ompi/memchecker.h"
43+
4444
#if OPAL_CUDA_SUPPORT
4545
#include "opal/datatype/opal_datatype_cuda.h"
4646
#include "opal/mca/common/cuda/common_cuda.h"

ompi/mca/pml/ob1/pml_ob1_sendreq.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
#include "pml_ob1_rdmafrag.h"
4040
#include "pml_ob1_recvreq.h"
4141
#include "ompi/mca/bml/base/base.h"
42-
#include "ompi/memchecker.h"
4342

4443
OBJ_CLASS_INSTANCE(mca_pml_ob1_send_range_t, opal_free_list_item_t,
4544
NULL, NULL);

0 commit comments

Comments
 (0)