aboutsummaryrefslogtreecommitdiffstats
path: root/tools/thermal/tmon/README
blob: 457949897a8efe3f51200a1862918b2fcb14d29b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
NFS: Don't hold the group lock when calling nfs_release_request()Trond Myklebust1-1/+1 2017-09-09libnvdimm, btt: fix format string warningsRandy Dunlap1-2/+2 2017-09-09remove gperf left-overs from build systemLinus Torvalds1-9/+0 2017-09-09NFS: Remove pnfs_generic_transfer_commit_list()Trond Myklebust2-41/+4 2017-09-09NFS: nfs_lock_and_join_requests and nfs_scan_commit_list can deadlockTrond Myklebust2-9/+22 2017-09-09ARM: 8691/1: Export save_stack_trace_tsk()Dustin Brown1-0/+1 2017-09-08bpf: make error reporting in bpf_warn_invalid_xdp_action more clearDaniel Borkmann2-3/+7 2017-09-08Revert "mdio_bus: Remove unneeded gpiod NULL check"Florian Fainelli1-2/+4 2017-09-08bpf: devmap, use cond_resched instead of cpu_relaxJohn Fastabend1-1/+1 2017-09-08bpf: add support for sockmap detach programsJohn Fastabend4-16/+72 2017-09-08net: rcu lock and preempt disable missing around generic xdpJohn Fastabend1-9/+16 2017-09-08bpf: don't select potentially stale ri->map from buggy xdp progsDaniel Borkmann2-2/+35 2017-09-08net: tulip: Constify tulip_tblKees Cook2-2/+2 2017-09-08net: ethernet: ti: netcp_core: no need in netif_napi_delIvan Khoronzhuk1-1/+0 2017-09-08davicom: Display proper debug level up to 6Mathieu Malaterre1-1/+1 2017-09-08net: phy: sfp: rename dt properties to match the bindingBaruch Siach1-2/+2