mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Retrieve Temperature for multiple sensors
Create two handles for Global and Compute temperature sensors. Change-Id: I5da90135a803df71372c9c4be9dc891ca64fc214 Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
b354dfe32c
commit
b558c9ca30
@@ -17,6 +17,10 @@ bool LinuxTemperatureImp::isTempModuleSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void LinuxTemperatureImp::setSensorType(zet_temp_sensors_t sensorType) {
|
||||
type = sensorType;
|
||||
}
|
||||
|
||||
LinuxTemperatureImp::LinuxTemperatureImp(OsSysman *pOsSysman) {
|
||||
LinuxSysmanImp *pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
|
||||
pSysfsAccess = &pLinuxSysmanImp->getSysfsAccess();
|
||||
|
||||
@@ -18,11 +18,13 @@ class LinuxTemperatureImp : public OsTemperature, public NEO::NonCopyableClass {
|
||||
public:
|
||||
ze_result_t getSensorTemperature(double *pTemperature) override;
|
||||
bool isTempModuleSupported() override;
|
||||
void setSensorType(zet_temp_sensors_t sensorType) override;
|
||||
LinuxTemperatureImp(OsSysman *pOsSysman);
|
||||
LinuxTemperatureImp() = default;
|
||||
~LinuxTemperatureImp() override = default;
|
||||
|
||||
protected:
|
||||
SysfsAccess *pSysfsAccess = nullptr;
|
||||
zet_temp_sensors_t type;
|
||||
};
|
||||
} // namespace L0
|
||||
@@ -16,6 +16,7 @@ class OsTemperature {
|
||||
public:
|
||||
virtual ze_result_t getSensorTemperature(double *pTemperature) = 0;
|
||||
virtual bool isTempModuleSupported() = 0;
|
||||
virtual void setSensorType(zet_temp_sensors_t sensorType) = 0;
|
||||
static OsTemperature *create(OsSysman *pOsSysman);
|
||||
virtual ~OsTemperature() = default;
|
||||
};
|
||||
|
||||
@@ -17,8 +17,9 @@ TemperatureHandleContext::~TemperatureHandleContext() {
|
||||
}
|
||||
}
|
||||
|
||||
void TemperatureHandleContext::init() {
|
||||
void TemperatureHandleContext::createHandle(zet_temp_sensors_t type) {
|
||||
Temperature *pTemperature = new TemperatureImp(pOsSysman);
|
||||
pTemperature->sensorType = type;
|
||||
if (pTemperature->initSuccess == true) {
|
||||
handleList.push_back(pTemperature);
|
||||
} else {
|
||||
@@ -26,6 +27,11 @@ void TemperatureHandleContext::init() {
|
||||
}
|
||||
}
|
||||
|
||||
void TemperatureHandleContext::init() {
|
||||
createHandle(ZET_TEMP_SENSORS_GLOBAL);
|
||||
createHandle(ZET_TEMP_SENSORS_GPU);
|
||||
}
|
||||
|
||||
ze_result_t TemperatureHandleContext::temperatureGet(uint32_t *pCount, zet_sysman_temp_handle_t *phTemperature) {
|
||||
if (nullptr == phTemperature) {
|
||||
*pCount = static_cast<uint32_t>(handleList.size());
|
||||
|
||||
@@ -29,6 +29,7 @@ class Temperature : _zet_sysman_temp_handle_t {
|
||||
}
|
||||
inline zet_sysman_temp_handle_t toHandle() { return this; }
|
||||
bool initSuccess = false;
|
||||
zet_temp_sensors_t sensorType;
|
||||
};
|
||||
|
||||
struct TemperatureHandleContext {
|
||||
@@ -41,6 +42,9 @@ struct TemperatureHandleContext {
|
||||
|
||||
OsSysman *pOsSysman = nullptr;
|
||||
std::vector<Temperature *> handleList;
|
||||
|
||||
private:
|
||||
void createHandle(zet_temp_sensors_t type);
|
||||
};
|
||||
|
||||
} // namespace L0
|
||||
@@ -29,6 +29,7 @@ ze_result_t TemperatureImp::temperatureGetState(double *pTemperature) {
|
||||
|
||||
void TemperatureImp::init() {
|
||||
this->initSuccess = pOsTemperature->isTempModuleSupported();
|
||||
pOsTemperature->setSensorType(this->sensorType);
|
||||
}
|
||||
|
||||
TemperatureImp::TemperatureImp(OsSysman *pOsSysman) {
|
||||
|
||||
@@ -13,6 +13,7 @@ class WddmTemperatureImp : public OsTemperature {
|
||||
public:
|
||||
ze_result_t getSensorTemperature(double *pTemperature) override;
|
||||
bool isTempModuleSupported() override;
|
||||
void setSensorType(zet_temp_sensors_t sensorType) override;
|
||||
};
|
||||
|
||||
ze_result_t WddmTemperatureImp::getSensorTemperature(double *pTemperature) {
|
||||
@@ -23,6 +24,8 @@ bool WddmTemperatureImp::isTempModuleSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void WddmTemperatureImp::setSensorType(zet_temp_sensors_t sensorType) {}
|
||||
|
||||
OsTemperature *OsTemperature::create(OsSysman *pOsSysman) {
|
||||
WddmTemperatureImp *pWddmTemperatureImp = new WddmTemperatureImp();
|
||||
return static_cast<OsTemperature *>(pWddmTemperatureImp);
|
||||
|
||||
Reference in New Issue
Block a user