4242#include <fcntl.h>
4343#include <stdlib.h>
4444#include <stddef.h>
45- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
45+ #if MEMORY_LINUX_MALLOC_ALIGN_ENABLED
4646/*
4747 * The include of malloc.h below breaks abstractions in OMPI (by
4848 * directly including a header file from another component), but has
5555 * Internally, OMPI uses the built-in ptmalloc from the linux memory
5656 * component anyway.
5757 */
58- #include "opal/mca/memory/linux/malloc .h"
58+ #include "opal/mca/memory/linux/memory_linux .h"
5959#endif
6060
6161#include "opal/mca/event/event.h"
@@ -123,7 +123,6 @@ static void btl_openib_handle_incoming_completion(mca_btl_base_module_t* btl,
123123 * Local variables
124124 */
125125static mca_btl_openib_device_t * receive_queues_device = NULL ;
126- static bool malloc_hook_set = false;
127126static int num_devices_intentionally_ignored = 0 ;
128127
129128mca_btl_openib_component_t mca_btl_openib_component = {
@@ -147,30 +146,6 @@ mca_btl_openib_component_t mca_btl_openib_component = {
147146 }
148147};
149148
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-
174149static int btl_openib_component_register (void )
175150{
176151 int ret ;
@@ -257,16 +232,6 @@ static int btl_openib_component_close(void)
257232 free (mca_btl_openib_component .default_recv_qps );
258233 }
259234
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-
270235 /* close memory registration debugging output */
271236 opal_output_close (mca_btl_openib_component .memory_registration_verbose );
272237
@@ -2547,19 +2512,14 @@ btl_openib_component_init(int *num_btl_modules,
25472512 * num_btl_modules = 0 ;
25482513 num_devs = 0 ;
25492514
2550- #if BTL_OPENIB_MALLOC_HOOKS_ENABLED
2515+ #if MEMORY_LINUX_MALLOC_ALIGN_ENABLED
25512516 /* If we got this far, then setup the memory alloc hook (because
25522517 we're most likely going to be using this component). The hook
25532518 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 , mca_btl_openib_module .super .btl_eager_limit );
2522+ #endif /* MEMORY_LINUX_MALLOC_ALIGN_ENABLED */
25632523
25642524 /* Per https://svn.open-mpi.org/trac/ompi/ticket/1305, check to
25652525 see if $sysfsdir/class/infiniband exists. If it does not,
@@ -2960,13 +2920,6 @@ btl_openib_component_init(int *num_btl_modules,
29602920
29612921 mca_btl_openib_component .ib_num_btls = 0 ;
29622922 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
29702923 if (NULL != btls ) {
29712924 free (btls );
29722925 }
0 commit comments