11.3 fbt Provider

The fbt (Function Boundary Tracing) provider
includes probes that are associated with the entry to and return
from most functions in the Oracle Linux kernel. Therefore, there could
well be tens of thousands of fbt probes.

To confirm that the fbt provider is available
on your processor's architecture, you should be able to load the
module that provides fbt instrumentation and
successfully list several probes. Note that this process could
take several seconds due to the large number of such probes. For
example, consider the following command, which is executed as
root:

In the previous example, the first dtrace
command automatically loads modules that are listed in
/etc/dtrace-modules, but also confirms that
fbt was not among them. After
fbt is loaded manually, many
fbt probes appear. For more information, see
Section 11.3.4, “Module Loading and fbt”.

Like other DTrace providers, Function Boundary Tracing (FBT) has
no probe effect when not explicitly enabled. When enabled, FBT
only induces a probe effect in probed functions. While the FBT
implementation is highly specific to the instruction set
architecture, FBT has been implemented on both x86 and 64-bit Arm
platforms. For each instruction set, there are a small number of
leaf functions that do not call other
functions and are highly optimized by the compiler, which cannot
be instrumented by FBT. Probes for these functions are not present
in DTrace.

An effective use of FBT probes requires knowledge of the operating
system implementation. It is therefore recommended that you use
FBT only when developing kernel software or when other providers
are not sufficient. You can use other DTrace providers such as
syscall, sched,
proc, and io to answer most
system analysis questions without requiring operating system
implementation knowledge.