1#
2# This is the configuration file for sleepgraph. It contains
3# all the tool arguments so that they don't have to be given on the
4# command line. It also includes advanced settings for functions
5# and kprobes. It is run like this
6#
7#    sudo ./sleepgraph.py -config thisfile.txt
8#
9
10[Settings]
11
12# Verbosity
13# print verbose messages (default: false)
14verbose: false
15
16# Suspend Mode
17# e.g. standby, mem, freeze, disk (default: mem)
18mode: mem
19
20# Automatic Wakeup
21# Use rtcwake to autoresume after X seconds, or off to disable (default: 15)
22rtcwake: 15
23
24# Add Logs
25# add the dmesg and ftrace log to the html output (default: false)
26addlogs: false
27
28# Display function calls
29# graph source functions in the timeline (default: false)
30dev: true
31
32# Callgraph
33# gather detailed ftrace callgraph data on all timeline events (default: false)
34callgraph: false
35
36# Back to Back Suspend/Resume
37# Run two suspend/resumes back to back (default: false)
38x2: false
39
40# Back to Back Suspend Delay
41# Time delay between the two test runs in ms (default: 0 ms)
42x2delay: 0
43
44# Minimum Device Length
45# graph only devices longer than min in the timeline (default: 0.001 ms)
46mindev: 1
47
48# Minimum Callgraph Length
49# provide callgraph data for blocks longer than min (default: 0.001 ms)
50mincg: 1
51
52# Suspend/Resume Gap
53# insert a small visible gap between suspend and resume on the timeline (default: false)
54srgap: false
55
56# Output Directory Format
57# output folder for html, ftrace, and dmesg. Use {date} and {time} for current values
58output-dir: suspend-{hostname}-{date}-{time}-custom
59
60# Override default timeline entries
61# Do not use the internal default functions for timeline entries (default: false)
62# Set this to true if you intend to only use the ones defined in this config
63override-timeline-functions: true
64
65# Override default dev timeline entries
66# Do not use the internal default functions for dev timeline entries (default: false)
67# Set this to true if you intend to only use the ones defined in this config
68override-dev-timeline-functions: true
69
70[timeline_functions_x86_64]
71#
72# Function calls to display in the timeline alongside device callbacks.
73# The tool has an internal set of these functions which should cover the
74# whole of kernel execution, but you can append or override here.
75#
76# This is a list of kprobes which use both symbol data and function arg data.
77# The function calls are displayed on the timeline alongside the device blocks.
78# The args are pulled directly from the stack using this architecture's registers
79# and stack formatting. Three pieces of info are required. The function name,
80# a format string, and an argument list
81#
82# Entry format:
83#
84#   function: format{fn_arg1}_{fn_arg2} fn_arg1 fn_arg2 ... [color=purple]
85#
86# Required Arguments:
87#
88#   function: The symbol name for the function you want probed, this is the
89#             minimum required for an entry, it will show up as the function
90#             name with no arguments.
91#
92#       example: _cpu_up:
93#
94# Optional Arguments:
95#
96#   format: The format to display the data on the timeline in. Use braces to
97#           enclose the arg names.
98#
99#       example: CPU_ON[{cpu}]
100#
101#   color: The color of the entry block in the timeline. The default color is
102#          transparent, so the entry shares the phase color. The color is an
103#          html color string, either a word, or an RGB.
104#
105#       example: [color=#CC00CC]
106#
107#   arglist: A list of arguments from registers/stack addresses. See URL:
108#            https://www.kernel.org/doc/Documentation/trace/kprobetrace.txt
109#
110#       example: cpu=%di:s32
111#
112# Example: Display cpu resume in the timeline
113#
114#       _cpu_up: CPU_ON[{cpu}] cpu=%di:s32 [color=orange]
115#
116_cpu_down: CPU_OFF[{cpu}] cpu=%di:s32
117_cpu_up: CPU_ON[{cpu}] cpu=%di:s32
118sys_sync:
119pm_prepare_console:
120pm_notifier_call_chain:
121freeze_processes:
122freeze_kernel_threads:
123pm_restrict_gfp_mask:
124acpi_suspend_begin:
125suspend_console:
126acpi_pm_prepare:
127syscore_suspend:
128arch_enable_nonboot_cpus_end:
129syscore_resume:
130acpi_pm_finish:
131resume_console:
132acpi_pm_end:
133pm_restore_gfp_mask:
134thaw_processes:
135pm_restore_console:
136
137[dev_timeline_functions_x86_64]
138#
139# Dev mode function calls to display inside timeline entries
140#
141# This is a list of kprobes which use both symbol data and function arg data.
142# The function calls are displayed on the timeline alongside the device blocks.
143# The args are pulled directly from the stack using this architecture's registers
144# and stack formatting. Three pieces of info are required. The function name,
145# a format string, and an argument list
146#
147# Entry format:
148#
149#   function: format{fn_arg1}_{fn_arg2} fn_arg1 fn_arg2 ... [color=purple]
150#
151# Required Arguments:
152#
153#   function: The symbol name for the function you want probed, this is the
154#             minimum required for an entry, it will show up as the function
155#             name with no arguments.
156#
157#       example: ata_eh_recover:
158#
159# Optional Arguments:
160#
161#   format: The format to display the data on the timeline in. Use braces to
162#           enclose the arg names.
163#
164#       example: ata{port}_port_reset
165# 
166#   color: The color of the entry block in the timeline. The default color is
167#          transparent, so the entry shares the phase color. The color is an
168#          html color string, either a word, or an RGB.
169#
170#       example: [color=#CC00CC]
171#
172#   arglist: A list of arguments from registers/stack addresses. See URL:
173#            https://www.kernel.org/doc/Documentation/trace/kprobetrace.txt
174#
175#       example: port=+36(%di):s32
176#
177# Example: Display ATA port reset as ataN_port_reset in the timeline
178#
179#       ata_eh_recover: ata{port}_port_reset port=+36(%di):s32
180#
181msleep: msleep time=%di:s32
182schedule_timeout_uninterruptible: schedule_timeout_uninterruptible timeout=%di:s32
183schedule_timeout: schedule_timeout timeout=%di:s32
184usleep_range: usleep_range min=%di:s32 max=%si:s32
185__const_udelay: udelay loops=%di:s32
186__mutex_lock_slowpath: mutex_lock_slowpath
187ata_eh_recover: ata_eh_recover port=+36(%di):s32
188acpi_os_stall:
189acpi_resume_power_resources:
190acpi_ps_parse_aml:
191ext4_sync_fs:
192i915_gem_resume:
193i915_restore_state:
194intel_opregion_setup:
195g4x_pre_enable_dp:
196vlv_pre_enable_dp:
197chv_pre_enable_dp:
198g4x_enable_dp:
199vlv_enable_dp:
200intel_hpd_init:
201intel_opregion_register:
202intel_dp_detect:
203intel_hdmi_detect:
204intel_opregion_init:
205intel_fbdev_set_suspend:
206