mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-12 17:33:00 +08:00
Add support for sysman event ZES_EVENT_TYPE_FLAG_MEM_HEALTH
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
765b6cc2ed
commit
514b191bb6
@@ -6,8 +6,8 @@
|
||||
|
||||
set(L0_SRCS_TOOLS_SYSMAN_EVENTS_LINUX
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_events_imp.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_events_imp.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/os_events_imp.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/os_events_imp.h
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
|
||||
@@ -64,6 +64,14 @@ bool LinuxEventsImp::checkDeviceAttachEvent(zes_event_type_flags_t &pEvent) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LinuxEventsImp::checkIfMemHealthChanged(zes_event_type_flags_t &pEvent) {
|
||||
if (currentMemHealth() != memHealthAtEventRegister) {
|
||||
pEvent = ZES_EVENT_TYPE_FLAG_MEM_HEALTH;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LinuxEventsImp::eventListen(zes_event_type_flags_t &pEvent, uint32_t timeout) {
|
||||
if (registeredEvents & ZES_EVENT_TYPE_FLAG_DEVICE_RESET_REQUIRED) {
|
||||
if (isResetRequired(pEvent)) {
|
||||
@@ -80,15 +88,27 @@ bool LinuxEventsImp::eventListen(zes_event_type_flags_t &pEvent, uint32_t timeou
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (registeredEvents & ZES_EVENT_TYPE_FLAG_MEM_HEALTH) {
|
||||
if (checkIfMemHealthChanged(pEvent)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
ze_result_t LinuxEventsImp::eventRegister(zes_event_type_flags_t events) {
|
||||
registeredEvents = events;
|
||||
if (registeredEvents & ZES_EVENT_TYPE_FLAG_MEM_HEALTH) {
|
||||
memHealthAtEventRegister = currentMemHealth();
|
||||
}
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
void LinuxEventsImp::init() {
|
||||
zes_mem_health_t LinuxEventsImp::currentMemHealth() {
|
||||
return ZES_MEM_HEALTH_UNKNOWN;
|
||||
}
|
||||
|
||||
void LinuxEventsImp::getPciIdPathTag() {
|
||||
std::string bdfDir;
|
||||
ze_result_t result = pSysfsAccess->readSymLink("device", bdfDir);
|
||||
if (ZE_RESULT_SUCCESS != result) {
|
||||
@@ -108,7 +128,7 @@ LinuxEventsImp::LinuxEventsImp(OsSysman *pOsSysman) {
|
||||
pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
|
||||
pSysfsAccess = &pLinuxSysmanImp->getSysfsAccess();
|
||||
pFsAccess = &pLinuxSysmanImp->getFsAccess();
|
||||
init();
|
||||
getPciIdPathTag();
|
||||
}
|
||||
|
||||
OsEvents *OsEvents::create(OsSysman *pOsSysman) {
|
||||
|
||||
@@ -21,11 +21,14 @@ class LinuxEventsImp : public OsEvents, NEO::NonCopyableOrMovableClass {
|
||||
|
||||
protected:
|
||||
LinuxSysmanImp *pLinuxSysmanImp = nullptr;
|
||||
void init();
|
||||
void getPciIdPathTag();
|
||||
zes_mem_health_t currentMemHealth();
|
||||
bool isResetRequired(zes_event_type_flags_t &pEvent);
|
||||
bool checkDeviceDetachEvent(zes_event_type_flags_t &pEvent);
|
||||
bool checkDeviceAttachEvent(zes_event_type_flags_t &pEvent);
|
||||
bool checkIfMemHealthChanged(zes_event_type_flags_t &pEvent);
|
||||
std::string pciIdPathTag;
|
||||
zes_mem_health_t memHealthAtEventRegister = ZES_MEM_HEALTH_UNKNOWN;
|
||||
|
||||
private:
|
||||
FsAccess *pFsAccess = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user