If no specific command is given, the tool reads the current dmesg log and outputs a new timeline.
The tool can also augment the timeline with ftrace data on custom target functions as well as full trace callgraphs.
Generates output files in subdirectory: boot-yymmdd-HHMMSS html timeline : <hostname>_boot.html raw dmesg file : <hostname>_boot_dmesg.txt raw ftrace file : <hostname>_boot_ftrace.txt
-h Print this help text
-v Print the current tool version
-addlogs Add the dmesg log to the html output. It will be viewable by clicking a button in the timeline.
-o name Overrides the output subdirectory name when running a new test. Use {date}, {time}, {hostname} for current values. e.g. boot-{hostname}-{date}-{time}
-f Use ftrace to add function detail (default: disabled)
-callgraph Use ftrace to create initcall callgraphs (default: disabled). If -func is not used there will be one callgraph per initcall. This can produce very large outputs, i.e. 10MB - 100MB.
-maxdepth level limit the callgraph trace depth to level (default: 2). This is the best way to limit the output size when using -callgraph.
-mincg t Discard all callgraphs shorter than t milliseconds (default: 0=all). This reduces the html file size as there can be many tiny callgraphs which are barely visible in the timeline. The value is a float: e.g. 0.001 represents 1 us.
-cgfilter "func1,func2,..." Reduce callgraph output in the timeline by limiting it to a list of calls. The argument can be a single function name or a comma delimited list. (default: none)
-timeprec n Number of significant digits in timestamps (0:S, 3:ms, [6:us])
-expandcg pre-expand the callgraph data in the html output (default: disabled)
-func "func1,func2,..." Instead of tracing each initcall, trace a custom list of functions (default: do_one_initcall)
-reboot Reboot the machine and generate a new timeline automatically. Works in 4 steps. 1. updates grub with the required kernel parameters 2. installs a cron job which re-runs the tool after reboot 3. reboots the system 4. after startup, extracts the data and generates the timeline
-manual Show the requirements to generate a new timeline manually. Requires 3 steps. 1. append the string to the kernel command line via your native boot manager. 2. reboot the system 3. after startup, re-run the tool with the same arguments and no command
-dmesg file Create HTML output from an existing dmesg file.
-ftrace file Create HTML output from an existing ftrace file (used with -dmesg).
-flistall Print all ftrace functions capable of being captured. These are all the possible values you can add to trace via the -func argument.
-sysinfo Print out system info extracted from BIOS. Reads /dev/mem directly instead of going through dmidecode.
Create a timeline using the current dmesg and ftrace log.
$ bootgraph -callgraphCreate a timeline using the current dmesg, add the log to the html and change the folder.
$ bootgraph -addlogs -o "myboot-{date}-{time}"Capture a new boot timeline by automatically rebooting the machine.
$ sudo bootgraph -reboot -addlogs -o "latest-{hostname)"Capture a new boot timeline with function trace data.
$ sudo bootgraph -reboot -fCapture a new boot timeline with trace & callgraph data. Skip callgraphs smaller than 5ms.
$ sudo bootgraph -reboot -callgraph -mincg 5Capture a new boot timeline with callgraph data over custom functions.
$ sudo bootgraph -reboot -callgraph -func "acpi_ps_parse_aml,msleep"Capture a brand new boot timeline with manual reboot.
$ sudo bootgraph -callgraph -manual $ vi /etc/default/grub # add the CMDLINE string to your kernel params $ sudo reboot # reboot the machine $ sudo bootgraph -callgraph # re-run the tool after restart
Rebuild the html from a previous run's logs, using the same options.
$ bootgraph -dmesg dmesg.txt -ftrace ftrace.txt -callgraphRebuild the html with different options.
$ bootgraph -dmesg dmesg.txt -ftrace ftrace.txt -addlogs
Written by Todd Brandt <todd.e.brandt@linux.intel.com>