42
42
#include <fcntl.h>
43
43
#include <stdlib.h>
44
44
#include <stddef.h>
45
- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
45
+ #if MEMORY_LINUX_MALLOC_ALIGN_ENABLED
46
46
/*
47
47
* The include of malloc.h below breaks abstractions in OMPI (by
48
48
* directly including a header file from another component), but has
55
55
* Internally, OMPI uses the built-in ptmalloc from the linux memory
56
56
* component anyway.
57
57
*/
58
- #include "opal/mca/memory/linux/malloc .h"
58
+ #include "opal/mca/memory/linux/memory_linux .h"
59
59
#endif
60
60
61
61
#include "opal/mca/event/event.h"
@@ -123,7 +123,6 @@ static void btl_openib_handle_incoming_completion(mca_btl_base_module_t* btl,
123
123
* Local variables
124
124
*/
125
125
static mca_btl_openib_device_t * receive_queues_device = NULL ;
126
- static bool malloc_hook_set = false;
127
126
static int num_devices_intentionally_ignored = 0 ;
128
127
129
128
mca_btl_openib_component_t mca_btl_openib_component = {
@@ -147,30 +146,6 @@ mca_btl_openib_component_t mca_btl_openib_component = {
147
146
}
148
147
};
149
148
150
- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
151
- /* This is a memory allocator hook. The purpose of this is to make
152
- * every malloc aligned since this speeds up IB HCA work.
153
- * There two basic cases here:
154
- *
155
- * 1. Memory manager for Open MPI is enabled. Then memalign below will
156
- * be overridden by __memalign_hook which is set to
157
- * opal_memory_linux_memalign_hook. Thus, _malloc_hook is going to
158
- * use opal_memory_linux_memalign_hook.
159
- *
160
- * 2. No memory manager support. The memalign below is just regular glibc
161
- * memalign which will be called through __malloc_hook instead of malloc.
162
- */
163
- static void * btl_openib_malloc_hook (size_t sz , const void * caller )
164
- {
165
- if (sz < mca_btl_openib_component .memalign_threshold &&
166
- malloc_hook_set ) {
167
- return mca_btl_openib_component .previous_malloc_hook (sz , caller );
168
- } else {
169
- return memalign (mca_btl_openib_component .use_memalign , sz );
170
- }
171
- }
172
- #endif
173
-
174
149
static int btl_openib_component_register (void )
175
150
{
176
151
int ret ;
@@ -257,16 +232,6 @@ static int btl_openib_component_close(void)
257
232
free (mca_btl_openib_component .default_recv_qps );
258
233
}
259
234
260
- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
261
- /* Must check to see whether the malloc hook was set before
262
- assigning it back because ompi_info will call _register() and
263
- then _close() (which won't set the hook) */
264
- if (malloc_hook_set ) {
265
- __malloc_hook = mca_btl_openib_component .previous_malloc_hook ;
266
- malloc_hook_set = false;
267
- }
268
- #endif
269
-
270
235
/* close memory registration debugging output */
271
236
opal_output_close (mca_btl_openib_component .memory_registration_verbose );
272
237
@@ -2547,19 +2512,14 @@ btl_openib_component_init(int *num_btl_modules,
2547
2512
* num_btl_modules = 0 ;
2548
2513
num_devs = 0 ;
2549
2514
2550
- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
2515
+ #if MEMORY_LINUX_MALLOC_ALIGN_ENABLED
2551
2516
/* If we got this far, then setup the memory alloc hook (because
2552
2517
we're most likely going to be using this component). The hook
2553
2518
is to be set up as early as possible in this function since we
2554
- want most of the allocated resources be aligned.*/
2555
- if (mca_btl_openib_component .use_memalign > 0 &&
2556
- (opal_mem_hooks_support_level () &
2557
- (OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_CHUNK_SUPPORT )) != 0 ) {
2558
- mca_btl_openib_component .previous_malloc_hook = __malloc_hook ;
2559
- __malloc_hook = btl_openib_malloc_hook ;
2560
- malloc_hook_set = true;
2561
- }
2562
- #endif
2519
+ want most of the allocated resources be aligned.
2520
+ */
2521
+ opal_memory_linux_malloc_set_alignment (32 , 12288 );
2522
+ #endif /* MEMORY_LINUX_MALLOC_ALIGN_ENABLED */
2563
2523
2564
2524
/* Per https://svn.open-mpi.org/trac/ompi/ticket/1305, check to
2565
2525
see if $sysfsdir/class/infiniband exists. If it does not,
@@ -2960,13 +2920,6 @@ btl_openib_component_init(int *num_btl_modules,
2960
2920
2961
2921
mca_btl_openib_component .ib_num_btls = 0 ;
2962
2922
btl_openib_modex_send ();
2963
- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
2964
- /*Unset malloc hook since the component won't start*/
2965
- if (malloc_hook_set ) {
2966
- __malloc_hook = mca_btl_openib_component .previous_malloc_hook ;
2967
- malloc_hook_set = false;
2968
- }
2969
- #endif
2970
2923
if (NULL != btls ) {
2971
2924
free (btls );
2972
2925
}
0 commit comments