opal/mca/memory: add a memoryc_set_alignment subroutine to the OPAL memory MCA
this commit also (partially) reverts : - open-mpi/ompi@7de01b347c - open-mpi/ompi@8b05f308f9
Этот коммит содержится в:
родитель
2c4b93f72b
Коммит
d8482ce6f4
@ -98,7 +98,7 @@
|
||||
#endif
|
||||
#include "ompi/runtime/ompi_cr.h"
|
||||
|
||||
#if defined(MEMORY_LINUX_PTMALLOC2) && MEMORY_LINUX_PTMALLOC2 && MEMORY_LINUX_HAVE_MALLOC_HOOK_SUPPORT
|
||||
#if defined(MEMORY_LINUX_PTMALLOC2) && MEMORY_LINUX_PTMALLOC2
|
||||
#include "opal/mca/memory/linux/memory_linux.h"
|
||||
/* So this sucks, but with OPAL in its own library that is brought in
|
||||
implicity from libmpi, there are times when the malloc initialize
|
||||
@ -106,7 +106,7 @@
|
||||
from here, since any MPI code is going to call MPI_Init... */
|
||||
OPAL_DECLSPEC void (*__malloc_initialize_hook) (void) =
|
||||
opal_memory_linux_malloc_init_hook;
|
||||
#endif /* defined(MEMORY_LINUX_PTMALLOC2) && MEMORY_LINUX_PTMALLOC2 && MEMORY_LINUX_HAVE_MALLOC_HOOK_SUPPORT */
|
||||
#endif /* defined(MEMORY_LINUX_PTMALLOC2) && MEMORY_LINUX_PTMALLOC2 */
|
||||
|
||||
/* This is required for the boundaries of the hash tables used to store
|
||||
* the F90 types returned by the MPI_Type_create_f90_XXX functions.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -51,6 +53,15 @@ OPAL_DECLSPEC int opal_memory_base_component_deregister_empty(void *start,
|
||||
size_t len,
|
||||
uint64_t cookie);
|
||||
|
||||
/**
|
||||
* Default (empty) implementation of the memoryc_set_alignment function
|
||||
*
|
||||
* See opal/mca/memory/memory.h for a description of the parameters.
|
||||
*/
|
||||
OPAL_DECLSPEC void opal_memory_base_component_set_alignment_empty(int use_memalign,
|
||||
size_t memalign_threshold);
|
||||
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -9,6 +9,8 @@
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -34,3 +36,9 @@ int opal_memory_base_component_deregister_empty(void *base, size_t len,
|
||||
{
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
|
||||
void opal_memory_base_component_set_alignment_empty(int use_memalign,
|
||||
size_t memalign_threshold)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,8 @@
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -54,6 +56,7 @@ static opal_memory_base_component_2_0_0_t empty_component = {
|
||||
empty_process,
|
||||
opal_memory_base_component_register_empty,
|
||||
opal_memory_base_component_deregister_empty,
|
||||
opal_memory_base_component_set_alignment_empty,
|
||||
};
|
||||
|
||||
|
||||
|
@ -13,6 +13,8 @@
|
||||
* Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -96,6 +98,11 @@ opal_memory_linux_component_t mca_memory_linux_component = {
|
||||
end up using ummunotify support. */
|
||||
.memoryc_register = opal_memory_base_component_register_empty,
|
||||
.memoryc_deregister = opal_memory_base_component_deregister_empty,
|
||||
#if MEMORY_LINUX_MALLOC_ALIGN_ENABLED
|
||||
.memoryc_set_alignment = opal_memory_linux_malloc_set_alignment,
|
||||
#else
|
||||
.memoryc_set_alignment = opal_memory_base_component_set_alignment_empty,
|
||||
#endif
|
||||
},
|
||||
|
||||
/* Component-specific data, filled in later (compiler will 0/NULL
|
||||
|
@ -14,6 +14,8 @@
|
||||
* Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -68,6 +70,7 @@ const opal_memory_base_component_2_0_0_t mca_memory_malloc_solaris_component = {
|
||||
provide safe/empty register/deregister functions to call */
|
||||
.memoryc_register = opal_memory_base_component_register_empty,
|
||||
.memoryc_deregister = opal_memory_base_component_deregister_empty,
|
||||
.memoryc_set_alignment = opal_memory_base_component_set_alignment_empty,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -13,6 +13,8 @@
|
||||
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -92,7 +94,7 @@ typedef int (*opal_memory_base_component_register_fn_t)(void *base,
|
||||
|
||||
|
||||
/**
|
||||
* Prototype for a function that is the opposite of
|
||||
* Prototype for a function that is the opposite of
|
||||
* opal_memory_base_component_register_fn_t: this function is invoked
|
||||
* when Open MPI stops to "caring" about a specific memory region.
|
||||
* That is, Open MPI declares that it no longer wants to be notified
|
||||
@ -111,6 +113,12 @@ typedef int (*opal_memory_base_component_deregister_fn_t)(void *base,
|
||||
uint64_t cookie);
|
||||
|
||||
|
||||
/**
|
||||
* Prototype for a function that set the memory alignment
|
||||
*/
|
||||
typedef void (*opal_memory_base_component_set_alignment_fn_t)(int use_memalign,
|
||||
size_t memalign_threshold);
|
||||
|
||||
/**
|
||||
* Structure for memory components.
|
||||
*/
|
||||
@ -132,6 +140,8 @@ typedef struct opal_memory_base_component_2_0_0_t {
|
||||
/** Function invoked when Open MPI stops "caring" about a
|
||||
specific memory region */
|
||||
opal_memory_base_component_deregister_fn_t memoryc_deregister;
|
||||
/** Function invoked in order to set malloc'ed memory alignment */
|
||||
opal_memory_base_component_set_alignment_fn_t memoryc_set_alignment;
|
||||
} opal_memory_base_component_2_0_0_t;
|
||||
|
||||
OPAL_DECLSPEC extern opal_memory_base_component_2_0_0_t *opal_memory;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user