.TH TMON 8 .SH NAME \fBtmon\fP - A monitoring and testing tool for Linux kernel thermal subsystem .SH SYNOPSIS .ft B .B tmon .RB [ Options ] .br .SH DESCRIPTION \fBtmon \fP can be used to visualize thermal relationship and real-time thermal data; tune and test cooling devices and sensors; collect thermal data for offline analysis and plot. \fBtmon\fP must be run as root in order to control device states via sysfs. .PP \fBFunctions\fP .PP .nf 1. Thermal relationships: - show thermal zone information - show cooling device information - show trip point binding within each thermal zone - show trip point and cooling device instance bindings .PP 2. Real time data display - show temperature of all thermal zones w.r.t. its trip points and types - show states of all cooling devices .PP 3. Thermal relationship learning and device tuning - with a built-in Proportional Integral Derivative (\fBPID\fP) controller, user can pair a cooling device to a thermal sensor for testing the effectiveness and learn about the thermal distance between the two - allow manual control of cooling device states and target temperature .PP 4. Data logging in /var/tmp/tmon.log - contains thermal configuration data, i.e. cooling device, thermal zones, and trip points. Can be used for data collection in remote debugging. - log real-time thermal data into space separated format that can be directly consumed by plotting tools such as Rscript. .SS Options .PP The \fB-c --control\fP option sets a cooling device type to control temperature of a thermal zone .PP The \fB-d --daemon\fP option runs \fBtmon \fP as daemon without user interface .PP The \fB-g --debug\fP option allow debug messages to be stored in syslog .PP The \fB-h --help\fP option shows help message .PP The \fB-l --log\fP option write data to /var/tmp/tmon.log .PP The \fB-t --time-interval\fP option sets the polling interval in seconds .PP The \fB-T --target-temp\fP option sets the initial target temperature .PP The \fB-v --version\fP option shows the version of \fBtmon \fP .PP The \fB-z --zone\fP option sets the target therma zone instance to be controlled .PP .SH FIELD DESCRIPTIONS .nf .PP \fBP \fP passive cooling trip point type \fBA \fP active cooling trip point type (fan) \fBC \fP critical trip point type \fBA \fP hot trip point type \fBkp \fP proportional gain of \fBPID\fP controller \fBki \fP integral gain of \fBPID\fP controller \fBkd \fP derivative gain of \fBPID\fP controller .SH REQUIREMENT Build depends on ncurses .PP Runtime depends on window size large enough to show the number of devices found on the system. .PP .SH INTERACTIVE COMMANDS .pp .nf \fBCtrl-C, q/Q\fP stops \fBtmon\fP \fBTAB\fP shows tuning pop up panel, choose a letter to modify .SH EXAMPLES Without any parameters, tmon is in monitoring only mode and refresh screen every 1 second. .PP 1. For monitoring only: .nf $ sudo ./tmon 2. Use Processor cooling device to control thermal zone 0 at default 65C. $ sudo ./tmon -c Processor -z 0 3. Use intel_powerclamp(idle injection) cooling device to control thermal zone 1 $ sudo ./tmon -c intel_powerclamp -z 1 4. Turn on debug and collect data log at /var/tmp/tmon.log $ sudo ./tmon -g -l For example, the log below shows PID controller was adjusting current states for all cooling devices with "Processor" type such that thermal zone 0 can stay below 65 dC. #---------- THERMAL DATA LOG STARTED ----------- Samples TargetTemp acpitz0 acpitz1 Fan0 Fan1 Fan2 Fan3 Fan4 Fan5 Fan6 Fan7 Fan8 Fan9 Processor10 Processor11 Processor12 Processor13 LCD14 intel_powerclamp15 1 65.0 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 2 65.0 66 65 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 3 65.0 60 54 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 4 65.0 53 53 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 5 65.0 52 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 6 65.0 53 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 7 65.0 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 8 65.0 68 68 0 0 0 0 0 0 0 0 0 0 5 5 5 5 6 0 9 65.0 68 68 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 0 10 65.0 67 67 0 0 0 0 0 0 0 0 0 0 7 7 7 7 6 0 11 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 12 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 13 65.0 67 67 0 0 0 0 0 0 0 0 0 0 9 9 9 9 6 0 14 65.0 66 66 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0 15 65.0 66 67 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0 16 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 17 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 18 65.0 64 61 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 19 65.0 60 59 0 0 0 0 0 0 0 0 0 0 12 12 12 12 6 0 Data can be read directly into an array by an example R-script below: #!/usr/bin/Rscript tdata <- read.table("/var/tmp/tmon.log", header=T, comment.char="#") attach(tdata) jpeg("tmon.jpg") X11() g_range <- range(0, intel_powerclamp15, TargetTemp, acpitz0) plot( Samples, intel_powerclamp15, col="blue", ylim=g_range, axes=FALSE, ann=FALSE) par(new=TRUE) lines(TargetTemp, type="o", pch=22, lty=2, col="red") dev.off() /tr>
authorLinus Torvalds <torvalds@linux-foundation.org>2017-01-27 12:29:30 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-27 12:29:30 -0800
commitdd3b9f25c867cb2507a45e436d6ede8eb08e7b05 (patch)
tree1ec6c08cd75610083d117a2c8d5eb0829e65f33e /tools/testing/selftests/net/reuseport_bpf_cpu.c
parent69978aa0f21f43529e11f924504dadb6ce2f229a (diff)
parentb4cfe3971f6eab542dd7ecc398bfa1aeec889934 (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma fixes from Doug Ledford: "Second round of -rc fixes for 4.10. This -rc cycle has been slow for the rdma subsystem. I had already sent you the first batch before the Holiday break. After that, we kept only getting a few here or there. Up until this week, when I got a drop of 13 to one driver (qedr). So, here's the -rc patches I have. I currently have none held in reserve, so unless something new comes in, this is it until the next merge window opens. Summary: - series of iw_cxgb4 fixes to make it work with the drain cq API - one or two patches each to: srp, iser, cxgb3, vmw_pvrdma, umem, rxe, and ipoib - one big series (13 patches) for the new qedr driver" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (27 commits) RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled IB/rxe: Prevent from completer to operate on non valid QP IB/rxe: Fix rxe dev insertion to rxe_dev_list IB/umem: Release pid in error and ODP flow RDMA/qedr: Dispatch port active event from qedr_add RDMA/qedr: Fix and simplify memory leak in PD alloc RDMA/qedr: Fix RDMA CM loopback RDMA/qedr: Fix formatting RDMA/qedr: Mark three functions as static RDMA/qedr: Don't reset QP when queues aren't flushed RDMA/qedr: Don't spam dmesg if QP is in error state RDMA/qedr: Remove CQ spinlock from CM completion handlers RDMA/qedr: Return max inline data in QP query result RDMA/qedr: Return success when not changing QP state RDMA/qedr: Add uapi header qedr-abi.h RDMA/qedr: Fix MTU returned from QP query RDMA/core: Add the function ib_mtu_int_to_enum IB/vmw_pvrdma: Fix incorrect cleanup on pvrdma_pci_probe error path IB/vmw_pvrdma: Don't leak info from alloc_ucontext IB/cxgb3: fix misspelling in header guard ...
Diffstat (limited to 'tools/testing/selftests/net/reuseport_bpf_cpu.c')