diff --git a/opal/datatype/opal_datatype_get_count.c b/opal/datatype/opal_datatype_get_count.c index ab2d69a8f3..ae085c4270 100644 --- a/opal/datatype/opal_datatype_get_count.c +++ b/opal/datatype/opal_datatype_get_count.c @@ -191,6 +191,9 @@ int opal_datatype_compute_ptypes( opal_datatype_t* datatype ) datatype->ptypes[pElems[pos_desc].elem.common.type] += pElems[pos_desc].elem.count; nbElems += pElems[pos_desc].elem.count; + DUMP( " compute_ptypes-add: type %d count %"PRIsize_t" (total type %"PRIsize_t" total %lld)\n", + pElems[pos_desc].elem.common.type, datatype->ptypes[pElems[pos_desc].elem.common.type], + pElems[pos_desc].elem.count, nbElems ); pos_desc++; /* advance to the next data */ } } diff --git a/opal/datatype/opal_datatype_internal.h b/opal/datatype/opal_datatype_internal.h index 9ff3492149..bc3f8aa7ca 100644 --- a/opal/datatype/opal_datatype_internal.h +++ b/opal/datatype/opal_datatype_internal.h @@ -3,7 +3,7 @@ * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2018 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, @@ -49,10 +49,9 @@ static inline void DUMP( char* fmt, ... ) va_list list; va_start( list, fmt ); - opal_output( opal_datatype_dfd, fmt, list ); + opal_output_vverbose( 0, opal_datatype_dfd, fmt, list ); va_end( list ); } -# define DUMP printf # endif /* __GNUC__ && !__STDC__ */ # endif /* ACCEPT_C99 */ #else @@ -329,8 +328,8 @@ struct opal_datatype_t; .ptypes = OPAL_DATATYPE_INIT_PTYPES_ARRAY_UNAVAILABLE \ } -#define OPAL_DATATYPE_INITIALIZER_LOOP(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_LOOP, LOOP, FLAGS ) -#define OPAL_DATATYPE_INITIALIZER_END_LOOP(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_END_LOOP, END_LOOP, FLAGS ) +#define OPAL_DATATYPE_INITIALIZER_LOOP(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_LOOP, LOOP_S, FLAGS ) +#define OPAL_DATATYPE_INITIALIZER_END_LOOP(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_END_LOOP, LOOP_E, FLAGS ) #define OPAL_DATATYPE_INITIALIZER_LB(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_LB, LB, FLAGS ) #define OPAL_DATATYPE_INITIALIZER_UB(FLAGS) OPAL_DATATYPE_INIT_BASIC_TYPE( OPAL_DATATYPE_UB, UB, FLAGS ) #define OPAL_DATATYPE_INITIALIZER_INT1(FLAGS) OPAL_DATATYPE_INIT_BASIC_DATATYPE( int8_t, OPAL_ALIGNMENT_INT8, INT1, FLAGS ) diff --git a/opal/datatype/opal_datatype_module.c b/opal/datatype/opal_datatype_module.c index 7de8fae5b0..7b4f33e868 100644 --- a/opal/datatype/opal_datatype_module.c +++ b/opal/datatype/opal_datatype_module.c @@ -3,7 +3,7 @@ * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2013 The University of Tennessee and The University + * Copyright (c) 2004-2018 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, @@ -29,6 +29,7 @@ #include #include "opal/util/arch.h" +#include "opal/util/output.h" #include "opal/datatype/opal_datatype_internal.h" #include "opal/datatype/opal_datatype.h" #include "opal/datatype/opal_convertor_internal.h" @@ -40,6 +41,7 @@ bool opal_unpack_debug = false; bool opal_pack_debug = false; bool opal_position_debug = false; bool opal_copy_debug = false; +int opal_ddt_verbose = -1; /* Has the datatype verbose it's own output stream */ extern int opal_cuda_verbose; @@ -177,11 +179,19 @@ int opal_datatype_register_params(void) return ret; } + ret = mca_base_var_register ("opal", "opal", NULL, "ddt_verbose", + "Set level of opal datatype verbosity", + MCA_BASE_VAR_TYPE_INT, NULL, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_8, MCA_BASE_VAR_SCOPE_LOCAL, + &opal_ddt_verbose); + if (0 > ret) { + return ret; + } #if OPAL_CUDA_SUPPORT /* Set different levels of verbosity in the cuda related code. */ ret = mca_base_var_register ("opal", "opal", NULL, "cuda_verbose", "Set level of opal cuda verbosity", - MCA_BASE_VAR_TYPE_INT, NULL, 0, MCA_BASE_VAR_FLAG_SETTABLE, + MCA_BASE_VAR_TYPE_INT, NULL, -1, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_8, MCA_BASE_VAR_SCOPE_LOCAL, &opal_cuda_verbose); if (0 > ret) { @@ -226,6 +236,12 @@ int32_t opal_datatype_init( void ) datatype->desc.desc[1].end_loop.size = datatype->size; } + /* Enable a private output stream for datatype */ + if( opal_ddt_verbose > 0 ) { + opal_datatype_dfd = opal_output_open(NULL); + opal_output_set_verbosity(opal_datatype_dfd, opal_ddt_verbose); + } + return OPAL_SUCCESS; }