Simplify ModuleMgr

Change-Id: I3a57876c73e50771fcedb7ca4c67d55ac406b34d
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/rdc commit: 95e057c88d]
此提交包含在:
Galantsev, Dmitrii
2023-11-20 18:08:55 -06:00
父節點 65fb65c8b2
當前提交 61cf14d7cc
共有 10 個檔案被更改,包括 29 行新增44 行删除
+3 -6
查看文件
@@ -27,9 +27,8 @@ THE SOFTWARE.
#include <vector>
#include <memory>
#include "rdc_lib/RdcDiagnostic.h"
#include "rdc_lib/impl/RdcRasLib.h"
#include "rdc_lib/impl/RdcSmiLib.h"
#include "rdc_lib/impl/RdcRocrLib.h"
#include "rdc_lib/RdcMetricFetcher.h"
#include "rdc_lib/RdcTelemetryLibInterface.h"
namespace amd {
namespace rdc {
@@ -55,9 +54,7 @@ class RdcDiagnosticModule : public RdcDiagnostic {
rdc_status_t rdc_diag_init(uint64_t flags) override;
rdc_status_t rdc_diag_destroy() override;
explicit RdcDiagnosticModule(const RdcSmiLibPtr& smi_lib,
const RdcRasLibPtr& ras_module,
const RdcRocrLibPtr& rocr_module);
explicit RdcDiagnosticModule(RdcMetricFetcherPtr& fetcher);
private:
//< Helper function to dispatch fields to module
-3
查看文件
@@ -46,10 +46,7 @@ class RdcModuleMgrImpl : public RdcModuleMgr {
RdcDiagnosticPtr rdc_diagnostic_module_;
// Domain module
RdcRasLibPtr ras_lib_;
RdcSmiLibPtr smi_lib_;
RdcMetricFetcherPtr fetcher_;
RdcRocrLibPtr rocr_lib_;
};
} // namespace rdc
+1 -1
查看文件
@@ -71,7 +71,7 @@ class RdcRasLib: public RdcTelemetry, public RdcDiagnostic {
rdc_status_t rdc_diag_init(uint64_t flags) override;
rdc_status_t rdc_diag_destroy() override;
explicit RdcRasLib(const char* lib_name);
explicit RdcRasLib();
~RdcRasLib();
+1 -1
查看文件
@@ -51,7 +51,7 @@ class RdcRocrLib : public RdcDiagnostic {
rdc_status_t rdc_diag_init(uint64_t flags) override;
rdc_status_t rdc_diag_destroy() override;
explicit RdcRocrLib(const char* lib_name);
explicit RdcRocrLib();
~RdcRocrLib();
+1 -2
查看文件
@@ -49,8 +49,7 @@ class RdcTelemetryModule : public RdcTelemetry {
rdc_status_t rdc_telemetry_fields_unwatch(rdc_gpu_field_t* fields,
uint32_t fields_count);
RdcTelemetryModule(const RdcSmiLibPtr& smi_lib,
const RdcRasLibPtr& ras_module);
RdcTelemetryModule(RdcMetricFetcherPtr fetcher);
private:
//< Helper function to dispatch fields to module
+9 -4
查看文件
@@ -21,11 +21,14 @@ THE SOFTWARE.
*/
#include "rdc_lib/impl/RdcDiagnosticModule.h"
#include <map>
#include <memory>
#include <vector>
#include <functional>
#include "rdc_lib/RdcLogger.h"
#include "rdc_lib/RdcMetricFetcher.h"
#include "rdc_lib/impl/RdcSmiLib.h"
#include "rdc_lib/impl/RdcRasLib.h"
#include "rdc_lib/impl/RdcRocrLib.h"
namespace amd {
namespace rdc {
@@ -114,10 +117,12 @@ rdc_status_t RdcDiagnosticModule::RdcDiagnosticModule::rdc_diag_destroy() {
return RDC_ST_OK;
}
RdcDiagnosticModule::RdcDiagnosticModule(const RdcSmiLibPtr& smi_lib,
const RdcRasLibPtr& ras_module, const RdcRocrLibPtr& rocr_module) {
if (smi_lib) {
diagnostic_modules_.push_back(smi_lib);
RdcDiagnosticModule::RdcDiagnosticModule(RdcMetricFetcherPtr& fetcher) {
const RdcSmiLibPtr smi_module = std::make_shared<RdcSmiLib>(fetcher);
const RdcRasLibPtr ras_module = std::make_shared<RdcRasLib>();
const RdcRocrLibPtr rocr_module = std::make_shared<RdcRocrLib>();
if (smi_module) {
diagnostic_modules_.push_back(smi_module);
}
if (rocr_module) {
diagnostic_modules_.push_back(rocr_module);
+3 -19
查看文件
@@ -30,23 +30,16 @@ namespace amd {
namespace rdc {
RdcModuleMgrImpl::RdcModuleMgrImpl(const RdcMetricFetcherPtr& fetcher)
: smi_lib_(std::make_shared<RdcSmiLib>(fetcher)) {
// The smi_lib_ always need to be loaded.
}
: fetcher_(fetcher) {}
RdcTelemetryPtr RdcModuleMgrImpl::get_telemetry_module() {
if (rdc_telemetry_module_) {
return rdc_telemetry_module_;
}
// Delay load
if (!ras_lib_) {
ras_lib_.reset(new RdcRasLib("librdc_ras.so"));
}
if (!rdc_telemetry_module_) {
rdc_telemetry_module_.reset(
new RdcTelemetryModule(smi_lib_, ras_lib_));
new RdcTelemetryModule(fetcher_));
}
return rdc_telemetry_module_;
@@ -57,18 +50,9 @@ RdcDiagnosticPtr RdcModuleMgrImpl::get_diagnostic_module() {
return rdc_diagnostic_module_;
}
// Delay load
if (!ras_lib_) {
ras_lib_.reset(new RdcRasLib("librdc_ras.so"));
}
if (!rocr_lib_) {
rocr_lib_.reset(new RdcRocrLib("librdc_rocr.so"));
}
if (!rdc_diagnostic_module_) {
rdc_diagnostic_module_.reset(
new RdcDiagnosticModule(smi_lib_, ras_lib_, rocr_lib_));
new RdcDiagnosticModule(fetcher_));
}
return rdc_diagnostic_module_;
+2 -2
查看文件
@@ -27,14 +27,14 @@ THE SOFTWARE.
namespace amd {
namespace rdc {
RdcRasLib::RdcRasLib(const char* lib_name):
RdcRasLib::RdcRasLib():
fields_value_get_(nullptr)
, fields_query_(nullptr)
, fields_watch_(nullptr)
, fields_unwatch_(nullptr)
, rdc_module_init_(nullptr)
, rdc_module_destroy_(nullptr) {
rdc_status_t status = lib_loader_.load(lib_name);
rdc_status_t status = lib_loader_.load("librdc_ras.so");
if (status != RDC_ST_OK) {
RDC_LOG(RDC_ERROR, "RAS related function will not work.");
return;
+2 -2
查看文件
@@ -27,12 +27,12 @@ THE SOFTWARE.
namespace amd {
namespace rdc {
RdcRocrLib::RdcRocrLib(const char* lib_name):
RdcRocrLib::RdcRocrLib():
test_case_run_(nullptr)
, diag_test_cases_query_(nullptr)
, diag_init_(nullptr)
, diag_destroy_(nullptr) {
rdc_status_t status = lib_loader_.load(lib_name);
rdc_status_t status = lib_loader_.load("librdc_rocr.so");
if (status != RDC_ST_OK) {
RDC_LOG(RDC_ERROR, "Rocr related function will not work.");
return;
+7 -4
查看文件
@@ -21,7 +21,10 @@ THE SOFTWARE.
*/
#include "rdc_lib/impl/RdcTelemetryModule.h"
#include <functional>
#include <memory>
#include "rdc_lib/RdcLogger.h"
#include "rdc_lib/RdcMetricFetcher.h"
#include "rdc_lib/impl/RdcRasLib.h"
#include "rdc_lib/impl/RdcSmiLib.h"
namespace amd {
@@ -92,10 +95,10 @@ rdc_status_t RdcTelemetryModule::rdc_telemetry_fields_unwatch(
return RDC_ST_OK;
}
RdcTelemetryModule::RdcTelemetryModule(
const RdcSmiLibPtr& smi_lib,
const RdcRasLibPtr& ras_module) {
telemetry_modules_.push_back(smi_lib);
RdcTelemetryModule::RdcTelemetryModule(RdcMetricFetcherPtr fetcher) {
const RdcSmiLibPtr smi_module = std::make_shared<RdcSmiLib>(fetcher);
const RdcRasLibPtr ras_module = std::make_shared<RdcRasLib>();
telemetry_modules_.push_back(smi_module);
if (ras_module) {
telemetry_modules_.push_back(ras_module);
}