Exposing power capping values as a sensor
This implementation introduces support for power capping values provided
by hwmon. Values are read from files with suffix cap, cap_max and cap_min
and are exposed as properties of the interface xyz.openbmc_project.Sensor.Value
The property Value is taken from the power[N]_cap file in a standard way.
While the MaxValue and MinValue are periodically read from the corresponding
files: power[N]_cap_max and power[N]_cap_min. If cap_max, cap_min files cannot
be read properties MinValue/MaxValue are set to 0 unless the power is OFF then
NaN is returned. For other types of files than ‘cap’ default CPUSensor MinValue,
MaxValue values are used as it was before this change.
Link to sysfs file descriptions:
https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface
Tested: Test were done manually, no regression detected.
Signed-off-by: Zbigniew Kurzynski <zbigniew.kurzynski@intel.com>
Change-Id: I72fd85f3f441b8a430b9dadd47c874eec52b7829
diff --git a/include/CPUSensor.hpp b/include/CPUSensor.hpp
index 0bcf3ed..e76ec89 100644
--- a/include/CPUSensor.hpp
+++ b/include/CPUSensor.hpp
@@ -48,6 +48,10 @@
void setupRead(void);
void handleResponse(const boost::system::error_code& err);
void checkThresholds(void) override;
+ void updateMinMaxValues(void);
+ bool areDifferent(const double& lVal, const double& rVal);
+ void genericUpdateValue(double& oldValue, const double& newValue,
+ const char* dbusParamName);
};
extern boost::container::flat_map<std::string, std::unique_ptr<CPUSensor>>