1
1

Allow the DLL to correctly retrieve the pnding requests from MPI applications.

This commit was SVN r19244.
Этот коммит содержится в:
George Bosilca 2008-08-11 23:40:09 +00:00
родитель ac0160dcd1
Коммит fc9ae0e835
4 изменённых файлов: 33 добавлений и 33 удалений

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

@ -100,10 +100,10 @@ int ompi_fill_in_type_info(mqs_image *image, char **message)
} }
i_info->ompi_free_list_t.type = qh_type; i_info->ompi_free_list_t.type = qh_type;
i_info->ompi_free_list_t.size = mqs_sizeof(qh_type); i_info->ompi_free_list_t.size = mqs_sizeof(qh_type);
i_info->ompi_free_list_t.offset.fl_elem_class = mqs_field_offset(qh_type, "fl_elem_class"); i_info->ompi_free_list_t.offset.fl_frag_class = mqs_field_offset(qh_type, "fl_frag_class");
i_info->ompi_free_list_t.offset.fl_mpool = mqs_field_offset(qh_type, "fl_mpool"); i_info->ompi_free_list_t.offset.fl_mpool = mqs_field_offset(qh_type, "fl_mpool");
i_info->ompi_free_list_t.offset.fl_elem_size = mqs_field_offset(qh_type, "fl_elem_size"); i_info->ompi_free_list_t.offset.fl_frag_size = mqs_field_offset(qh_type, "fl_frag_size");
i_info->ompi_free_list_t.offset.fl_alignment = mqs_field_offset(qh_type, "fl_alignment"); i_info->ompi_free_list_t.offset.fl_frag_alignment = mqs_field_offset(qh_type, "fl_frag_alignment");
i_info->ompi_free_list_t.offset.fl_allocations = mqs_field_offset(qh_type, "fl_allocations"); i_info->ompi_free_list_t.offset.fl_allocations = mqs_field_offset(qh_type, "fl_allocations");
i_info->ompi_free_list_t.offset.fl_max_to_alloc = mqs_field_offset(qh_type, "fl_max_to_alloc"); i_info->ompi_free_list_t.offset.fl_max_to_alloc = mqs_field_offset(qh_type, "fl_max_to_alloc");
i_info->ompi_free_list_t.offset.fl_num_per_alloc = mqs_field_offset(qh_type, "fl_num_per_alloc"); i_info->ompi_free_list_t.offset.fl_num_per_alloc = mqs_field_offset(qh_type, "fl_num_per_alloc");

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

@ -69,10 +69,10 @@ typedef struct
mqs_type *type; mqs_type *type;
int size; int size;
struct { struct {
int fl_elem_class; /* opal_class_t* */ int fl_frag_class; /* opal_class_t* */
int fl_mpool; /* struct mca_mpool_base_module_t* */ int fl_mpool; /* struct mca_mpool_base_module_t* */
int fl_elem_size; /* size_t */ int fl_frag_size; /* size_t */
int fl_alignment; /* size_t */ int fl_frag_alignment; /* size_t */
int fl_allocations; /* opal_list_t */ int fl_allocations; /* opal_list_t */
int fl_max_to_alloc; /* size_t */ int fl_max_to_alloc; /* size_t */
int fl_num_per_alloc; /* size_t */ int fl_num_per_alloc; /* size_t */

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

@ -115,7 +115,7 @@
#define VERBOSE_REQ 0x00000010 #define VERBOSE_REQ 0x00000010
#define VERBOSE_REQ_DUMP 0x00000020 #define VERBOSE_REQ_DUMP 0x00000020
#define VERBOSE 0x00000000 #define VERBOSE 0xFFFFFFFF
#if VERBOSE #if VERBOSE
#define DEBUG(LEVEL, WHAT) if(LEVEL & VERBOSE) { printf WHAT; } #define DEBUG(LEVEL, WHAT) if(LEVEL & VERBOSE) { printf WHAT; }
#else #else
@ -840,10 +840,10 @@ static void ompi_free_list_t_dump_position( mqs_ompi_free_list_t_pos* position )
printf( "position->upper_bound = 0x%llx\n", (long long)position->upper_bound ); printf( "position->upper_bound = 0x%llx\n", (long long)position->upper_bound );
printf( "position->header_space = %llx\n", (long long)position->header_space ); printf( "position->header_space = %llx\n", (long long)position->header_space );
printf( "position->free_list = 0x%llx\n", (long long)position->free_list ); printf( "position->free_list = 0x%llx\n", (long long)position->free_list );
printf( "position->fl_elem_class = 0x%llx\n", (long long)position->fl_elem_class ); printf( "position->fl_frag_class = 0x%llx\n", (long long)position->fl_frag_class );
printf( "position->fl_mpool = 0x%llx\n", (long long)position->fl_mpool ); printf( "position->fl_mpool = 0x%llx\n", (long long)position->fl_mpool );
printf( "position->fl_elem_size = %llx\n", (long long)position->fl_elem_size ); printf( "position->fl_frag_size = %llx\n", (long long)position->fl_frag_size );
printf( "position->fl_alignment = %llx\n", (long long)position->fl_alignment ); printf( "position->fl_frag_alignment = %llx\n", (long long)position->fl_frag_alignment );
printf( "position->fl_num_per_alloc = %llx\n", (long long)position->fl_num_per_alloc ); printf( "position->fl_num_per_alloc = %llx\n", (long long)position->fl_num_per_alloc );
printf( "position->fl_num_allocated = %llx\n", (long long)position->fl_num_allocated ); printf( "position->fl_num_allocated = %llx\n", (long long)position->fl_num_allocated );
printf( "position->fl_num_initial_alloc = %llx\n", (long long)position->fl_num_initial_alloc ); printf( "position->fl_num_initial_alloc = %llx\n", (long long)position->fl_num_initial_alloc );
@ -859,14 +859,14 @@ static int ompi_free_list_t_init_parser( mqs_process *proc, mpi_process_info *p_
position->free_list = free_list; position->free_list = free_list;
position->fl_elem_size = position->fl_frag_size =
ompi_fetch_size_t( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_elem_size, ompi_fetch_size_t( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_frag_size,
p_info ); p_info );
position->fl_alignment = position->fl_frag_alignment =
ompi_fetch_size_t( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_alignment, ompi_fetch_size_t( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_frag_alignment,
p_info ); p_info );
position->fl_elem_class = position->fl_frag_class =
ompi_fetch_pointer( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_elem_class, ompi_fetch_pointer( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_frag_class,
p_info ); p_info );
position->fl_mpool = position->fl_mpool =
ompi_fetch_pointer( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_mpool, ompi_fetch_pointer( proc, position->free_list + i_info->ompi_free_list_t.offset.fl_mpool,
@ -879,13 +879,13 @@ static int ompi_free_list_t_init_parser( mqs_process *proc, mpi_process_info *p_
p_info ); p_info );
if( 0 == position->fl_mpool ) { if( 0 == position->fl_mpool ) {
position->header_space = position->fl_elem_size; position->header_space = position->fl_frag_size;
} else { } else {
DEBUG(VERBOSE_GENERAL, ("BLAH !!! (CORRECT ME)\n")); DEBUG(VERBOSE_GENERAL, ("BLAH !!! (CORRECT ME)\n"));
position->header_space = position->fl_elem_size; position->header_space = position->fl_frag_size;
} }
position->header_space = OPAL_ALIGN( position->header_space, position->header_space = OPAL_ALIGN( position->header_space,
position->fl_alignment, mqs_taddr_t ); position->fl_frag_alignment, mqs_taddr_t );
/** /**
* Work around the strange ompi_free_list_t way to allocate elements. The first chunk is * Work around the strange ompi_free_list_t way to allocate elements. The first chunk is
@ -900,12 +900,12 @@ static int ompi_free_list_t_init_parser( mqs_process *proc, mpi_process_info *p_
if( 0 == position->fl_num_initial_alloc ) if( 0 == position->fl_num_initial_alloc )
position->fl_num_initial_alloc = position->fl_num_per_alloc; position->fl_num_initial_alloc = position->fl_num_per_alloc;
} }
DEBUG(VERBOSE_LISTS,("ompi_free_list_t fl_elem_size = %lld fl_header_space = %lld\n" DEBUG(VERBOSE_LISTS,("ompi_free_list_t fl_frag_size = %lld fl_header_space = %lld\n"
" fl_alignment = %lld fl_num_per_alloc = %lld\n" " fl_frag_alignment = %lld fl_num_per_alloc = %lld\n"
" fl_num_allocated = %lld fl_num_initial_alloc = %lld\n" " fl_num_allocated = %lld fl_num_initial_alloc = %lld\n"
" header_space = %lld\n", " header_space = %lld\n",
(long long)position->fl_elem_size, (long long)position->header_space, (long long)position->fl_frag_size, (long long)position->header_space,
(long long)position->fl_alignment, (long long)position->fl_num_per_alloc, (long long)position->fl_frag_alignment, (long long)position->fl_num_per_alloc,
(long long)position->fl_num_allocated, (long long)position->fl_num_initial_alloc, (long long)position->fl_num_allocated, (long long)position->fl_num_initial_alloc,
(long long)position->header_space)); (long long)position->header_space));
@ -925,7 +925,7 @@ static int ompi_free_list_t_init_parser( mqs_process *proc, mpi_process_info *p_
*/ */
active_allocation += i_info->ompi_free_list_item_t.size; active_allocation += i_info->ompi_free_list_item_t.size;
active_allocation = OPAL_ALIGN( active_allocation, active_allocation = OPAL_ALIGN( active_allocation,
position->fl_alignment, mqs_taddr_t ); position->fl_frag_alignment, mqs_taddr_t );
/** /**
* Now let's try to compute the upper bound ... * Now let's try to compute the upper bound ...
*/ */
@ -971,7 +971,7 @@ static int ompi_free_list_t_next_item( mqs_process *proc, mpi_process_info *p_in
*/ */
active_allocation += i_info->ompi_free_list_item_t.size; active_allocation += i_info->ompi_free_list_item_t.size;
active_allocation = OPAL_ALIGN( active_allocation, active_allocation = OPAL_ALIGN( active_allocation,
position->fl_alignment, mqs_taddr_t ); position->fl_frag_alignment, mqs_taddr_t );
/** /**
* Now let's try to compute the upper bound ... * Now let's try to compute the upper bound ...
*/ */

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

@ -79,10 +79,10 @@ typedef struct {
mqs_taddr_t upper_bound; mqs_taddr_t upper_bound;
mqs_tword_t header_space; mqs_tword_t header_space;
mqs_taddr_t free_list; mqs_taddr_t free_list;
mqs_tword_t fl_elem_class; /* opal_class_t* */ mqs_tword_t fl_frag_class; /* opal_class_t* */
mqs_tword_t fl_mpool; /* struct mca_mpool_base_module_t* */ mqs_tword_t fl_mpool; /* struct mca_mpool_base_module_t* */
mqs_tword_t fl_elem_size; /* size_t */ mqs_tword_t fl_frag_size; /* size_t */
mqs_tword_t fl_alignment; /* size_t */ mqs_tword_t fl_frag_alignment; /* size_t */
mqs_tword_t fl_num_per_alloc; /* size_t */ mqs_tword_t fl_num_per_alloc; /* size_t */
mqs_tword_t fl_num_allocated; /* size_t */ mqs_tword_t fl_num_allocated; /* size_t */
mqs_tword_t fl_num_initial_alloc; /* size_t */ mqs_tword_t fl_num_initial_alloc; /* size_t */