From 746306b13d738bb502b9eceb63dff6468665501f Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 4 Mar 2021 16:20:26 +0100 Subject: [PATCH] Don't crash on empty PAPI event set. --- src/smpi/internals/smpi_bench.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/smpi/internals/smpi_bench.cpp b/src/smpi/internals/smpi_bench.cpp index 6ce0054fa1..2de3b3606f 100644 --- a/src/smpi/internals/smpi_bench.cpp +++ b/src/smpi/internals/smpi_bench.cpp @@ -91,7 +91,7 @@ void smpi_bench_begin() if (not smpi_cfg_papi_events_file().empty()) { int event_set = smpi_process()->papi_event_set(); // PAPI_start sets everything to 0! See man(3) PAPI_start - if (PAPI_LOW_LEVEL_INITED == PAPI_is_initialized() && PAPI_start(event_set) != PAPI_OK) { + if (PAPI_LOW_LEVEL_INITED == PAPI_is_initialized() && event_set && PAPI_start(event_set) != PAPI_OK) { // TODO This needs some proper handling. XBT_CRITICAL("Could not start PAPI counters.\n"); xbt_die("Error."); @@ -132,7 +132,7 @@ void smpi_bench_end() int event_set = smpi_process()->papi_event_set(); std::vector event_values(counter_data.size()); - if (PAPI_stop(event_set, &event_values[0]) != PAPI_OK) { // Error + if (event_set && PAPI_stop(event_set, &event_values[0]) != PAPI_OK) { // Error XBT_CRITICAL("Could not stop PAPI counters.\n"); xbt_die("Error."); } else { -- 2.20.1