Tracing and profiling with perf
The perf Linux tool can instrument the Linux kernel with both hardware and software performance counter events as well as static and dynamic kernel trace points. For this, it uses the kernel functionality we have seen in previous recipes, providing a common interface to all of them.
This tool can be used to debug, troubleshoot, optimize, and measure applications, workloads, or the full system, which covers the processor, kernel, and applications. Perf is probably the most complete of the tracing and profiling tools available for a Linux system.
Getting ready
The perf source is part of the Linux kernel. To include perf in your system, add the following to your conf/local.conf
file:
IMAGE_INSTALL_append = " perf"
Perf is also part of the tools-profile
image feature, so you can also add it with the following:
EXTRA_IMAGE_FEATURES += "tools-profile"
Perf is also included in the -sdk
images.
To take the maximum advantage of this tool, we need to have symbols both in user...