diff --git a/src/ProcessMonitor.cxx b/src/ProcessMonitor.cxx index 99f7d6bc..8f01ad60 100644 --- a/src/ProcessMonitor.cxx +++ b/src/ProcessMonitor.cxx @@ -36,11 +36,8 @@ namespace o2 namespace monitoring { -#ifdef O2_MONITORING_OS_CC7 +static constexpr auto SMAPS_ROLLUP_FILE = "/proc/self/smaps_rollup"; static constexpr auto SMAPS_FILE = "/proc/self/smaps"; -#else -static constexpr auto SMAPS_FILE = "/proc/self/smaps_rollup"; -#endif #ifdef O2_MONITORING_OS_LINUX namespace @@ -148,7 +145,9 @@ std::vector ProcessMonitor::getMemoryUsage() std::vector ProcessMonitor::getSmaps() { - std::ifstream statusStream(SMAPS_FILE); + static const char* const smapsFile = + (::access(SMAPS_ROLLUP_FILE, R_OK) == 0) ? SMAPS_ROLLUP_FILE : SMAPS_FILE; + std::ifstream statusStream(smapsFile); double pssTotal = 0; double cleanTotal = 0; double dirtyTotal = 0;