1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-25 07:49:18 +00:00
freebsd/sys/conf
Mitchell Horne da5b7e90e7 boottrace: a simple boot and shutdown-time tracing facility
Boottrace is a facility for capturing trace events during boot and
shutdown. This includes kernel initialization, as well as rc. It has
been used by NetApp internally for several years, for catching and
diagnosing slow devices or subsystems. It is driven from userspace by
sysctl interface, and the output is a human-readable log of events
(kern.boottrace.log).

This commit adds the core boottrace functionality implementing these
interfaces. Adding the trace annotations themselves to kernel and
userland will happen in follow-up commits. A future commit will also add
a boottrace(4) man page.

For now, boottrace is unconditionally compiled into the kernel but
disabled by default. It can be enabled by setting the
kern.boottrace.enabled tunable to 1 in loader.conf(5).

There is an existing boot-time event tracing facility, which can be
compiled into the kernel with 'options TSLOG'. While there is some
functional overlap between this and boottrace, they are distinct. TSLOG
is suitable for generating detailed timing information and flamegraphs,
and has been used to great success by cperciva@ to diagnose and reduce
the overall system boot time. Boottrace aims to more quickly provide an
overview of timing and resource usage of the boot (and shutdown) process
to a sysadmin who requires this knowledge.

Sponsored by:	NetApp, Inc.
Sponsored by:	Klara, Inc.
X-NetApp-PR:	#23
Differential Revision:	https://reviews.freebsd.org/D30184
2022-02-21 20:15:45 -04:00
..
config.mk
dtb.build.mk
dtb.mk
files boottrace: a simple boot and shutdown-time tracing facility 2022-02-21 20:15:45 -04:00
files.amd64
files.arm
files.arm64 files: Make ext_resources non-optional 2022-02-21 17:29:06 +01:00
files.i386
files.powerpc
files.riscv files: Make ext_resources non-optional 2022-02-21 17:29:06 +01:00
files.x86
kern.mk
kern.opts.mk
kern.post.mk
kern.pre.mk
kmod_syms_prefix.awk
kmod_syms.awk
kmod.mk
kmod.opts.mk
ldscript.amd64
ldscript.arm
ldscript.arm64
ldscript.i386
ldscript.kmod.amd64
ldscript.kmod.i386
ldscript.powerpc
ldscript.powerpc64
ldscript.powerpc64le
ldscript.powerpcspe
ldscript.riscv
Makefile.amd64
Makefile.arm
Makefile.arm64
Makefile.i386
Makefile.powerpc
Makefile.riscv
newvers.sh
NOTES
options options: Remove EXT_RESOURCES 2022-02-21 17:29:15 +01:00
options.amd64
options.arm
options.arm64
options.i386
options.powerpc
options.riscv
std.nodebug
sysent.mk
systags.sh
vdso_amd64_ia32.ldscript
vdso_amd64.ldscript
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE