diff options
author | Todd E Brandt <todd.e.brandt@linux.intel.com> | 2017-07-05 17:42:57 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-07-21 19:56:14 -0400 |
commit | 2158e7244d3560fa46bdd95e70bf41dd135181dc (patch) | |
tree | 1db58aacd640b82747816e1af92affaa40f90f6f | |
parent | 370f4c232409454b5549f6971920c14b0d9da238 (diff) |
pm-graph: package makefile and man pages
update help text and man pages for both tools
- added more examples and separated them by category
Makefile upgrades
- uninstall: remove errors from uninstall if tool not found
- install: perform uninstall before install
Signed-off-by: Todd Brandt <todd.e.brandt@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | tools/power/pm-graph/Makefile | 19 | ||||
-rw-r--r-- | tools/power/pm-graph/bootgraph.8 | 61 | ||||
-rw-r--r-- | tools/power/pm-graph/sleepgraph.8 | 48 |
3 files changed, 86 insertions, 42 deletions
diff --git a/tools/power/pm-graph/Makefile b/tools/power/pm-graph/Makefile index 4d0ccc89e6c6..32f40eacdafe 100644 --- a/tools/power/pm-graph/Makefile +++ b/tools/power/pm-graph/Makefile | |||
@@ -4,7 +4,7 @@ DESTDIR ?= | |||
4 | all: | 4 | all: |
5 | @echo "Nothing to build" | 5 | @echo "Nothing to build" |
6 | 6 | ||
7 | install : | 7 | install : uninstall |
8 | install -d $(DESTDIR)$(PREFIX)/lib/pm-graph | 8 | install -d $(DESTDIR)$(PREFIX)/lib/pm-graph |
9 | install analyze_suspend.py $(DESTDIR)$(PREFIX)/lib/pm-graph | 9 | install analyze_suspend.py $(DESTDIR)$(PREFIX)/lib/pm-graph |
10 | install analyze_boot.py $(DESTDIR)$(PREFIX)/lib/pm-graph | 10 | install analyze_boot.py $(DESTDIR)$(PREFIX)/lib/pm-graph |
@@ -17,12 +17,15 @@ install : | |||
17 | install sleepgraph.8 $(DESTDIR)$(PREFIX)/share/man/man8 | 17 | install sleepgraph.8 $(DESTDIR)$(PREFIX)/share/man/man8 |
18 | 18 | ||
19 | uninstall : | 19 | uninstall : |
20 | rm $(DESTDIR)$(PREFIX)/share/man/man8/bootgraph.8 | 20 | rm -f $(DESTDIR)$(PREFIX)/share/man/man8/bootgraph.8 |
21 | rm $(DESTDIR)$(PREFIX)/share/man/man8/sleepgraph.8 | 21 | rm -f $(DESTDIR)$(PREFIX)/share/man/man8/sleepgraph.8 |
22 | 22 | ||
23 | rm $(DESTDIR)$(PREFIX)/bin/bootgraph | 23 | rm -f $(DESTDIR)$(PREFIX)/bin/bootgraph |
24 | rm $(DESTDIR)$(PREFIX)/bin/sleepgraph | 24 | rm -f $(DESTDIR)$(PREFIX)/bin/sleepgraph |
25 | 25 | ||
26 | rm $(DESTDIR)$(PREFIX)/lib/pm-graph/analyze_boot.py | 26 | rm -f $(DESTDIR)$(PREFIX)/lib/pm-graph/analyze_boot.py |
27 | rm $(DESTDIR)$(PREFIX)/lib/pm-graph/analyze_suspend.py | 27 | rm -f $(DESTDIR)$(PREFIX)/lib/pm-graph/analyze_suspend.py |
28 | rmdir $(DESTDIR)$(PREFIX)/lib/pm-graph | 28 | rm -f $(DESTDIR)$(PREFIX)/lib/pm-graph/*.pyc |
29 | if [ -d $(DESTDIR)$(PREFIX)/lib/pm-graph ] ; then \ | ||
30 | rmdir $(DESTDIR)$(PREFIX)/lib/pm-graph; \ | ||
31 | fi; | ||
diff --git a/tools/power/pm-graph/bootgraph.8 b/tools/power/pm-graph/bootgraph.8 index 55272a67b0e7..dbdafcf546df 100644 --- a/tools/power/pm-graph/bootgraph.8 +++ b/tools/power/pm-graph/bootgraph.8 | |||
@@ -8,14 +8,23 @@ bootgraph \- Kernel boot timing analysis | |||
8 | .RB [ COMMAND ] | 8 | .RB [ COMMAND ] |
9 | .SH DESCRIPTION | 9 | .SH DESCRIPTION |
10 | \fBbootgraph \fP reads the dmesg log from kernel boot and | 10 | \fBbootgraph \fP reads the dmesg log from kernel boot and |
11 | creates an html representation of the initcall timeline up to the start | 11 | creates an html representation of the initcall timeline. It graphs |
12 | of the init process. | 12 | every module init call found, through both kernel and user modes. The |
13 | timeline is split into two phases: kernel mode & user mode. kernel mode | ||
14 | represents a single process run on a single cpu with serial init calls. | ||
15 | Once user mode begins, the init process is called, and the init calls | ||
16 | start working in parallel. | ||
13 | .PP | 17 | .PP |
14 | If no specific command is given, the tool reads the current dmesg log and | 18 | If no specific command is given, the tool reads the current dmesg log and |
15 | outputs bootgraph.html. | 19 | outputs a new timeline. |
16 | .PP | 20 | .PP |
17 | The tool can also augment the timeline with ftrace data on custom target | 21 | The tool can also augment the timeline with ftrace data on custom target |
18 | functions as well as full trace callgraphs. | 22 | functions as well as full trace callgraphs. |
23 | .PP | ||
24 | Generates output files in subdirectory: boot-yymmdd-HHMMSS | ||
25 | html timeline : <hostname>_boot.html | ||
26 | raw dmesg file : <hostname>_boot_dmesg.txt | ||
27 | raw ftrace file : <hostname>_boot_ftrace.txt | ||
19 | .SH OPTIONS | 28 | .SH OPTIONS |
20 | .TP | 29 | .TP |
21 | \fB-h\fR | 30 | \fB-h\fR |
@@ -28,15 +37,18 @@ Print the current tool version | |||
28 | Add the dmesg log to the html output. It will be viewable by | 37 | Add the dmesg log to the html output. It will be viewable by |
29 | clicking a button in the timeline. | 38 | clicking a button in the timeline. |
30 | .TP | 39 | .TP |
31 | \fB-o \fIfile\fR | 40 | \fB-o \fIname\fR |
32 | Override the HTML output filename (default: bootgraph.html) | 41 | Overrides the output subdirectory name when running a new test. |
33 | .SS "Ftrace Debug" | 42 | Use {date}, {time}, {hostname} for current values. |
43 | .sp | ||
44 | e.g. boot-{hostname}-{date}-{time} | ||
45 | .SS "advanced" | ||
34 | .TP | 46 | .TP |
35 | \fB-f\fR | 47 | \fB-f\fR |
36 | Use ftrace to add function detail (default: disabled) | 48 | Use ftrace to add function detail (default: disabled) |
37 | .TP | 49 | .TP |
38 | \fB-callgraph\fR | 50 | \fB-callgraph\fR |
39 | Use ftrace to create initcall callgraphs (default: disabled). If -filter | 51 | Use ftrace to create initcall callgraphs (default: disabled). If -func |
40 | is not used there will be one callgraph per initcall. This can produce | 52 | is not used there will be one callgraph per initcall. This can produce |
41 | very large outputs, i.e. 10MB - 100MB. | 53 | very large outputs, i.e. 10MB - 100MB. |
42 | .TP | 54 | .TP |
@@ -50,16 +62,19 @@ This reduces the html file size as there can be many tiny callgraphs | |||
50 | which are barely visible in the timeline. | 62 | which are barely visible in the timeline. |
51 | The value is a float: e.g. 0.001 represents 1 us. | 63 | The value is a float: e.g. 0.001 represents 1 us. |
52 | .TP | 64 | .TP |
65 | \fB-cgfilter \fI"func1,func2,..."\fR | ||
66 | Reduce callgraph output in the timeline by limiting it to a list of calls. The | ||
67 | argument can be a single function name or a comma delimited list. | ||
68 | (default: none) | ||
69 | .TP | ||
53 | \fB-timeprec \fIn\fR | 70 | \fB-timeprec \fIn\fR |
54 | Number of significant digits in timestamps (0:S, 3:ms, [6:us]) | 71 | Number of significant digits in timestamps (0:S, 3:ms, [6:us]) |
55 | .TP | 72 | .TP |
56 | \fB-expandcg\fR | 73 | \fB-expandcg\fR |
57 | pre-expand the callgraph data in the html output (default: disabled) | 74 | pre-expand the callgraph data in the html output (default: disabled) |
58 | .TP | 75 | .TP |
59 | \fB-filter \fI"func1,func2,..."\fR | 76 | \fB-func \fI"func1,func2,..."\fR |
60 | Instead of tracing each initcall, trace a custom list of functions (default: do_one_initcall) | 77 | Instead of tracing each initcall, trace a custom list of functions (default: do_one_initcall) |
61 | |||
62 | .SH COMMANDS | ||
63 | .TP | 78 | .TP |
64 | \fB-reboot\fR | 79 | \fB-reboot\fR |
65 | Reboot the machine and generate a new timeline automatically. Works in 4 steps. | 80 | Reboot the machine and generate a new timeline automatically. Works in 4 steps. |
@@ -73,16 +88,23 @@ Show the requirements to generate a new timeline manually. Requires 3 steps. | |||
73 | 1. append the string to the kernel command line via your native boot manager. | 88 | 1. append the string to the kernel command line via your native boot manager. |
74 | 2. reboot the system | 89 | 2. reboot the system |
75 | 3. after startup, re-run the tool with the same arguments and no command | 90 | 3. after startup, re-run the tool with the same arguments and no command |
91 | |||
92 | .SH COMMANDS | ||
93 | .SS "rebuild" | ||
76 | .TP | 94 | .TP |
77 | \fB-dmesg \fIfile\fR | 95 | \fB-dmesg \fIfile\fR |
78 | Create HTML output from an existing dmesg file. | 96 | Create HTML output from an existing dmesg file. |
79 | .TP | 97 | .TP |
80 | \fB-ftrace \fIfile\fR | 98 | \fB-ftrace \fIfile\fR |
81 | Create HTML output from an existing ftrace file (used with -dmesg). | 99 | Create HTML output from an existing ftrace file (used with -dmesg). |
100 | .SS "other" | ||
82 | .TP | 101 | .TP |
83 | \fB-flistall\fR | 102 | \fB-flistall\fR |
84 | Print all ftrace functions capable of being captured. These are all the | 103 | Print all ftrace functions capable of being captured. These are all the |
85 | possible values you can add to trace via the -filter argument. | 104 | possible values you can add to trace via the -func argument. |
105 | .TP | ||
106 | \fB-sysinfo\fR | ||
107 | Print out system info extracted from BIOS. Reads /dev/mem directly instead of going through dmidecode. | ||
86 | 108 | ||
87 | .SH EXAMPLES | 109 | .SH EXAMPLES |
88 | Create a timeline using the current dmesg log. | 110 | Create a timeline using the current dmesg log. |
@@ -93,13 +115,13 @@ Create a timeline using the current dmesg and ftrace log. | |||
93 | .IP | 115 | .IP |
94 | \f(CW$ bootgraph -callgraph\fR | 116 | \f(CW$ bootgraph -callgraph\fR |
95 | .PP | 117 | .PP |
96 | Create a timeline using the current dmesg, add the log to the html and change the name. | 118 | Create a timeline using the current dmesg, add the log to the html and change the folder. |
97 | .IP | 119 | .IP |
98 | \f(CW$ bootgraph -addlogs -o myboot.html\fR | 120 | \f(CW$ bootgraph -addlogs -o "myboot-{date}-{time}"\fR |
99 | .PP | 121 | .PP |
100 | Capture a new boot timeline by automatically rebooting the machine. | 122 | Capture a new boot timeline by automatically rebooting the machine. |
101 | .IP | 123 | .IP |
102 | \f(CW$ sudo bootgraph -reboot -addlogs -o latestboot.html\fR | 124 | \f(CW$ sudo bootgraph -reboot -addlogs -o "latest-{hostname)"\fR |
103 | .PP | 125 | .PP |
104 | Capture a new boot timeline with function trace data. | 126 | Capture a new boot timeline with function trace data. |
105 | .IP | 127 | .IP |
@@ -111,7 +133,7 @@ Capture a new boot timeline with trace & callgraph data. Skip callgraphs smaller | |||
111 | .PP | 133 | .PP |
112 | Capture a new boot timeline with callgraph data over custom functions. | 134 | Capture a new boot timeline with callgraph data over custom functions. |
113 | .IP | 135 | .IP |
114 | \f(CW$ sudo bootgraph -reboot -callgraph -filter "acpi_ps_parse_aml,msleep"\fR | 136 | \f(CW$ sudo bootgraph -reboot -callgraph -func "acpi_ps_parse_aml,msleep"\fR |
115 | .PP | 137 | .PP |
116 | Capture a brand new boot timeline with manual reboot. | 138 | Capture a brand new boot timeline with manual reboot. |
117 | .IP | 139 | .IP |
@@ -123,6 +145,15 @@ Capture a brand new boot timeline with manual reboot. | |||
123 | .IP | 145 | .IP |
124 | \f(CW$ sudo bootgraph -callgraph # re-run the tool after restart\fR | 146 | \f(CW$ sudo bootgraph -callgraph # re-run the tool after restart\fR |
125 | .PP | 147 | .PP |
148 | .SS "rebuild timeline from logs" | ||
149 | .PP | ||
150 | Rebuild the html from a previous run's logs, using the same options. | ||
151 | .IP | ||
152 | \f(CW$ bootgraph -dmesg dmesg.txt -ftrace ftrace.txt -callgraph\fR | ||
153 | .PP | ||
154 | Rebuild the html with different options. | ||
155 | .IP | ||
156 | \f(CW$ bootgraph -dmesg dmesg.txt -ftrace ftrace.txt -addlogs\fR | ||
126 | 157 | ||
127 | .SH "SEE ALSO" | 158 | .SH "SEE ALSO" |
128 | dmesg(1), update-grub(8), crontab(1), reboot(8) | 159 | dmesg(1), update-grub(8), crontab(1), reboot(8) |
diff --git a/tools/power/pm-graph/sleepgraph.8 b/tools/power/pm-graph/sleepgraph.8 index 610e72ebbc06..fbe7bd3eae8e 100644 --- a/tools/power/pm-graph/sleepgraph.8 +++ b/tools/power/pm-graph/sleepgraph.8 | |||
@@ -39,8 +39,9 @@ Pull arguments and config options from a file. | |||
39 | \fB-m \fImode\fR | 39 | \fB-m \fImode\fR |
40 | Mode to initiate for suspend e.g. standby, freeze, mem (default: mem). | 40 | Mode to initiate for suspend e.g. standby, freeze, mem (default: mem). |
41 | .TP | 41 | .TP |
42 | \fB-o \fIsubdir\fR | 42 | \fB-o \fIname\fR |
43 | Override the output subdirectory. Use {date}, {time}, {hostname} for current values. | 43 | Overrides the output subdirectory name when running a new test. |
44 | Use {date}, {time}, {hostname} for current values. | ||
44 | .sp | 45 | .sp |
45 | e.g. suspend-{hostname}-{date}-{time} | 46 | e.g. suspend-{hostname}-{date}-{time} |
46 | .TP | 47 | .TP |
@@ -52,7 +53,7 @@ disable rtcwake and require a user keypress to resume. | |||
52 | Add the dmesg and ftrace logs to the html output. They will be viewable by | 53 | Add the dmesg and ftrace logs to the html output. They will be viewable by |
53 | clicking buttons in the timeline. | 54 | clicking buttons in the timeline. |
54 | 55 | ||
55 | .SS "Advanced" | 56 | .SS "advanced" |
56 | .TP | 57 | .TP |
57 | \fB-cmd \fIstr\fR | 58 | \fB-cmd \fIstr\fR |
58 | Run the timeline over a custom suspend command, e.g. pm-suspend. By default | 59 | Run the timeline over a custom suspend command, e.g. pm-suspend. By default |
@@ -91,7 +92,7 @@ Include \fIt\fR ms delay after last resume (default: 0 ms). | |||
91 | Execute \fIn\fR consecutive tests at \fId\fR seconds intervals. The outputs will | 92 | Execute \fIn\fR consecutive tests at \fId\fR seconds intervals. The outputs will |
92 | be created in a new subdirectory with a summary page: suspend-xN-{date}-{time}. | 93 | be created in a new subdirectory with a summary page: suspend-xN-{date}-{time}. |
93 | 94 | ||
94 | .SS "Ftrace Debug" | 95 | .SS "ftrace debug" |
95 | .TP | 96 | .TP |
96 | \fB-f\fR | 97 | \fB-f\fR |
97 | Use ftrace to create device callgraphs (default: disabled). This can produce | 98 | Use ftrace to create device callgraphs (default: disabled). This can produce |
@@ -124,12 +125,6 @@ Number of significant digits in timestamps (0:S, [3:ms], 6:us). | |||
124 | 125 | ||
125 | .SH COMMANDS | 126 | .SH COMMANDS |
126 | .TP | 127 | .TP |
127 | \fB-ftrace \fIfile\fR | ||
128 | Create HTML output from an existing ftrace file. | ||
129 | .TP | ||
130 | \fB-dmesg \fIfile\fR | ||
131 | Create HTML output from an existing dmesg file. | ||
132 | .TP | ||
133 | \fB-summary \fIindir\fR | 128 | \fB-summary \fIindir\fR |
134 | Create a summary page of all tests in \fIindir\fR. Creates summary.html | 129 | Create a summary page of all tests in \fIindir\fR. Creates summary.html |
135 | in the current folder. The output page is a table of tests with | 130 | in the current folder. The output page is a table of tests with |
@@ -146,6 +141,9 @@ with any options you intend to use to see if they will work. | |||
146 | \fB-fpdt\fR | 141 | \fB-fpdt\fR |
147 | Print out the contents of the ACPI Firmware Performance Data Table. | 142 | Print out the contents of the ACPI Firmware Performance Data Table. |
148 | .TP | 143 | .TP |
144 | \fB-sysinfo\fR | ||
145 | Print out system info extracted from BIOS. Reads /dev/mem directly instead of going through dmidecode. | ||
146 | .TP | ||
149 | \fB-usbtopo\fR | 147 | \fB-usbtopo\fR |
150 | Print out the current USB topology with power info. | 148 | Print out the current USB topology with power info. |
151 | .TP | 149 | .TP |
@@ -162,9 +160,16 @@ with -fadd they will also be checked. | |||
162 | \fB-flistall\fR | 160 | \fB-flistall\fR |
163 | Print all ftrace functions capable of being captured. These are all the | 161 | Print all ftrace functions capable of being captured. These are all the |
164 | possible values you can add to trace via the -fadd argument. | 162 | possible values you can add to trace via the -fadd argument. |
163 | .SS "rebuild" | ||
164 | .TP | ||
165 | \fB-ftrace \fIfile\fR | ||
166 | Create HTML output from an existing ftrace file. | ||
167 | .TP | ||
168 | \fB-dmesg \fIfile\fR | ||
169 | Create HTML output from an existing dmesg file. | ||
165 | 170 | ||
166 | .SH EXAMPLES | 171 | .SH EXAMPLES |
167 | .SS "Simple Commands" | 172 | .SS "simple commands" |
168 | Check which suspend modes are currently supported. | 173 | Check which suspend modes are currently supported. |
169 | .IP | 174 | .IP |
170 | \f(CW$ sleepgraph -modes\fR | 175 | \f(CW$ sleepgraph -modes\fR |
@@ -185,12 +190,8 @@ Generate a summary of all timelines in a particular folder. | |||
185 | .IP | 190 | .IP |
186 | \f(CW$ sleepgraph -summary ~/workspace/myresults/\fR | 191 | \f(CW$ sleepgraph -summary ~/workspace/myresults/\fR |
187 | .PP | 192 | .PP |
188 | Re-generate the html output from a previous run's dmesg and ftrace log. | ||
189 | .IP | ||
190 | \f(CW$ sleepgraph -dmesg myhost_mem_dmesg.txt -ftrace myhost_mem_ftrace.txt\fR | ||
191 | .PP | ||
192 | 193 | ||
193 | .SS "Capturing Simple Timelines" | 194 | .SS "capturing basic timelines" |
194 | Execute a mem suspend with a 15 second wakeup. Include the logs in the html. | 195 | Execute a mem suspend with a 15 second wakeup. Include the logs in the html. |
195 | .IP | 196 | .IP |
196 | \f(CW$ sudo sleepgraph -rtcwake 15 -addlogs\fR | 197 | \f(CW$ sudo sleepgraph -rtcwake 15 -addlogs\fR |
@@ -204,7 +205,7 @@ Execute a freeze with no wakeup (require keypress). Change output folder name. | |||
204 | \f(CW$ sudo sleepgraph -m freeze -rtcwake off -o "freeze-{hostname}-{date}-{time}"\fR | 205 | \f(CW$ sudo sleepgraph -m freeze -rtcwake off -o "freeze-{hostname}-{date}-{time}"\fR |
205 | .PP | 206 | .PP |
206 | 207 | ||
207 | .SS "Capturing Advanced Timelines" | 208 | .SS "capturing advanced timelines" |
208 | Execute a suspend & include dev mode source calls, limit callbacks to 5ms or larger. | 209 | Execute a suspend & include dev mode source calls, limit callbacks to 5ms or larger. |
209 | .IP | 210 | .IP |
210 | \f(CW$ sudo sleepgraph -m mem -rtcwake 15 -dev -mindev 5\fR | 211 | \f(CW$ sudo sleepgraph -m mem -rtcwake 15 -dev -mindev 5\fR |
@@ -222,8 +223,7 @@ Execute a suspend using a custom command. | |||
222 | \f(CW$ sudo sleepgraph -cmd "echo mem > /sys/power/state" -rtcwake 15\fR | 223 | \f(CW$ sudo sleepgraph -cmd "echo mem > /sys/power/state" -rtcwake 15\fR |
223 | .PP | 224 | .PP |
224 | 225 | ||
225 | 226 | .SS "adding callgraph data" | |
226 | .SS "Capturing Timelines with Callgraph Data" | ||
227 | Add device callgraphs. Limit the trace depth and only show callgraphs 10ms or larger. | 227 | Add device callgraphs. Limit the trace depth and only show callgraphs 10ms or larger. |
228 | .IP | 228 | .IP |
229 | \f(CW$ sudo sleepgraph -m mem -rtcwake 15 -f -maxdepth 5 -mincg 10\fR | 229 | \f(CW$ sudo sleepgraph -m mem -rtcwake 15 -f -maxdepth 5 -mincg 10\fR |
@@ -235,6 +235,16 @@ Capture a full callgraph across all suspend, then filter the html by a single ph | |||
235 | \f(CW$ sleepgraph -dmesg host_mem_dmesg.txt -ftrace host_mem_ftrace.txt -f -cgphase resume | 235 | \f(CW$ sleepgraph -dmesg host_mem_dmesg.txt -ftrace host_mem_ftrace.txt -f -cgphase resume |
236 | .PP | 236 | .PP |
237 | 237 | ||
238 | .SS "rebuild timeline from logs" | ||
239 | .PP | ||
240 | Rebuild the html from a previous run's logs, using the same options. | ||
241 | .IP | ||
242 | \f(CW$ sleepgraph -dmesg dmesg.txt -ftrace ftrace.txt -callgraph\fR | ||
243 | .PP | ||
244 | Rebuild the html with different options. | ||
245 | .IP | ||
246 | \f(CW$ sleepgraph -dmesg dmesg.txt -ftrace ftrace.txt -addlogs -srgap\fR | ||
247 | |||
238 | .SH "SEE ALSO" | 248 | .SH "SEE ALSO" |
239 | dmesg(1) | 249 | dmesg(1) |
240 | .PP | 250 | .PP |