linux-imx/tools/thermal/tmon
Florian Fainelli 6c58cf40e3 tools/thermal: Fix possible path truncations
A build with -D_FORTIFY_SOURCE=2 enabled will produce the following warnings:

sysfs.c:63:30: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size between 0 and 255 [-Wformat-truncation=]
  snprintf(filepath, 256, "%s/%s", path, filename);
                              ^~
Bump up the buffer to PATH_MAX which is the limit and account for all of
the possible NUL and separators that could lead to exceeding the
allocated buffer sizes.

Fixes: 94f69966fa ("tools/thermal: Introduce tmon, a tool for thermal subsystem")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2022-08-03 19:28:46 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Makefile tools/thermal/tmon: Add cross compiling support 2021-08-14 15:33:19 +02:00
pid.c thermal/tools/tmon: Fix typo 'the the' in comment 2022-07-28 17:29:52 +02:00
README
sysfs.c tools/thermal: Fix possible path truncations 2022-08-03 19:28:46 +02:00
tmon.8 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tmon.c thermal: int340x: processor_thermal: Add Tiger Lake support 2020-03-23 15:20:47 +01:00
tmon.h thermal/tools/tmon: Include pthread and time headers in tmon.h 2022-07-28 17:29:51 +02:00
tui.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 89 2019-05-24 17:37:52 +02:00

TMON - A Monitoring and Testing Tool for Linux kernel thermal subsystem

Why TMON?

Increasingly, Linux is running on thermally constrained devices. The simple thermal relationship between processor and fan has become past for modern computers.

As hardware vendors cope with the thermal constraints on their products, more and more sensors are added, new cooling capabilities are introduced. The complexity of the thermal relationship can grow exponentially among cooling devices, zones, sensors, and trip points. They can also change dynamically.

To expose such relationship to the userspace, Linux generic thermal layer introduced sysfs entry at /sys/class/thermal with a matrix of symbolic links, trip point bindings, and device instances. To traverse such matrix by hand is not a trivial task. Testing is also difficult in that thermal conditions are often exception cases that hard to reach in normal operations.

TMON is conceived as a tool to help visualize, tune, and test the complex thermal subsystem.

Files

tmon.c : main function for set up and configurations.
tui.c : handles ncurses based user interface
sysfs.c : access to the generic thermal sysfs
pid.c : a proportional-integral-derivative (PID) controller
that can be used for thermal relationship training.

Requirements

Depends on ncurses

Build

$ make $ sudo ./tmon -h Usage: tmon [OPTION...] -c, --control cooling device in control -d, --daemon run as daemon, no TUI -l, --log log data to /var/tmp/tmon.log -h, --help show this help message -t, --time-interval set time interval for sampling -v, --version show version -g, --debug debug message in syslog

  1. For monitoring only: $ sudo ./tmon