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:
Vilvaraj, T J Vivek
2020-04-23 23:21:02 +05:30
committed by sys_ocldev
parent 67198ea705
commit 5c029b4471
6 changed files with 36 additions and 3 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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;
};

View File

@@ -27,6 +27,7 @@ class RasImp : public NEO::NonCopyableClass, public Ras {
private:
OsRas *pOsRas = nullptr;
void init();
zet_ras_properties_t rasProperties = {};
};
} // namespace L0

View File

@@ -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();