Lines Matching +full:suspend +full:- +full:mode
8 pm-graph: suspend/resume/boot timing analysis tools
11 Home Page: https://01.org/pm-graph
13 Report bugs/issues at bugzilla.kernel.org Tools/pm-graph
14 - https://bugzilla.kernel.org/buglist.cgi?component=pm-graph&product=Tools
17 - Getting Started:
18 https://01.org/pm-graph/documentation/getting-started
20 - Config File Format:
21 https://01.org/pm-graph/documentation/3-config-file-format
23 - upstream version in git:
24 https://github.com/intel/pm-graph/
27 - Overview
28 - Setup
29 - Usage
30 - Basic Usage
31 - Dev Mode Usage
32 - Proc Mode Usage
33 - Endurance Testing
34 - Usage Examples
35 - Configuration Files
36 - Usage Examples
37 - Config File Options
38 - Custom Timeline Entries
39 - Adding/Editing Timeline Functions
40 - Adding/Editing Dev Timeline Source Functions
41 - Verifying your Custom Functions
42 - Testing on consumer linux Operating Systems
43 - Android
45 ------------------------------------------------------------------
47 ------------------------------------------------------------------
50 their linux stack's suspend/resume & boot time. Using a kernel image built
51 with a few extra options enabled, the tools will execute a suspend or boot,
54 and kernel processes are taking the most time in suspend/resume & boot.
56 ------------------------------------------------------------------
58 ------------------------------------------------------------------
61 - runs with python2 or python3, choice is made by /usr/bin/python link
62 - python
63 - python-configparser (for python2 sleepgraph)
64 - python-requests (for googlesheet.py)
65 - linux-tools-common (for turbostat usage in sleepgraph)
68 sudo apt-get install python python-configparser python-requests linux-tools-common
71 sudo dnf install python python-configparser python-requests linux-tools-common
75 $> git clone http://github.com/intel/pm-graph.git
76 $> cd pm-graph
97 (kernel/pre-3.15/enable_trace_events_suspend_resume.patch)
98 (kernel/pre-3.15/enable_trace_events_device_pm_callback.patch)
105 If you're using a kernel older than 3.11-rc2, the following simple
107 in file: kernel/power/suspend.c
113 (kernel/pre-3.11-rc2/enable_ftrace_in_suspendresume.patch)
117 ------------------------------------------------------------------
119 ------------------------------------------------------------------
126 2) Open up a terminal window and execute the mode list command:
128 %> sudo ./sleepgraph.py -modes
133 %> sudo ./sleepgraph.py -m mem -rtcwake 15
137 %> sudo ./sleepgraph.py -config config/suspend.cfg
141 files in subdirectory: suspend-mmddyy-HHMMSS. The ftrace file can
144 HTML output: <hostname>_<mode>.html
145 raw dmesg output: <hostname>_<mode>_dmesg.txt
146 raw ftrace output: <hostname>_<mode>_ftrace.txt
151 Dev Mode Usage
154 Developer mode adds information on low level source calls to the timeline.
165 The timeline will be much larger if run with dev mode, so it can be useful
166 to set the -mindev option to clip out any device blocks that are too small
167 to see easily. The following command will give a nice dev mode run:
169 %> sudo ./sleepgraph.py -m mem -rtcwake 15 -mindev 1 -dev
173 %> sudo ./sleepgraph.py -config config/suspend-dev.cfg
176 Proc Mode Usage
179 Proc mode adds user process info to the timeline. This is done in a manner
182 the period before and after suspend/resume.
187 can also be useful to run in x2 mode with an x2 delay, this way you can
189 successive suspend/resumes.
193 %> sudo ./sleepgraph.py -m mem -rtcwake 15 -x2 -x2delay 1000 -predelay 1000 -postdelay 1000 -proc
197 %> sudo ./sleepgraph.py -config config/suspend-proc.cfg
199 ------------------------------------------------------------------
201 ------------------------------------------------------------------
204 suspend/resumes over an extended period and analyze the behavior. This can be
205 accomplished with sleepgraph's -multi argument. You specify two numbers: the
207 delay in seconds between them. For instance, -multi 20 5: execute 20 tests with
208 a 5 second delay between each, or -multi 24h 0: execute tests over a 24 hour
210 to generate the data you want. It's most useful to collect dev mode timelines
216 summary-issue.html and summary-devices.html files include data taken from
219 suspend-xN-{date}-{time}:
221 summary-issues.html
222 summary-devices.html
223 suspend-{date}-{time} (1)
224 suspend-{date}-{time} (2)
229 -m mode
230 Mode to initiate for suspend e.g. mem, freeze, standby (default: mem).
232 -rtcwake t
235 -gzip (optional)
239 -dev (optional)
242 -multi n d
244 created in a new subdirectory: suspend-xN-{date}-{time}. When the multitest
245 run is done, the -summary command is called automatically to create summary
246 html files for all the data (unless you use -skiphtml). -skiphtml will
248 can then run the tool again at a later time with -summary and -genhtml to
251 -skiphtml (optional)
254 copy the data to a faster host machine and run -summary -genhtml to
259 -summary indir
260 Generate or regenerate the summary for a -multi test run. Creates three
261 files: summary.html, summary-issues.html, and summary-devices.html in the
263 by kernel/host/mode, and links to the test html files. summary-issues.html
265 summary-devices.html is a list of devices and times from all the tests.
267 -genhtml
268 Used with -summary to regenerate any missing html timelines from their
277 %> sudo ./sleepgraph.py -m mem -rtcwake 10 -dev -gzip -multi 2000 0
281 %> sudo ./sleepgraph.py -m mem -rtcwake 10 -dev -gzip -multi 2000 0 -skiphtml
285 depending on whether you used the -skiphtml option. The root folder contains
290 %> cd suspend-x2000-{date}-{time}
291 %> sleepgraph.py -summary .
293 or if you need to generate the html timelines you can use -genhtml
295 %> cd suspend-xN-{date}-{time}
296 %> sleepgraph.py -summary . -genhtml
298 ------------------------------------------------------------------
300 ------------------------------------------------------------------
306 Simple suspend/resume with basic timeline (mem/freeze/standby)
307 config/suspend.cfg
311 Dev mode suspend/resume with dev timeline (mem/freeze/standby)
312 config/suspend-dev.cfg
313 config/freeze-dev.cfg
314 config/standby-dev.cfg
316 Simple suspend/resume with timeline and callgraph (mem/freeze/standby)
317 config/suspend-callgraph.cfg
318 config/freeze-callgraph.cfg
319 config/standby-callgraph.cfg
321 Sample proc mode x2 run using mem suspend
322 config/suspend-x2-proc.cfg
325 config/custom-timeline-functions.cfg
328 config/debug-serio-suspend.cfg
334 Run a simple mem suspend:
335 %> sudo ./sleepgraph.py -config config/suspend.cfg
337 Run a mem suspend with callgraph data:
338 %> sudo ./sleepgraph.py -config config/suspend-callgraph.cfg
340 Run a mem suspend with dev mode detail:
341 %> sudo ./sleepgraph.py -config config/suspend-dev.cfg
352 # Suspend Mode: e.g. standby, mem, freeze, disk (def: mem)
353 mode: mem
356 output-dir: suspend-{hostname}-{date}-{time}
367 # Custom Command: Command to execute in lieu of suspend (def: "")
370 # Proc mode: graph user processes and cpu usage in the timeline (def: false)
373 # Dev mode: graph source functions in the timeline (def: false)
376 # Suspend/Resume x2: run 2 suspend/resumes back to back (def: false)
379 # x2 Suspend Delay: time delay between the two test runs in ms (def: 0 ms)
382 # Pre Suspend Delay: nclude an N ms delay before (1st) suspend (def: 0 ms)
394 # Expand Callgraph: pre-expand the callgraph treeviews in html (def: false)
409 override-timeline-functions: true
414 override-dev-timeline-functions: true
416 # Call Loop Max Gap (dev mode only)
418 callloop-maxgap: 0.0001
420 # Call Loop Max Length (dev mode only)
422 callloop-maxlen: 0.005
424 ------------------------------------------------------------------
426 ------------------------------------------------------------------
443 Use the override-timeline-functions option if you only want to use your
452 For a full example config, see config/custom-timeline-functions.cfg. It pulls
493 Adding or Editing Dev Mode Timeline Source Functions
496 In dev mode, the tool uses an array of function names to monitor source
507 the functions that add a hardcoded time delay to the suspend/resume path.
517 Use the override-dev-timeline-functions option if you only want to use your
527 For a full example config, see config/custom-timeline-functions.cfg. It pulls
545 and the -status option. The tool will go through all the kprobes (both
554 sudo ./sleepgraph.py -config config/custom-timeline-functions.cfg -status
558 is "mem" a valid power mode: YES
586 ------------------------------------------------------------------
588 ------------------------------------------------------------------
601 host%> wget https://raw.githubusercontent.com/intel/pm-graph/master/tools/android.sh
613 kernel : 3.14.0-i386-dirty
624 [execute the suspend]
626 # NOTE: The suspend will only work if the screen isn't timed out,
627 # so you have to press some keys first to wake it up b4 suspend)
628 dev%> sh android.sh suspend mem
629 ------------------------------------
630 Suspend/Resume timing test initiated
631 ------------------------------------
633 kernel : 3.14.0-i386-dirty
634 mode : mem
638 ------------------------------------
641 SUSPEND START @ 21:24:02 (rtcwake in 10 seconds)
647 # reconnect sometimes in order for the connection to work post-suspend
658 host%> sleepgraph.py -ftrace ftrace.txt