Messages in this thread |  | | From | Daniel Lezcano <> | Subject | [PATCH v2 0/4] tools/thermal: thermal library and tools | Date | Wed, 30 Mar 2022 12:04:40 +0200 |
| |
These changes are providing the following tools and library:
- A thermal library doing the netlink abstraction from the kernel in order to make the userspace thermal implementation easier. Having the library integrated with the kernel tree is also a guarantee to keep the message format and their encoding/decoding aligned
- A thermal tools library providing a set of functions to deal with usual features like the log, the mainloop and the time. This library is used by the provided tools below
- An data acquisition program to capture the temperature of the different thermal zone during an amount of time or during the execution of an application. The output is formated to be easily parsed by gnuplot, a spreadsheet program or a statistical command line utility. The timestamp is based on the system uptime, thus giving an indication of when a thermal event happened, that can help to spot or reproduce thermal issue in the long run
- A thermal monitoring program based on the thermal library. It gives a skeleton to build any logic on top of it and shows how to use the thermal library. It does nothing except discovering the thermal zones, their trip points and listening for events like cooling devices state changes or trip point crossed
Changelog:
v1: Initial post after a RFC
v2:
- Fixed all trailing whitespaces and some other checkpatch warnings. Some warnings remain but they can be considered as false positive
- Added in the thermometer tool: - Usage/help option as well as a man page - The ability to execute a program - The capture duration - Create the output directory if it does not exist
- Add in the thermal-engine tool: - A usage/help option - A message telling the userspace it is waiting for events - A daemonize option
- Minor bug fixes here and there, as well as typos
Daniel Lezcano (4): tools/lib/thermal: Add a thermal library tools/thermal: Add util library tools/thermal: A temperature capture tool tools/thermal: Add thermal daemon skeleton
MAINTAINERS | 1 + tools/Makefile | 36 +- tools/lib/thermal/.gitignore | 2 + tools/lib/thermal/Build | 5 + tools/lib/thermal/Makefile | 165 ++++++ tools/lib/thermal/commands.c | 349 +++++++++++ tools/lib/thermal/events.c | 164 +++++ tools/lib/thermal/include/thermal.h | 142 +++++ tools/lib/thermal/libthermal.map | 25 + tools/lib/thermal/libthermal.pc.template | 12 + tools/lib/thermal/sampling.c | 75 +++ tools/lib/thermal/thermal.c | 126 ++++ tools/lib/thermal/thermal_nl.c | 215 +++++++ tools/lib/thermal/thermal_nl.h | 46 ++ tools/thermal/lib/Build | 3 + tools/thermal/lib/Makefile | 158 +++++ .../thermal/lib/libthermal_tools.pc.template | 12 + tools/thermal/lib/log.c | 77 +++ tools/thermal/lib/log.h | 31 + tools/thermal/lib/mainloop.c | 120 ++++ tools/thermal/lib/mainloop.h | 15 + tools/thermal/lib/thermal-tools.h | 10 + tools/thermal/lib/uptimeofday.c | 40 ++ tools/thermal/lib/uptimeofday.h | 12 + tools/thermal/thermal-engine/Build | 2 + tools/thermal/thermal-engine/Makefile | 28 + tools/thermal/thermal-engine/thermal-engine.c | 326 ++++++++++ tools/thermal/thermometer/Build | 2 + tools/thermal/thermometer/Makefile | 26 + tools/thermal/thermometer/thermometer.8 | 93 +++ tools/thermal/thermometer/thermometer.c | 558 ++++++++++++++++++ tools/thermal/thermometer/thermometer.conf | 5 + 32 files changed, 2878 insertions(+), 3 deletions(-) create mode 100644 tools/lib/thermal/.gitignore create mode 100644 tools/lib/thermal/Build create mode 100644 tools/lib/thermal/Makefile create mode 100644 tools/lib/thermal/commands.c create mode 100644 tools/lib/thermal/events.c create mode 100644 tools/lib/thermal/include/thermal.h create mode 100644 tools/lib/thermal/libthermal.map create mode 100644 tools/lib/thermal/libthermal.pc.template create mode 100644 tools/lib/thermal/sampling.c create mode 100644 tools/lib/thermal/thermal.c create mode 100644 tools/lib/thermal/thermal_nl.c create mode 100644 tools/lib/thermal/thermal_nl.h create mode 100644 tools/thermal/lib/Build create mode 100644 tools/thermal/lib/Makefile create mode 100644 tools/thermal/lib/libthermal_tools.pc.template create mode 100644 tools/thermal/lib/log.c create mode 100644 tools/thermal/lib/log.h create mode 100644 tools/thermal/lib/mainloop.c create mode 100644 tools/thermal/lib/mainloop.h create mode 100644 tools/thermal/lib/thermal-tools.h create mode 100644 tools/thermal/lib/uptimeofday.c create mode 100644 tools/thermal/lib/uptimeofday.h create mode 100644 tools/thermal/thermal-engine/Build create mode 100644 tools/thermal/thermal-engine/Makefile create mode 100644 tools/thermal/thermal-engine/thermal-engine.c create mode 100644 tools/thermal/thermometer/Build create mode 100644 tools/thermal/thermometer/Makefile create mode 100644 tools/thermal/thermometer/thermometer.8 create mode 100644 tools/thermal/thermometer/thermometer.c create mode 100644 tools/thermal/thermometer/thermometer.conf
-- 2.25.1
|  |