mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Implement RAS APIs
- Implemented zetSysmanGetProperties - Implemented zetSysmanGetState Change-Id: Id40a1cb036693156c31c6e9ee78c3113ef35e5c2 Signed-off-by: Vilvaraj, T J Vivek <t.j.vivek.vilvaraj@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
67198ea705
commit
5c029b4471
@@ -36,6 +36,23 @@ FsAccess *FsAccess::create() {
|
||||
return new FsAccess();
|
||||
}
|
||||
|
||||
ze_result_t FsAccess::read(const std::string file, uint64_t &val) {
|
||||
// Read a single line from text file without trailing newline
|
||||
std::ifstream fs;
|
||||
|
||||
fs.open(file.c_str());
|
||||
if (fs.fail()) {
|
||||
return getResult(errno);
|
||||
}
|
||||
fs >> val;
|
||||
if (fs.fail()) {
|
||||
fs.close();
|
||||
return getResult(errno);
|
||||
}
|
||||
fs.close();
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
ze_result_t FsAccess::read(const std::string file, std::string &val) {
|
||||
// Read a single line from text file without trailing newline
|
||||
std::ifstream fs;
|
||||
|
||||
@@ -32,6 +32,7 @@ class FsAccess {
|
||||
ze_result_t canWrite(const std::string file);
|
||||
ze_result_t getFileMode(const std::string file, ::mode_t &mode);
|
||||
|
||||
ze_result_t read(const std::string file, uint64_t &val);
|
||||
ze_result_t read(const std::string file, std::string &val);
|
||||
ze_result_t read(const std::string file, std::vector<std::string> &val);
|
||||
|
||||
|
||||
@@ -17,14 +17,19 @@ class LinuxRasImp : public OsRas, public NEO::NonCopyableClass {
|
||||
public:
|
||||
LinuxRasImp(OsSysman *pOsSysman);
|
||||
~LinuxRasImp() override = default;
|
||||
ze_result_t getCounterValues(zet_ras_details_t *pDetails) override;
|
||||
|
||||
private:
|
||||
SysfsAccess *pSysfsAccess = nullptr;
|
||||
FsAccess *pFsAccess = nullptr;
|
||||
};
|
||||
|
||||
ze_result_t LinuxRasImp::getCounterValues(zet_ras_details_t *pDetails) {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
}
|
||||
|
||||
LinuxRasImp::LinuxRasImp(OsSysman *pOsSysman) {
|
||||
LinuxSysmanImp *pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
|
||||
pSysfsAccess = &pLinuxSysmanImp->getSysfsAccess();
|
||||
pFsAccess = &pLinuxSysmanImp->getFsAccess();
|
||||
}
|
||||
|
||||
OsRas *OsRas::create(OsSysman *pOsSysman) {
|
||||
|
||||
@@ -7,11 +7,14 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <level_zero/zet_api.h>
|
||||
|
||||
namespace L0 {
|
||||
|
||||
struct OsSysman;
|
||||
class OsRas {
|
||||
public:
|
||||
virtual ze_result_t getCounterValues(zet_ras_details_t *pDetails) = 0;
|
||||
static OsRas *create(OsSysman *pOsSysman);
|
||||
virtual ~OsRas() = default;
|
||||
};
|
||||
|
||||
@@ -27,6 +27,7 @@ class RasImp : public NEO::NonCopyableClass, public Ras {
|
||||
private:
|
||||
OsRas *pOsRas = nullptr;
|
||||
void init();
|
||||
zet_ras_properties_t rasProperties = {};
|
||||
};
|
||||
|
||||
} // namespace L0
|
||||
|
||||
@@ -9,7 +9,13 @@
|
||||
|
||||
namespace L0 {
|
||||
|
||||
class WddmRasImp : public OsRas {};
|
||||
class WddmRasImp : public OsRas {
|
||||
ze_result_t getCounterValues(zet_ras_details_t *pDetails) override;
|
||||
};
|
||||
|
||||
ze_result_t WddmRasImp::getCounterValues(zet_ras_details_t *pDetails) {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
}
|
||||
|
||||
OsRas *OsRas::create(OsSysman *pOsSysman) {
|
||||
WddmRasImp *pWddmRasImp = new WddmRasImp();
|
||||
|
||||
Reference in New Issue
Block a user