1
1

Don't show the requests having a negative tag (they are internal

requests for Open MPI). Add a variable to allow Open MPI developers
to see all internal messages.

This commit was SVN r15915.
Этот коммит содержится в:
George Bosilca 2007-08-17 18:59:57 +00:00
родитель 1b76d46bd7
Коммит b9ea4c92e7
2 изменённых файлов: 13 добавлений и 2 удалений

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

@ -698,6 +698,8 @@ int mqs_setup_process (mqs_process *process, const mqs_process_callbacks *pcb)
/* Enforce the generation of the communicators list */
p_info->comm_lowest_free = 0;
p_info->comm_number_free = 0;
/* By default we don't show our internal requests*/
p_info->show_internal_requests = 0;
mqs_get_type_sizes (process, &p_info->sizes);
/**
@ -1310,6 +1312,8 @@ static int fetch_request( mqs_process *proc, mpi_process_info *p_info,
mqs_tword_t req_complete, req_pml_complete, req_valid, req_type;
mqs_taddr_t req_buffer, req_comm;
/* If we get a PML request with an internal tag we will jump back here */
rescan_requests:
while( 1 ) {
ompi_free_list_t_next_item( proc, p_info,
&p_info->next_msg, &current_item );
@ -1348,7 +1352,14 @@ static int fetch_request( mqs_process *proc, mpi_process_info *p_info,
res->desired_global_rank = res->desired_local_rank;
res->desired_tag =
fetch_int( proc, current_item + i_info->mca_pml_base_request_t.offset.req_tag, p_info );
res->tag_wild = (MPI_ANY_TAG == res->desired_tag ? TRUE : FALSE);
if( MPI_ANY_TAG == res->desired_tag ) {
res->tag_wild = TRUE;
} else {
/* Don't allow negative tags to show up */
if( (res->desired_tag < 0) && (0 == p_info->show_internal_requests) )
goto rescan_requests;
res->tag_wild = FALSE;
}
res->buffer = fetch_pointer( proc, current_item + i_info->mca_pml_base_request_t.offset.req_addr,
p_info );

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

@ -281,7 +281,7 @@ typedef struct
mqs_tword_t comm_number_free; /* the number of available positions in
* the communicator array. */
mqs_tword_t comm_lowest_free; /* the lowest free communicator */
mqs_tword_t show_internal_requests; /* show or not the Open MPI internal requests */
/* State for the iterators */
struct communicator_t *current_communicator; /* Easy, we're walking a simple list */