mirror of https://gitee.com/openkylin/linux.git
133 lines
4.0 KiB
Groff
133 lines
4.0 KiB
Groff
|
.TH BOOTGRAPH 8
|
||
|
.SH NAME
|
||
|
bootgraph \- Kernel boot timing analysis
|
||
|
.SH SYNOPSIS
|
||
|
.ft B
|
||
|
.B bootgraph
|
||
|
.RB [ OPTIONS ]
|
||
|
.RB [ COMMAND ]
|
||
|
.SH DESCRIPTION
|
||
|
\fBbootgraph \fP reads the dmesg log from kernel boot and
|
||
|
creates an html representation of the initcall timeline up to the start
|
||
|
of the init process.
|
||
|
.PP
|
||
|
If no specific command is given, the tool reads the current dmesg log and
|
||
|
outputs bootgraph.html.
|
||
|
.PP
|
||
|
The tool can also augment the timeline with ftrace data on custom target
|
||
|
functions as well as full trace callgraphs.
|
||
|
.SH OPTIONS
|
||
|
.TP
|
||
|
\fB-h\fR
|
||
|
Print this help text
|
||
|
.TP
|
||
|
\fB-v\fR
|
||
|
Print the current tool version
|
||
|
.TP
|
||
|
\fB-addlogs\fR
|
||
|
Add the dmesg log to the html output. It will be viewable by
|
||
|
clicking a button in the timeline.
|
||
|
.TP
|
||
|
\fB-o \fIfile\fR
|
||
|
Override the HTML output filename (default: bootgraph.html)
|
||
|
.SS "Ftrace Debug"
|
||
|
.TP
|
||
|
\fB-f\fR
|
||
|
Use ftrace to add function detail (default: disabled)
|
||
|
.TP
|
||
|
\fB-callgraph\fR
|
||
|
Use ftrace to create initcall callgraphs (default: disabled). If -filter
|
||
|
is not used there will be one callgraph per initcall. This can produce
|
||
|
very large outputs, i.e. 10MB - 100MB.
|
||
|
.TP
|
||
|
\fB-maxdepth \fIlevel\fR
|
||
|
limit the callgraph trace depth to \fIlevel\fR (default: 2). This is
|
||
|
the best way to limit the output size when using -callgraph.
|
||
|
.TP
|
||
|
\fB-mincg \fIt\fR
|
||
|
Discard all callgraphs shorter than \fIt\fR 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.
|
||
|
.TP
|
||
|
\fB-timeprec \fIn\fR
|
||
|
Number of significant digits in timestamps (0:S, 3:ms, [6:us])
|
||
|
.TP
|
||
|
\fB-expandcg\fR
|
||
|
pre-expand the callgraph data in the html output (default: disabled)
|
||
|
.TP
|
||
|
\fB-filter \fI"func1,func2,..."\fR
|
||
|
Instead of tracing each initcall, trace a custom list of functions (default: do_one_initcall)
|
||
|
|
||
|
.SH COMMANDS
|
||
|
.TP
|
||
|
\fB-reboot\fR
|
||
|
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
|
||
|
.TP
|
||
|
\fB-manual\fR
|
||
|
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
|
||
|
.TP
|
||
|
\fB-dmesg \fIfile\fR
|
||
|
Create HTML output from an existing dmesg file.
|
||
|
.TP
|
||
|
\fB-ftrace \fIfile\fR
|
||
|
Create HTML output from an existing ftrace file (used with -dmesg).
|
||
|
.TP
|
||
|
\fB-flistall\fR
|
||
|
Print all ftrace functions capable of being captured. These are all the
|
||
|
possible values you can add to trace via the -filter argument.
|
||
|
|
||
|
.SH EXAMPLES
|
||
|
Create a timeline using the current dmesg log.
|
||
|
.IP
|
||
|
\f(CW$ bootgraph\fR
|
||
|
.PP
|
||
|
Create a timeline using the current dmesg and ftrace log.
|
||
|
.IP
|
||
|
\f(CW$ bootgraph -callgraph\fR
|
||
|
.PP
|
||
|
Create a timeline using the current dmesg, add the log to the html and change the name.
|
||
|
.IP
|
||
|
\f(CW$ bootgraph -addlogs -o myboot.html\fR
|
||
|
.PP
|
||
|
Capture a new boot timeline by automatically rebooting the machine.
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -reboot -addlogs -o latestboot.html\fR
|
||
|
.PP
|
||
|
Capture a new boot timeline with function trace data.
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -reboot -f\fR
|
||
|
.PP
|
||
|
Capture a new boot timeline with trace & callgraph data. Skip callgraphs smaller than 5ms.
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -reboot -callgraph -mincg 5\fR
|
||
|
.PP
|
||
|
Capture a new boot timeline with callgraph data over custom functions.
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -reboot -callgraph -filter "acpi_ps_parse_aml,msleep"\fR
|
||
|
.PP
|
||
|
Capture a brand new boot timeline with manual reboot.
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -callgraph -manual\fR
|
||
|
.IP
|
||
|
\f(CW$ vi /etc/default/grub # add the CMDLINE string to your kernel params\fR
|
||
|
.IP
|
||
|
\f(CW$ sudo reboot # reboot the machine\fR
|
||
|
.IP
|
||
|
\f(CW$ sudo bootgraph -callgraph # re-run the tool after restart\fR
|
||
|
.PP
|
||
|
|
||
|
.SH "SEE ALSO"
|
||
|
dmesg(1), update-grub(8), crontab(1), reboot(8)
|
||
|
.PP
|
||
|
.SH AUTHOR
|
||
|
.nf
|
||
|
Written by Todd Brandt <todd.e.brandt@linux.intel.com>
|