From d4dda0017c2dd836323e5befc8f96b3130b3a747 Mon Sep 17 00:00:00 2001 From: Chris Freehill Date: Thu, 14 May 2020 14:59:49 -0500 Subject: [PATCH] Don't use static variable for monitors Change-Id: I24b5ccfa94b2d722b070a6c6385af9201d21d9c5 [ROCm/rocm_smi_lib commit: 02e4a9c14fbda2b4f10877d99e03b9c69a22344c] --- projects/rocm-smi-lib/include/rocm_smi/rocm_smi_main.h | 6 +++--- projects/rocm-smi-lib/src/rocm_smi_main.cc | 10 ++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/projects/rocm-smi-lib/include/rocm_smi/rocm_smi_main.h b/projects/rocm-smi-lib/include/rocm_smi/rocm_smi_main.h index 3503c483e3..c46918811b 100755 --- a/projects/rocm-smi-lib/include/rocm_smi/rocm_smi_main.h +++ b/projects/rocm-smi-lib/include/rocm_smi/rocm_smi_main.h @@ -73,8 +73,8 @@ class RocmSMI { void Initialize(uint64_t flags); void Cleanup(void); - static std::vector>& - monitor_devices() {return s_monitor_devices;} + std::vector>& + monitor_devices() {return monitor_devices_;} uint32_t DiscoverAmdgpuDevices(void); uint32_t DiscoverAMDPowerMonitors(bool force_update = false); @@ -117,7 +117,7 @@ class RocmSMI { void GetEnvVariables(void); uint32_t DiscoverAMDMonitors(void); - static std::vector> s_monitor_devices; + std::vector> monitor_devices_; RocmSMI_env_vars env_vars_; uint64_t init_options_; diff --git a/projects/rocm-smi-lib/src/rocm_smi_main.cc b/projects/rocm-smi-lib/src/rocm_smi_main.cc index 75d98ce980..ce5f911b8e 100755 --- a/projects/rocm-smi-lib/src/rocm_smi_main.cc +++ b/projects/rocm-smi-lib/src/rocm_smi_main.cc @@ -237,8 +237,6 @@ static uint32_t GetMonitorDevices(const std::shared_ptr &d, return 0; } -std::vector> RocmSMI::s_monitor_devices; - void RocmSMI::Initialize(uint64_t flags) { auto i = 0; @@ -268,7 +266,7 @@ RocmSMI::Initialize(uint64_t flags) { // IterateSMIDevices will iterate through all the known devices and apply // the provided call-back to each device found. ret = IterateSMIDevices(GetMonitorDevices, - reinterpret_cast(&s_monitor_devices)); + reinterpret_cast(&monitor_devices_)); if (ret != 0) { throw amd::smi::rsmi_exception(RSMI_INITIALIZATION_ERROR, @@ -287,8 +285,8 @@ RocmSMI::Initialize(uint64_t flags) { // 1. construct kfd_node_map_ with gpu_id as key and *Device as value // 2. for each kfd node, write the corresponding dv_ind // 3. for each amdgpu device, write the corresponding gpu_id - for (uint32_t dv_ind = 0; dv_ind < s_monitor_devices.size(); ++dv_ind) { - dev = s_monitor_devices[dv_ind]; + for (uint32_t dv_ind = 0; dv_ind < monitor_devices_.size(); ++dv_ind) { + dev = monitor_devices_[dv_ind]; uint64_t bdfid = dev->bdfid(); assert(tmp_map.find(bdfid) != tmp_map.end()); if (tmp_map.find(bdfid) == tmp_map.end()) { @@ -305,7 +303,7 @@ RocmSMI::Initialize(uint64_t flags) { void RocmSMI::Cleanup() { - s_monitor_devices.clear(); + monitor_devices_.clear(); devices_.clear(); monitors_.clear();