[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220420160933.347088-1-daniel.lezcano@linaro.org>
Date: Wed, 20 Apr 2022 18:09:28 +0200
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: daniel.lezcano@...aro.org, rafael@...nel.org
Cc: srinivas.pandruvada@...ux.intel.com, linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org
Subject: [PATCH v3 0/4] tools/thermal: thermal library and tools
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:
v3:
- Fixed NULL pointer reference when there is no thermal zones, trip
points or cooling device
- Kill the child process when the duration ends or if there is an
interruption in the thermometer
- Add error messages in the main body for the thermal-engine
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
v1: Initial post after a RFC
Daniel Lezcano (4):
tools/lib/thermal: Add a thermal library
tools/thermal: Add util library
tools/thermal: Add 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 | 135 +++++
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 | 341 +++++++++++
tools/thermal/thermometer/Build | 2 +
tools/thermal/thermometer/Makefile | 26 +
tools/thermal/thermometer/thermometer.8 | 93 +++
tools/thermal/thermometer/thermometer.c | 573 ++++++++++++++++++
tools/thermal/thermometer/thermometer.conf | 5 +
32 files changed, 2917 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
Powered by blists - more mailing lists