1
1

Big datatype commit. Remove all unused features of the datatype engine. As the memory

allocation logic is completely done outside the data-type engine (in the PML) there is
no need for any special case inside the data-type engine. There is less arguments for
the ompi_convertor_pack and ompi_convertor_unpack as well (the last field free_after is
not required anymore as there is no memory allocated in the engine itself). This change
affect all components using datatypes. I test most of them, but it might happens that I
miss some ... If it's the case please let me know (don't shoot the pianist!!).

This commit was SVN r12331.
Этот коммит содержится в:
George Bosilca 2006-10-26 23:11:26 +00:00
родитель a1a4f7c422
Коммит 126a68dc9a
36 изменённых файлов: 142 добавлений и 241 удалений

Просмотреть файл

@ -224,7 +224,7 @@ ompi_convertor_t* ompi_convertor_create( int32_t remote_arch, int32_t mode )
*/
int32_t ompi_convertor_pack( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter )
size_t* max_data )
{
OMPI_CONVERTOR_SET_STATUS_BEFORE_PACK_UNPACK( pConv, iov, out_size, max_data );
@ -265,12 +265,12 @@ int32_t ompi_convertor_pack( ompi_convertor_t* pConv,
return 0;
}
return pConv->fAdvance( pConv, iov, out_size, max_data, freeAfter );
return pConv->fAdvance( pConv, iov, out_size, max_data );
}
int32_t ompi_convertor_unpack( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter )
size_t* max_data )
{
OMPI_CONVERTOR_SET_STATUS_BEFORE_PACK_UNPACK( pConv, iov, out_size, max_data );
@ -311,7 +311,7 @@ int32_t ompi_convertor_unpack( ompi_convertor_t* pConv,
return 1;
}
return pConv->fAdvance( pConv, iov, out_size, max_data, freeAfter );
return pConv->fAdvance( pConv, iov, out_size, max_data );
}
static inline
@ -500,7 +500,6 @@ ompi_convertor_prepare_for_recv( ompi_convertor_t* convertor,
/* Here I should check that the data is not overlapping */
convertor->flags |= CONVERTOR_RECV;
convertor->memAlloc_fn = NULL;
OMPI_CONVERTOR_PREPARE( convertor, datatype, count, pUserBuf );
@ -537,7 +536,6 @@ ompi_convertor_prepare_for_send( ompi_convertor_t* convertor,
const void* pUserBuf )
{
convertor->flags |= CONVERTOR_SEND;
convertor->memAlloc_fn = NULL;
OMPI_CONVERTOR_PREPARE( convertor, datatype, count, pUserBuf );
@ -586,8 +584,6 @@ int ompi_convertor_clone( const ompi_convertor_t* source,
destination->count = source->count;
destination->pBaseBuf = source->pBaseBuf;
destination->fAdvance = source->fAdvance;
destination->memAlloc_fn = source->memAlloc_fn;
destination->memAlloc_userdata = source->memAlloc_userdata;
destination->master = source->master;
destination->local_size = source->local_size;
destination->remote_size = source->remote_size;

Просмотреть файл

@ -56,8 +56,7 @@ typedef struct ompi_convertor_t ompi_convertor_t;
typedef int32_t (*convertor_advance_fct_t)( ompi_convertor_t* pConvertor,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter );
size_t* max_data );
typedef void*(*memalloc_fct_t)( size_t* pLength, void* userdata );
/* The master convertor struct (defined in convertor_internal.h) */
@ -89,8 +88,6 @@ struct ompi_convertor_t {
dt_stack_t* pStack; /**< the local stack for the actual conversion */
uint32_t stack_size; /**< size of the allocated stack */
convertor_advance_fct_t fAdvance; /**< pointer to the pack/unpack functions */
memalloc_fct_t memAlloc_fn; /**< pointer to the memory allocation function */
void* memAlloc_userdata; /**< user data for the malloc function */
struct ompi_convertor_master_t* master; /* the master convertor */
/* All others fields get modified for every call to pack/unpack functions */
uint32_t stack_pos; /**< the actual position on the stack */
@ -124,8 +121,7 @@ OMPI_DECLSPEC int32_t
ompi_convertor_pack( ompi_convertor_t* pConv,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter );
size_t* max_data );
/*
*
@ -134,8 +130,7 @@ OMPI_DECLSPEC int32_t
ompi_convertor_unpack( ompi_convertor_t* pConv,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter );
size_t* max_data );
/*
*
@ -280,12 +275,9 @@ ompi_convertor_set_position( ompi_convertor_t* convertor,
*/
static inline int32_t
ompi_convertor_personalize( ompi_convertor_t* convertor, uint32_t flags,
size_t* position,
memalloc_fct_t allocfn, void* userdata )
size_t* position )
{
convertor->flags |= flags;
convertor->memAlloc_fn = allocfn;
convertor->memAlloc_userdata = userdata;
if( NULL == position )
return OMPI_SUCCESS;

Просмотреть файл

@ -53,8 +53,7 @@ int32_t
ompi_pack_homogeneous_contig_function( ompi_convertor_t* pConv,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int* freeAfter )
size_t* max_data )
{
dt_stack_t* pStack = pConv->pStack;
char *source_base = NULL;
@ -62,7 +61,6 @@ ompi_pack_homogeneous_contig_function( ompi_convertor_t* pConv,
size_t length = pConv->local_size - pConv->bConverted, initial_amount = pConv->bConverted;
ptrdiff_t initial_displ = pConv->use_desc->desc[pConv->use_desc->used].end_loop.first_elem_disp;
*freeAfter = 0;
source_base = (pConv->pBaseBuf + initial_displ + pStack[0].disp + pStack[1].disp);
/* There are some optimizations that can be done if the upper level
@ -101,8 +99,7 @@ int32_t
ompi_pack_homogeneous_contig_with_gaps_function( ompi_convertor_t* pConv,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int* freeAfter )
size_t* max_data )
{
const ompi_datatype_t* pData = pConv->pDesc;
dt_stack_t* pStack = pConv->pStack;
@ -122,7 +119,6 @@ ompi_pack_homogeneous_contig_with_gaps_function( ompi_convertor_t* pConv,
i = (uint32_t)(pConv->bConverted / pData->size); /* how many we already pack */
*freeAfter = 0;
/* There are some optimizations that can be done if the upper level
* does not provide a buffer.
*/
@ -189,17 +185,6 @@ ompi_pack_homogeneous_contig_with_gaps_function( ompi_convertor_t* pConv,
uint32_t counter;
size_t done;
if( iov[iov_count].iov_base == NULL ) {
size_t length = iov[iov_count].iov_len;
if( 0 == length ) length = max_allowed;
iov[iov_count].iov_base = (IOVBASE_TYPE*)pConv->memAlloc_fn( &length, pConv->memAlloc_userdata );
iov[iov_count].iov_len = length;
(*freeAfter) |= (1 << 0);
if( max_allowed < (size_t)iov[iov_count].iov_len )
iov[iov_count].iov_len = max_allowed;
else
max_allowed = iov[iov_count].iov_len;
}
packed_buffer = iov[iov_count].iov_base;
done = pConv->bConverted - i * pData->size; /* how much data left last time */
user_memory += done;
@ -254,8 +239,7 @@ ompi_pack_homogeneous_contig_with_gaps_function( ompi_convertor_t* pConv,
int32_t
ompi_generic_simple_pack_function( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter )
size_t* max_data )
{
dt_stack_t* pStack; /* pointer to the position on the stack */
uint32_t pos_desc; /* actual position in the description of the derived datatype */
@ -293,20 +277,6 @@ ompi_generic_simple_pack_function( ompi_convertor_t* pConvertor,
pConvertor->stack_pos, pStack->index, pStack->count, pStack->disp ); );
for( iov_count = 0; iov_count < (*out_size); iov_count++ ) {
if( iov[iov_count].iov_base == NULL ) {
/*
* ALLOCATE SOME MEMORY ...
*/
size_t length = iov[iov_count].iov_len;
if( length <= 0 )
length = pConvertor->local_size - pConvertor->bConverted;
if( ((*max_data) - total_packed) < length )
length = (*max_data) - total_packed;
assert( 0 < length );
iov[iov_count].iov_base = (IOVBASE_TYPE*)pConvertor->memAlloc_fn( &length, pConvertor->memAlloc_userdata );
iov[iov_count].iov_len = length;
*freeAfter = (*freeAfter) | (1 << iov_count);
}
destination = iov[iov_count].iov_base;
iov_len_local = iov[iov_count].iov_len;
while( 1 ) {

Просмотреть файл

@ -18,50 +18,50 @@
OMPI_DECLSPEC int32_t
ompi_pack_homogeneous_contig( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_pack_homogeneous_contig_checksum( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_pack_homogeneous_contig_with_gaps( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_pack_homogeneous_contig_with_gaps_checksum( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_generic_simple_pack( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_generic_simple_pack_checksum( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_unpack_general( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_unpack_general_checksum( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_unpack_homogeneous_contig( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_unpack_homogeneous_contig_checksum( ompi_convertor_t* pConv,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_generic_simple_unpack( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
OMPI_DECLSPEC int32_t
ompi_generic_simple_unpack_checksum( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data, int32_t* freeAfter );
size_t* max_data );
#endif /* DATATYPE_PROTOTYPES_H_HAS_BEEN_INCLUDED */

Просмотреть файл

@ -58,8 +58,7 @@ int32_t
ompi_unpack_general_function( ompi_convertor_t* pConvertor,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter )
size_t* max_data )
{
dt_stack_t* pStack; /* pointer to the position on the stack */
uint32_t pos_desc; /* actual position in the description of the derived datatype */
@ -184,8 +183,7 @@ int32_t
ompi_unpack_homogeneous_contig_function( ompi_convertor_t* pConv,
struct iovec* iov,
uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter )
size_t* max_data )
{
const ompi_datatype_t *pData = pConv->pDesc;
char *user_memory, *packed_buffer;
@ -345,8 +343,7 @@ ompi_unpack_partial_datatype( ompi_convertor_t* pConvertor, dt_elem_desc_t* pEle
int32_t
ompi_generic_simple_unpack_function( ompi_convertor_t* pConvertor,
struct iovec* iov, uint32_t* out_size,
size_t* max_data,
int32_t* freeAfter )
size_t* max_data )
{
dt_stack_t* pStack; /* pointer to the position on the stack */
uint32_t pos_desc; /* actual position in the description of the derived datatype */

Просмотреть файл

@ -46,7 +46,6 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
int length, completed;
uint32_t iov_count;
size_t max_data;
int32_t freeAfter;
/* First check if we really have something to do */
if (0 == rcount) {
@ -68,14 +67,14 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
if (rdtype == MPI_PACKED) {
send_convertor = OBJ_NEW(ompi_convertor_t);
ompi_convertor_prepare_for_send( send_convertor, sdtype, scount, sbuf );
ompi_convertor_personalize( send_convertor, 0, 0, NULL, NULL );
ompi_convertor_personalize( send_convertor, 0, 0 );
iov_count = 1;
iov.iov_len = rcount;
iov.iov_base = (IOVBASE_TYPE*)rbuf;
max_data = ( (size_t)iov.iov_len > (scount * sdtype->size) ? (scount * sdtype->size) : iov.iov_len );
err = ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data, &freeAfter );
err = ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data );
OBJ_RELEASE( send_convertor );
return ((max_data < (uint32_t)rcount) ? MPI_ERR_TRUNCATE : MPI_SUCCESS);
}
@ -90,7 +89,7 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
iov.iov_base = (IOVBASE_TYPE*)sbuf;
max_data = ( (size_t)iov.iov_len < (rcount * rdtype->size) ? iov.iov_len : (rcount * rdtype->size) );
err = ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data, &freeAfter );
err = ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data );
if( scount > (int32_t)(rcount * rdtype->size) )
err = MPI_ERR_TRUNCATE;
OBJ_RELEASE( recv_convertor );
@ -110,8 +109,8 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
iov.iov_len = length;
iov_count = 1;
max_data = length;
completed |= ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data, &freeAfter );
completed |= ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data, &freeAfter );
completed |= ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data );
completed |= ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data );
}
free( iov.iov_base );
OBJ_RELEASE( send_convertor );

Просмотреть файл

@ -271,7 +271,6 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
#if (OMPI_MCA_BTL_GM_HAVE_RDMA_GET || OMPI_MCA_BTL_GM_HAVE_RDMA_PUT)
@ -293,7 +292,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
frag->segment.seg_len = max_data;
frag->segment.seg_addr.pval = iov.iov_base;
@ -330,7 +329,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
frag->segment.seg_len = max_data;
frag->segment.seg_addr.pval = iov.iov_base;
@ -363,7 +362,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {
MCA_BTL_GM_FRAG_RETURN(btl, frag);
@ -389,7 +388,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {

Просмотреть файл

@ -272,7 +272,6 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
@ -290,7 +289,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
frag->segment.seg_len = max_data;
@ -333,7 +332,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
frag->segment.seg_len = max_data;
@ -378,7 +377,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {
MCA_BTL_IB_FRAG_RETURN(btl, frag);
@ -407,7 +406,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {

Просмотреть файл

@ -253,7 +253,6 @@ mca_btl_base_descriptor_t* mca_btl_mx_prepare_src( struct mca_btl_base_module_t*
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
@ -291,7 +290,7 @@ mca_btl_base_descriptor_t* mca_btl_mx_prepare_src( struct mca_btl_base_module_t*
frag->base.des_src_cnt = 1;
}
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {
MCA_BTL_MX_FRAG_RETURN( mx_btl, frag );

Просмотреть файл

@ -341,7 +341,6 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
openib_btl = (mca_btl_openib_module_t*) btl;
@ -361,7 +360,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
frag->segment.seg_len = max_data;
frag->segment.seg_addr.pval = iov.iov_base;
@ -399,7 +398,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
frag->segment.seg_len = max_data;
frag->segment.seg_addr.pval = iov.iov_base;
@ -447,7 +446,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {
MCA_BTL_IB_FRAG_RETURN(openib_btl, frag);
@ -476,7 +475,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {

Просмотреть файл

@ -304,7 +304,6 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base,
size_t max_data = *size;
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
int ret;
assert(&mca_btl_portals_module == (mca_btl_portals_module_t*) btl_base);
@ -323,7 +322,7 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base,
iov.iov_len = max_data;
iov.iov_base = (unsigned char*) frag->segments[0].seg_addr.pval + reserve;
ret = ompi_convertor_pack(convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
*size = max_data;
if ( ret < 0 ) {
return NULL;
@ -352,8 +351,7 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base,
iov.iov_len = max_data;
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data,
&free_after);
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
frag->segments[0].seg_len = max_data;
frag->segments[0].seg_addr.pval = iov.iov_base;

Просмотреть файл

@ -64,35 +64,35 @@ mca_btl_base_module_t mca_btl_self = {
mca_btl_self_prepare_dst,
mca_btl_self_send,
mca_btl_self_rdma, /* put */
mca_btl_self_rdma,
mca_btl_self_rdma, /* get */
mca_btl_base_dump,
NULL, /* mpool */
NULL /* register error cb */
};
int mca_btl_self_add_procs(
struct mca_btl_base_module_t* btl,
size_t nprocs,
struct ompi_proc_t **procs,
struct mca_btl_base_endpoint_t **peers,
ompi_bitmap_t* reachability)
int mca_btl_self_add_procs( struct mca_btl_base_module_t* btl,
size_t nprocs,
struct ompi_proc_t **procs,
struct mca_btl_base_endpoint_t **peers,
ompi_bitmap_t* reachability )
{
size_t i;
for(i=0; i<nprocs; i++) {
if(procs[i] == ompi_proc_local_proc) {
ompi_bitmap_set_bit(reachability, i);
for( i = 0; i < nprocs; i++ ) {
if( procs[i] == ompi_proc_local_proc ) {
ompi_bitmap_set_bit( reachability, i );
break; /* there will always be only one ... */
}
}
return OMPI_SUCCESS;
}
int mca_btl_self_del_procs(
struct mca_btl_base_module_t* btl,
size_t nprocs,
struct ompi_proc_t **procs,
struct mca_btl_base_endpoint_t **peers)
int mca_btl_self_del_procs( struct mca_btl_base_module_t* btl,
size_t nprocs,
struct ompi_proc_t **procs,
struct mca_btl_base_endpoint_t **peers )
{
return OMPI_SUCCESS;
}
@ -129,11 +129,10 @@ int mca_btl_self_finalize(struct mca_btl_base_module_t* btl)
* resources associated with the peer.
*/
int mca_btl_self_register(
struct mca_btl_base_module_t* btl,
mca_btl_base_tag_t tag,
mca_btl_base_module_recv_cb_fn_t cbfunc,
void* cbdata)
int mca_btl_self_register( struct mca_btl_base_module_t* btl,
mca_btl_base_tag_t tag,
mca_btl_base_module_recv_cb_fn_t cbfunc,
void* cbdata )
{
mca_btl_self_component.self_reg[tag].cbfunc = cbfunc;
mca_btl_self_component.self_reg[tag].cbdata = cbdata;
@ -147,9 +146,8 @@ int mca_btl_self_register(
* @param btl (IN) BTL module
* @param size (IN) Request segment size.
*/
extern mca_btl_base_descriptor_t* mca_btl_self_alloc(
struct mca_btl_base_module_t* btl,
size_t size)
mca_btl_base_descriptor_t* mca_btl_self_alloc( struct mca_btl_base_module_t* btl,
size_t size )
{
mca_btl_self_frag_t* frag;
int rc;
@ -163,7 +161,9 @@ extern mca_btl_base_descriptor_t* mca_btl_self_alloc(
return NULL;
}
frag->base.des_flags = 0;
frag->base.des_flags = 0;
frag->base.des_src = &(frag->segment);
frag->base.des_src_cnt = 1;
return (mca_btl_base_descriptor_t*)frag;
}
@ -173,11 +173,16 @@ extern mca_btl_base_descriptor_t* mca_btl_self_alloc(
* @param btl (IN) BTL module
* @param segment (IN) Allocated segment.
*/
extern int mca_btl_self_free(
struct mca_btl_base_module_t* btl,
mca_btl_base_descriptor_t* des)
int mca_btl_self_free( struct mca_btl_base_module_t* btl,
mca_btl_base_descriptor_t* des )
{
mca_btl_self_frag_t* frag = (mca_btl_self_frag_t*)des;
frag->base.des_src = NULL;
frag->base.des_src_cnt = 0;
frag->base.des_dst = NULL;
frag->base.des_dst_cnt = 0;
if(frag->size == mca_btl_self.btl_eager_limit) {
MCA_BTL_SELF_FRAG_RETURN_EAGER(frag);
} else if (frag->size == mca_btl_self.btl_max_send_size) {
@ -206,11 +211,13 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
/* non-contigous data */
if(ompi_convertor_need_buffers(convertor) || max_data < mca_btl_self.btl_max_send_size || reserve != 0) {
if( ompi_convertor_need_buffers(convertor) ||
max_data < mca_btl_self.btl_max_send_size ||
reserve != 0 ) {
MCA_BTL_SELF_FRAG_ALLOC_SEND(frag, rc);
if(NULL == frag) {
return NULL;
@ -222,7 +229,7 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)(frag+1) + reserve);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
if(rc < 0) {
MCA_BTL_SELF_FRAG_RETURN_SEND(frag);
return NULL;
@ -240,20 +247,19 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src(
iov.iov_base = NULL;
/* convertor should return offset into users buffer */
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
if(rc < 0) {
MCA_BTL_SELF_FRAG_RETURN_RDMA(frag);
return NULL;
}
frag->segment.seg_addr.pval = iov.iov_base;
frag->segment.seg_len = max_data;
frag->base.des_src = &frag->segment;
frag->base.des_src_cnt = 1;
frag->base.des_dst = NULL;
frag->base.des_dst_cnt = 0;
frag->base.des_flags = 0;
*size = max_data;
}
frag->base.des_src = &frag->segment;
frag->base.des_src_cnt = 1;
frag->segment.seg_key.key64 = (uint64_t)(intptr_t)convertor;
return &frag->base;
}
@ -282,15 +288,12 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_dst(
ompi_ddt_type_lb( convertor->pDesc, &lb );
frag->segment.seg_addr.pval = (unsigned char*)convertor->pBaseBuf + lb + convertor->bConverted;
frag->segment.seg_len = reserve + max_data;
frag->base.des_src = NULL;
frag->base.des_src_cnt = 0;
frag->segment.seg_key.key64 = (uint64_t)(intptr_t)convertor;
frag->base.des_dst = &frag->segment;
frag->base.des_dst_cnt = 1;
frag->base.des_flags = 0;
return &frag->base;
}
/**
* Initiate a send to the peer.
@ -299,11 +302,10 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_dst(
* @param peer (IN) BTL peer addressing
*/
int mca_btl_self_send(
struct mca_btl_base_module_t* btl,
struct mca_btl_base_endpoint_t* endpoint,
struct mca_btl_base_descriptor_t* des,
mca_btl_base_tag_t tag)
int mca_btl_self_send( struct mca_btl_base_module_t* btl,
struct mca_btl_base_endpoint_t* endpoint,
struct mca_btl_base_descriptor_t* des,
mca_btl_base_tag_t tag )
{
/**
* We have to set the dst before the call to the function and reset them
@ -327,10 +329,9 @@ int mca_btl_self_send(
* @param peer (IN) BTL peer addressing
*/
extern int mca_btl_self_rdma(
struct mca_btl_base_module_t* btl,
struct mca_btl_base_endpoint_t* endpoint,
struct mca_btl_base_descriptor_t* des)
int mca_btl_self_rdma( struct mca_btl_base_module_t* btl,
struct mca_btl_base_endpoint_t* endpoint,
struct mca_btl_base_descriptor_t* des )
{
mca_btl_base_segment_t* src = des->des_src;
mca_btl_base_segment_t* dst = des->des_dst;
@ -398,5 +399,3 @@ extern int mca_btl_self_rdma(
des->des_cbfunc(btl,endpoint,des,OMPI_SUCCESS);
return OMPI_SUCCESS;
}

Просмотреть файл

@ -827,7 +827,6 @@ struct mca_btl_base_descriptor_t* mca_btl_sm_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
MCA_BTL_SM_FRAG_ALLOC2(frag, rc);
@ -841,7 +840,7 @@ struct mca_btl_base_descriptor_t* mca_btl_sm_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)(((unsigned char*)(frag+1)) + reserve);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
if(rc < 0) {
MCA_BTL_SM_FRAG_RETURN(frag);
return NULL;

Просмотреть файл

@ -240,7 +240,6 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
/*
@ -277,7 +276,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)(((unsigned char*)(frag+1)) + reserve);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
if( rc < 0 ) {
mca_btl_tcp_free(btl, &frag->base);
return NULL;
@ -292,7 +291,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src(
iov.iov_len = max_data;
iov.iov_base = NULL;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
if( rc < 0 ) {
mca_btl_tcp_free(btl, &frag->base);
return NULL;

Просмотреть файл

@ -222,7 +222,6 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
@ -240,7 +239,7 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {
MCA_BTL_TEMPLATE_FRAG_RETURN_EAGER(btl, frag);
@ -265,7 +264,7 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_src(
iov.iov_len = max_data;
iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data );
*size = max_data;
if( rc < 0 ) {

Просмотреть файл

@ -410,7 +410,6 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src(
struct iovec iov;
uint32_t iov_count = 1;
size_t max_data = *size;
int32_t free_after;
int rc;
#if 0
@ -431,7 +430,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src(
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov,
&iov_count, &max_data, &free_after);
&iov_count, &max_data );
frag->segment.seg_len = max_data;
frag->segment.seg_addr.pval = iov.iov_base;
@ -470,7 +469,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src(
iov.iov_base = NULL;
ompi_convertor_pack(convertor, &iov,
&iov_count, &max_data, &free_after);
&iov_count, &max_data );
rc = mpool->mpool_register(
@ -511,7 +510,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src(
iov.iov_base = (char *) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor,
&iov, &iov_count, &max_data, &free_after);
&iov, &iov_count, &max_data );
*size = max_data;
if(rc < 0) {
MCA_BTL_UDAPL_FRAG_RETURN_EAGER(btl, frag);
@ -537,7 +536,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src(
iov.iov_base = (char *) frag->segment.seg_addr.pval + reserve;
rc = ompi_convertor_pack(convertor,
&iov, &iov_count, &max_data, &free_after);
&iov, &iov_count, &max_data );
*size = max_data;
if(rc < 0) {

Просмотреть файл

@ -439,7 +439,6 @@ extern "C" {
* these are thread safe)
*/
extern uint32_t mca_coll_sm_iov_size;
extern int32_t mca_coll_sm_bogus_free_after;
/**
@ -487,7 +486,7 @@ extern int32_t mca_coll_sm_bogus_free_after;
((rank) * mca_coll_sm_component.sm_fragment_size); \
(max_data) = (iov).iov_len = mca_coll_sm_component.sm_fragment_size; \
ompi_convertor_pack(&(convertor), &(iov), &mca_coll_sm_iov_size, \
&(max_data), &mca_coll_sm_bogus_free_after)
&(max_data) )
/**
* Macro to copy a single segment out from a shared segment to a user
@ -497,7 +496,7 @@ extern int32_t mca_coll_sm_bogus_free_after;
(iov).iov_base = (((char*) (index)->mcbmi_data) + \
((src_rank) * mca_coll_sm_component.sm_fragment_size)); \
ompi_convertor_unpack(&(convertor), &(iov), &mca_coll_sm_iov_size, \
&(max_data), &mca_coll_sm_bogus_free_after)
&(max_data) )
/**
* Macro to memcpy a fragment between one shared segment and another

Просмотреть файл

@ -57,7 +57,6 @@
* Global variables
*/
uint32_t mca_coll_sm_iov_size = 1;
int32_t mca_coll_sm_bogus_free_after = 0;
/*

Просмотреть файл

@ -32,7 +32,6 @@ ompi_mtl_datatype_pack(struct ompi_convertor_t *convertor,
{
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data;
ompi_convertor_get_packed_size(convertor, &max_data);
@ -48,8 +47,7 @@ ompi_mtl_datatype_pack(struct ompi_convertor_t *convertor,
*freeAfter = false;
}
ompi_convertor_pack(convertor, &iov, &iov_count, &max_data,
&free_after);
ompi_convertor_pack( convertor, &iov, &iov_count, &max_data );
*buffer = iov.iov_base;
*buffer_len = iov.iov_len;
@ -91,7 +89,6 @@ ompi_mtl_datatype_unpack(struct ompi_convertor_t *convertor,
{
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data;
iov.iov_len = buffer_len;
@ -100,8 +97,7 @@ ompi_mtl_datatype_unpack(struct ompi_convertor_t *convertor,
if (max_data > 0 && ompi_convertor_need_buffers(convertor)) {
ompi_convertor_unpack(convertor, &iov, &iov_count,
&max_data, &free_after);
ompi_convertor_unpack(convertor, &iov, &iov_count, &max_data );
free(buffer);
}

Просмотреть файл

@ -50,8 +50,7 @@ ompi_mtl_mx_send(struct mca_mtl_base_module_t* mtl,
ret = ompi_mtl_datatype_pack(convertor,
&mtl_mx_request.mx_segment[0].segment_ptr,
&length,
&mtl_mx_request.free_after);
&length);
mtl_mx_request.mx_segment[0].segment_length = length;
@ -147,8 +146,7 @@ ompi_mtl_mx_isend(struct mca_mtl_base_module_t* mtl,
ret = ompi_mtl_datatype_pack(convertor,
&mtl_mx_request->mx_segment[0].segment_ptr,
&length,
&mtl_mx_request->free_after);
&length);
mtl_mx_request->mx_segment[0].segment_length = length;
mtl_mx_request->convertor = convertor;
mtl_mx_request->type = OMPI_MTL_MX_ISEND;

Просмотреть файл

@ -103,7 +103,6 @@ ompi_mtl_portals_get_data(ompi_mtl_portals_event_t *recv_event,
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data;
ompi_mtl_portals_recv_short_block_t *block =
@ -123,7 +122,7 @@ ompi_mtl_portals_get_data(ompi_mtl_portals_event_t *recv_event,
/* pull out the data */
if (iov.iov_len > 0) {
ompi_convertor_unpack(convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
}
/* if synchronous, return an ack */

Просмотреть файл

@ -228,14 +228,13 @@ ompi_osc_pt2pt_sendreq_send(ompi_osc_pt2pt_module_t *module,
written_data + sendreq->req_origin_bytes_packed) {
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data = sendreq->req_origin_bytes_packed;
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) buffer->payload + written_data);
ret = ompi_convertor_pack(&sendreq->req_origin_convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
if (ret < 0) {
ret = OMPI_ERR_FATAL;
goto cleanup;
@ -404,14 +403,13 @@ ompi_osc_pt2pt_replyreq_send(ompi_osc_pt2pt_module_t *module,
written_data + replyreq->rep_target_bytes_packed) {
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data = replyreq->rep_target_bytes_packed;
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) buffer->payload + written_data);
ret = ompi_convertor_pack(&replyreq->rep_target_convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
if (ret < 0) {
ret = OMPI_ERR_FATAL;
goto cleanup;
@ -496,7 +494,6 @@ ompi_osc_pt2pt_sendreq_recv_put(ompi_osc_pt2pt_module_t *module,
ompi_convertor_t convertor;
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
ompi_proc_t *proc;
@ -517,8 +514,7 @@ ompi_osc_pt2pt_sendreq_recv_put(ompi_osc_pt2pt_module_t *module,
ompi_convertor_unpack(&convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data );
OBJ_DESTRUCT(&convertor);
OBJ_RELEASE(datatype);
OPAL_THREAD_ADD32(&(module->p2p_num_pending_in), -1);
@ -720,7 +716,6 @@ ompi_osc_pt2pt_replyreq_recv(ompi_osc_pt2pt_module_t *module,
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
iov.iov_len = header->hdr_msg_length;
@ -729,8 +724,7 @@ ompi_osc_pt2pt_replyreq_recv(ompi_osc_pt2pt_module_t *module,
ompi_convertor_unpack(&sendreq->req_origin_convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data );
OPAL_THREAD_ADD32(&(sendreq->req_module->p2p_num_pending_out), -1);
ompi_osc_pt2pt_sendreq_free(sendreq);

Просмотреть файл

@ -48,7 +48,6 @@ ompi_osc_pt2pt_process_op(ompi_osc_pt2pt_module_t *module,
ompi_convertor_t convertor;
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
ompi_proc_t *proc;
@ -76,8 +75,7 @@ ompi_osc_pt2pt_process_op(ompi_osc_pt2pt_module_t *module,
ompi_convertor_unpack(&convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data);
OBJ_DESTRUCT(&convertor);
} else {
/* reductions other than MPI_REPLACE. Since user-defined

Просмотреть файл

@ -244,14 +244,13 @@ ompi_osc_rdma_sendreq_send(ompi_osc_rdma_module_t *module,
written_data + sendreq->req_origin_bytes_packed) {
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data = sendreq->req_origin_bytes_packed;
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) descriptor->des_src[0].seg_addr.pval + written_data);
ret = ompi_convertor_pack(&sendreq->req_origin_convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
if (ret < 0) {
ret = OMPI_ERR_FATAL;
goto cleanup;
@ -424,14 +423,13 @@ ompi_osc_rdma_replyreq_send(ompi_osc_rdma_module_t *module,
written_data + replyreq->rep_target_bytes_packed) {
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after;
size_t max_data = replyreq->rep_target_bytes_packed;
iov.iov_len = max_data;
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) descriptor->des_src[0].seg_addr.pval + written_data);
ret = ompi_convertor_pack(&replyreq->rep_target_convertor, &iov, &iov_count,
&max_data, &free_after);
&max_data );
if (ret < 0) {
ret = OMPI_ERR_FATAL;
goto cleanup;
@ -504,7 +502,6 @@ ompi_osc_rdma_sendreq_recv_put(ompi_osc_rdma_module_t *module,
ompi_convertor_t convertor;
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
ompi_proc_t *proc;
@ -525,8 +522,7 @@ ompi_osc_rdma_sendreq_recv_put(ompi_osc_rdma_module_t *module,
ompi_convertor_unpack(&convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data );
OBJ_DESTRUCT(&convertor);
OBJ_RELEASE(datatype);
OPAL_THREAD_ADD32(&(module->p2p_num_pending_in), -1);
@ -728,7 +724,6 @@ ompi_osc_rdma_replyreq_recv(ompi_osc_rdma_module_t *module,
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
iov.iov_len = header->hdr_msg_length;
@ -737,8 +732,7 @@ ompi_osc_rdma_replyreq_recv(ompi_osc_rdma_module_t *module,
ompi_convertor_unpack(&sendreq->req_origin_convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data );
OPAL_THREAD_ADD32(&(sendreq->req_module->p2p_num_pending_out), -1);
ompi_osc_rdma_sendreq_free(sendreq);

Просмотреть файл

@ -48,7 +48,6 @@ ompi_osc_rdma_process_op(ompi_osc_rdma_module_t *module,
ompi_convertor_t convertor;
struct iovec iov;
uint32_t iov_count = 1;
int32_t free_after = 0;
size_t max_data;
ompi_proc_t *proc;
@ -76,8 +75,7 @@ ompi_osc_rdma_process_op(ompi_osc_rdma_module_t *module,
ompi_convertor_unpack(&convertor,
&iov,
&iov_count,
&max_data,
&free_after);
&max_data);
OBJ_DESTRUCT(&convertor);
} else {
/* reductions other than MPI_REPLACE. Since user-defined

Просмотреть файл

@ -199,7 +199,7 @@ int mca_pml_base_bsend_request_start(ompi_request_t* request)
struct iovec iov;
unsigned int iov_count;
size_t max_data;
int rc, freeAfter;
int rc;
if(sendreq->req_bytes_packed > 0) {
@ -233,7 +233,7 @@ int mca_pml_base_bsend_request_start(ompi_request_t* request)
if((rc = ompi_convertor_pack( &sendreq->req_convertor,
&iov,
&iov_count,
&max_data, &freeAfter )) < 0) {
&max_data )) < 0) {
return OMPI_ERROR;
}

Просмотреть файл

@ -227,7 +227,6 @@ do { \
struct iovec iov; \
unsigned int iov_count; \
size_t max_data; \
int freeAfter; \
\
if(sendreq->req_count > 0) { \
sendreq->req_buff = \
@ -241,7 +240,7 @@ do { \
ompi_convertor_pack( &sendreq->req_send.req_base.req_convertor, \
&iov, \
&iov_count, \
&max_data, &freeAfter); \
&max_data ); \
ompi_convertor_prepare_for_send( &sendreq->req_send.req_base.req_convertor, MPI_PACKED, \
max_data, sendreq->req_buff ); \
} \

Просмотреть файл

@ -276,7 +276,6 @@ do {
struct iovec iov[MCA_BTL_DES_MAX_SEGMENTS]; \
uint32_t iov_count = 0; \
size_t max_data = bytes_received; \
int32_t free_after = 0; \
size_t n, offset = seg_offset; \
bool do_csum = mca_pml_dr.enable_csum && \
(request->req_endpoint->bml_endpoint->btl_flags_or & MCA_BTL_FLAGS_NEED_CSUM); \
@ -300,8 +299,7 @@ do {
&(request)->req_recv.req_convertor, \
iov, \
&iov_count, \
&max_data, \
&free_after); \
&max_data); \
bytes_delivered = max_data; \
if(bytes_received && !bytes_delivered) assert(0); \
csum = (do_csum ? \

Просмотреть файл

@ -375,7 +375,6 @@ int mca_pml_dr_send_request_start_buffered(
struct iovec iov;
unsigned int iov_count;
size_t max_data;
int32_t free_after;
int rc;
uint32_t csum;
bool do_csum = mca_pml_dr.enable_csum &&
@ -399,8 +398,7 @@ int mca_pml_dr_send_request_start_buffered(
&sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}
@ -432,8 +430,7 @@ int mca_pml_dr_send_request_start_buffered(
&sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}
@ -493,7 +490,6 @@ int mca_pml_dr_send_request_start_copy(
struct iovec iov;
unsigned int iov_count;
size_t max_data;
int32_t free_after;
int rc;
bool do_csum = mca_pml_dr.enable_csum &&
(bml_btl->btl_flags & MCA_BTL_FLAGS_NEED_CSUM);
@ -516,8 +512,7 @@ int mca_pml_dr_send_request_start_copy(
&sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}

Просмотреть файл

@ -284,7 +284,6 @@ do {
struct iovec iov[MCA_BTL_DES_MAX_SEGMENTS]; \
uint32_t iov_count = 0; \
size_t max_data = bytes_received; \
int32_t free_after = 0; \
size_t n, offset = seg_offset; \
mca_btl_base_segment_t* segment = segments; \
\
@ -305,8 +304,7 @@ do {
ompi_convertor_unpack( &(request)->req_recv.req_convertor, \
iov, \
&iov_count, \
&max_data, \
&free_after); \
&max_data ); \
bytes_delivered = max_data; \
} \
} while (0)

Просмотреть файл

@ -360,7 +360,6 @@ int mca_pml_ob1_send_request_start_buffered(
struct iovec iov;
unsigned int iov_count;
size_t max_data;
int32_t free_after;
int rc;
/* allocate descriptor */
@ -380,8 +379,7 @@ int mca_pml_ob1_send_request_start_buffered(
&sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}
@ -432,8 +430,7 @@ int mca_pml_ob1_send_request_start_buffered(
if((rc = ompi_convertor_pack( &sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}
@ -474,7 +471,6 @@ int mca_pml_ob1_send_request_start_copy(
struct iovec iov;
unsigned int iov_count;
size_t max_data;
int32_t free_after;
int rc;
/* allocate descriptor */
@ -499,8 +495,7 @@ int mca_pml_ob1_send_request_start_copy(
&sendreq->req_send.req_convertor,
&iov,
&iov_count,
&max_data,
&free_after)) < 0) {
&max_data)) < 0) {
mca_bml_base_free(bml_btl, descriptor);
return rc;
}

Просмотреть файл

@ -38,7 +38,7 @@ static const char FUNC_NAME[] = "MPI_Pack";
int MPI_Pack(void *inbuf, int incount, MPI_Datatype datatype,
void *outbuf, int outsize, int *position, MPI_Comm comm)
{
int rc, freeAfter;
int rc;
ompi_convertor_t local_convertor;
struct iovec invec;
unsigned int iov_count;
@ -77,7 +77,7 @@ int MPI_Pack(void *inbuf, int incount, MPI_Datatype datatype,
/* Do the actual packing */
iov_count = 1;
rc = ompi_convertor_pack( &local_convertor, &invec, &iov_count, &size, &freeAfter );
rc = ompi_convertor_pack( &local_convertor, &invec, &iov_count, &size );
*position += size;
OBJ_DESTRUCT( &local_convertor );

Просмотреть файл

@ -37,7 +37,7 @@ int MPI_Pack_external(char *datarep, void *inbuf, int incount,
MPI_Datatype datatype, void *outbuf,
MPI_Aint outsize, MPI_Aint *position)
{
int rc, freeAfter;
int rc;
ompi_convertor_t local_convertor;
struct iovec invec;
unsigned int iov_count;
@ -69,7 +69,7 @@ int MPI_Pack_external(char *datarep, void *inbuf, int incount,
/* Check for truncation */
ompi_convertor_get_packed_size( &local_convertor, &size );
if( (*position + size) > (unsigned int)outsize ) { /* we can cast as we already checked for < 0 */
if( (*position + size) > (size_t)outsize ) { /* we can cast as we already checked for < 0 */
OBJ_DESTRUCT( &local_convertor );
return OMPI_ERRHANDLER_INVOKE( MPI_COMM_WORLD, MPI_ERR_TRUNCATE, FUNC_NAME );
}
@ -80,7 +80,7 @@ int MPI_Pack_external(char *datarep, void *inbuf, int incount,
/* Do the actual packing */
iov_count = 1;
rc = ompi_convertor_pack( &local_convertor, &invec, &iov_count, &size, &freeAfter );
rc = ompi_convertor_pack( &local_convertor, &invec, &iov_count, &size );
*position += size;
OBJ_DESTRUCT( &local_convertor );

Просмотреть файл

@ -70,7 +70,6 @@ int MPI_Sendrecv_replace(void * buf, int count, MPI_Datatype datatype,
unsigned char recv_data[2048];
size_t packed_size, max_data;
uint32_t iov_count;
int free_after;
ompi_status_public_t recv_status;
ompi_proc_t* proc = ompi_comm_peer_lookup(comm,dest);
if(proc == NULL) {
@ -108,7 +107,7 @@ int MPI_Sendrecv_replace(void * buf, int count, MPI_Datatype datatype,
iov.iov_len = recv_status._count;
iov_count = 1;
max_data = recv_status._count;
ompi_convertor_unpack(&convertor, &iov, &iov_count, &max_data, &free_after);
ompi_convertor_unpack(&convertor, &iov, &iov_count, &max_data );
/* return status to user */
if(status != MPI_STATUS_IGNORE) {

Просмотреть файл

@ -37,7 +37,7 @@ int MPI_Unpack(void *inbuf, int insize, int *position,
void *outbuf, int outcount, MPI_Datatype datatype,
MPI_Comm comm)
{
int rc = 1, freeAfter;
int rc = 1;
ompi_convertor_t local_convertor;
struct iovec outvec;
unsigned int iov_count;
@ -81,8 +81,7 @@ int MPI_Unpack(void *inbuf, int insize, int *position,
/* Do the actual unpacking */
iov_count = 1;
rc = ompi_convertor_unpack( &local_convertor, &outvec, &iov_count,
&size, &freeAfter );
rc = ompi_convertor_unpack( &local_convertor, &outvec, &iov_count, &size );
*position += size;
OBJ_DESTRUCT( &local_convertor );

Просмотреть файл

@ -36,7 +36,7 @@ int MPI_Unpack_external (char *datarep, void *inbuf, MPI_Aint insize,
MPI_Aint *position, void *outbuf, int outcount,
MPI_Datatype datatype)
{
int rc, freeAfter;
int rc;
ompi_convertor_t local_convertor;
struct iovec outvec;
unsigned int iov_count;
@ -72,7 +72,7 @@ int MPI_Unpack_external (char *datarep, void *inbuf, MPI_Aint insize,
/* Do the actual unpacking */
iov_count = 1;
rc = ompi_convertor_unpack( &local_convertor, &outvec, &iov_count, &size, &freeAfter );
rc = ompi_convertor_unpack( &local_convertor, &outvec, &iov_count, &size );
*position += size;
OBJ_DESTRUCT( &local_convertor );