1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# Generic S3 (Suspend to Mem) test 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# This is the configuration file for sleepgraph. It contains 5*4882a593Smuzhiyun# all the tool arguments so that they don't have to be given on the 6*4882a593Smuzhiyun# command line. It also includes advanced settings for functions 7*4882a593Smuzhiyun# and kprobes. It is run like this 8*4882a593Smuzhiyun# 9*4882a593Smuzhiyun# sudo ./sleepgraph.py -config config/example.cfg 10*4882a593Smuzhiyun# 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun[Settings] 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun# ---- General Options ---- 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun# Verbosity 17*4882a593Smuzhiyun# print verbose messages (default: false) 18*4882a593Smuzhiyunverbose: false 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun# Suspend Mode 21*4882a593Smuzhiyun# e.g. standby, mem, freeze, disk (default: mem) 22*4882a593Smuzhiyunmode: mem 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun# Output Directory Format 25*4882a593Smuzhiyun# output folder for html, ftrace, and dmesg. Use {date} and {time} for current values 26*4882a593Smuzhiyunoutput-dir: suspend-{hostname}-{date}-{time} 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun# Automatic Wakeup 29*4882a593Smuzhiyun# Use rtcwake to autoresume after X seconds, or off to disable (default: 15) 30*4882a593Smuzhiyunrtcwake: 15 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# Add Logs 33*4882a593Smuzhiyun# add the dmesg and ftrace log to the html output (default: false) 34*4882a593Smuzhiyunaddlogs: true 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun# Suspend/Resume Gap 37*4882a593Smuzhiyun# insert a small visible gap between suspend and resume on the timeline (default: false) 38*4882a593Smuzhiyunsrgap: false 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun# Skip HTML generation 41*4882a593Smuzhiyun# Only capture the logs, don't generate the html timeline (default: false) 42*4882a593Smuzhiyunskiphtml: false 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun# Sync filesystem before suspend 45*4882a593Smuzhiyun# run sync before the test, minimizes sys_sync call time (default: false) 46*4882a593Smuzhiyunsync: true 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun# Runtime suspend enable/disable 49*4882a593Smuzhiyun# Enable/disable runtime suspend for all devices, restore all after test (default: no-action) 50*4882a593Smuzhiyun# rs: disable 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun# Turn display on/off for test 53*4882a593Smuzhiyun# Switch the display on/off for the test using xset (default: no-action) 54*4882a593Smuzhiyun# display: on 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun# Print results to text file 57*4882a593Smuzhiyun# Print the status of the test run in the given file (default: no-action) 58*4882a593Smuzhiyunresult: result.txt 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun# Gzip the log files to save space 61*4882a593Smuzhiyun# Gzip the generated log files, and read gzipped log files (default: false) 62*4882a593Smuzhiyungzip: true 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun# ---- Advanced Options ---- 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun# Command to execute in lieu of suspend (default: "") 67*4882a593Smuzhiyun# command: echo mem > /sys/power/state 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun# Display user processes 70*4882a593Smuzhiyun# graph user processes and cpu usage in the timeline (default: false) 71*4882a593Smuzhiyunproc: false 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun# Display function calls 74*4882a593Smuzhiyun# graph source functions in the timeline (default: false) 75*4882a593Smuzhiyundev: false 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun# Multiple test runs 78*4882a593Smuzhiyun# Run N tests D seconds apart, generates separate outputs with a summary (default: false) 79*4882a593Smuzhiyun# multi: 3 5 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun# Back to Back Suspend/Resume 82*4882a593Smuzhiyun# Run two suspend/resumes back to back and display in the same timeline (default: false) 83*4882a593Smuzhiyunx2: false 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun# Back to Back Suspend Delay 86*4882a593Smuzhiyun# Time delay between the two test runs in ms (default: 0 ms) 87*4882a593Smuzhiyunx2delay: 0 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun# Pre Suspend Delay 90*4882a593Smuzhiyun# Include an N ms delay before (1st) suspend (default: 0 ms) 91*4882a593Smuzhiyunpredelay: 0 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun# Post Resume Delay 94*4882a593Smuzhiyun# Include an N ms delay after (last) resume (default: 0 ms) 95*4882a593Smuzhiyunpostdelay: 0 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun# Minimum Device Length 98*4882a593Smuzhiyun# graph only devices longer than min in the timeline (default: 0.001 ms) 99*4882a593Smuzhiyunmindev: 0.001 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun# Call Loop Max Gap (dev mode only) 102*4882a593Smuzhiyun# merge loops of the same call if each is less than maxgap apart (def: 100us) 103*4882a593Smuzhiyuncallloop-maxgap: 0.0001 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun# Call Loop Max Length (dev mode only) 106*4882a593Smuzhiyun# merge loops of the same call if each is less than maxlen in length (def: 5ms) 107*4882a593Smuzhiyuncallloop-maxlen: 0.005 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun# Override default timeline entries: 110*4882a593Smuzhiyun# Do not use the internal default functions for timeline entries (def: false) 111*4882a593Smuzhiyun# Set this to true if you intend to only use the ones defined in the config 112*4882a593Smuzhiyunoverride-timeline-functions: true 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun# Override default dev timeline entries: 115*4882a593Smuzhiyun# Do not use the internal default functions for dev timeline entries (def: false) 116*4882a593Smuzhiyun# Set this to true if you intend to only use the ones defined in the config 117*4882a593Smuzhiyunoverride-dev-timeline-functions: true 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun# ---- Debug Options ---- 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun# Callgraph 122*4882a593Smuzhiyun# gather detailed ftrace callgraph data on all timeline events (default: false) 123*4882a593Smuzhiyuncallgraph: false 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun# Max graph depth 126*4882a593Smuzhiyun# limit the callgraph trace to this depth (default: 0 = all) 127*4882a593Smuzhiyunmaxdepth: 2 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun# Callgraph phase filter 130*4882a593Smuzhiyun# Only enable callgraphs for one phase, i.e. resume_noirq (default: all) 131*4882a593Smuzhiyuncgphase: suspend 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun# Callgraph x2 test filter 134*4882a593Smuzhiyun# Only enable callgraphs test 0 or 1 when using -x2 (default: 1) 135*4882a593Smuzhiyuncgtest: 0 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun# Expand Callgraph 138*4882a593Smuzhiyun# pre-expand the callgraph data in the html output (default: disabled) 139*4882a593Smuzhiyunexpandcg: false 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun# Minimum Callgraph Length 142*4882a593Smuzhiyun# provide callgraph data for blocks longer than min (default: 0.001 ms) 143*4882a593Smuzhiyunmincg: 1 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun# Timestamp Precision 146*4882a593Smuzhiyun# Number of significant digits in timestamps (0:S, [3:ms], 6:us) 147*4882a593Smuzhiyuntimeprec: 6 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun# Device Filter 150*4882a593Smuzhiyun# show only devices whose name/driver includes one of these strings 151*4882a593Smuzhiyun# devicefilter: _cpu_up,_cpu_down,i915,usb 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun# Add kprobe functions to the timeline 154*4882a593Smuzhiyun# Add functions to the timeline from a text file (default: no-action) 155*4882a593Smuzhiyun# fadd: file.txt 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun# Ftrace buffer size 158*4882a593Smuzhiyun# Set trace buffer size to N kilo-bytes (default: all of free memory up to 3GB) 159*4882a593Smuzhiyun# bufsize: 1000 160