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
4 files changed
tree: 8f7261a0f291c48cc8d747a871a8a2a3e009ddb6
  1. cmake/
  2. include/
  3. service_files/
  4. src/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. Jenkinsfile
  12. LICENSE
  13. MAINTAINERS
  14. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access