Jacob Pan | 94f6996 | 2013-10-14 16:02:27 -0700 | [diff] [blame] | 1 | TMON - A Monitoring and Testing Tool for Linux kernel thermal subsystem |
| 2 | |
| 3 | Why TMON? |
| 4 | ========== |
| 5 | Increasingly, Linux is running on thermally constrained devices. The simple |
| 6 | thermal relationship between processor and fan has become past for modern |
| 7 | computers. |
| 8 | |
| 9 | As hardware vendors cope with the thermal constraints on their products, more |
| 10 | and more sensors are added, new cooling capabilities are introduced. The |
| 11 | complexity of the thermal relationship can grow exponentially among cooling |
| 12 | devices, zones, sensors, and trip points. They can also change dynamically. |
| 13 | |
| 14 | To expose such relationship to the userspace, Linux generic thermal layer |
| 15 | introduced sysfs entry at /sys/class/thermal with a matrix of symbolic |
| 16 | links, trip point bindings, and device instances. To traverse such |
| 17 | matrix by hand is not a trivial task. Testing is also difficult in that |
| 18 | thermal conditions are often exception cases that hard to reach in |
| 19 | normal operations. |
| 20 | |
| 21 | TMON is conceived as a tool to help visualize, tune, and test the |
| 22 | complex thermal subsystem. |
| 23 | |
| 24 | Files |
| 25 | ===== |
| 26 | tmon.c : main function for set up and configurations. |
| 27 | tui.c : handles ncurses based user interface |
| 28 | sysfs.c : access to the generic thermal sysfs |
| 29 | pid.c : a proportional-integral-derivative (PID) controller |
| 30 | that can be used for thermal relationship training. |
| 31 | |
| 32 | Requirements |
| 33 | ============ |
| 34 | Depends on ncurses |
| 35 | |
| 36 | Build |
| 37 | ========= |
| 38 | $ make |
| 39 | $ sudo ./tmon -h |
| 40 | Usage: tmon [OPTION...] |
| 41 | -c, --control cooling device in control |
| 42 | -d, --daemon run as daemon, no TUI |
| 43 | -l, --log log data to /var/tmp/tmon.log |
| 44 | -h, --help show this help message |
| 45 | -t, --time-interval set time interval for sampling |
| 46 | -v, --version show version |
| 47 | -g, --debug debug message in syslog |
| 48 | |
| 49 | 1. For monitoring only: |
| 50 | $ sudo ./tmon |