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