# Performance analysis tools Examine the CPU performance with the analysis tools. ## Function tracer (ftrace) - This tool provides insights into the kernel’s operations - Function tracer is useful for debugging or analyzing latencies and performance issues - Function tracer serves as a tracing tool to collect kernel space traces for analysis To collect ftrace, do the following: Note The commands specified in the following steps should be run on the device. 1. To enable trace events, run the following commands from the SSH shell: mount -t debugfs none /sys/kernel/debug Copy to clipboard echo 0 > /sys/kernel/tracing/tracing_on Copy to clipboard echo 25600 > /sys/kernel/tracing/buffer_size_kb Copy to clipboard echo "" > /sys/kernel/tracing/set_event Copy to clipboard echo "" > /sys/kernel/tracing/trace Copy to clipboard 2. To understand the available events, run the following command: cat /sys/kernel/tracing/available_events Copy to clipboard 3. To enable the required events, for example, a scheduler trace, run the following commands: echo 1 > /sys/kernel/tracing/events/sched/sched_wakeup_new/enable Copy to clipboard echo 1 > /sys/kernel/tracing/events/sched/sched_waking/enable Copy to clipboard echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enable Copy to clipboard 4. To understand the set events, run the following command: cat /sys/kernel/debug/tracing/set_event Copy to clipboard 5. To start a trace, run the following command: echo 1 > /sys/kernel/tracing/tracing_on Copy to clipboard 6. Run use cases. 7. To stop the trace after running use cases, run the following command: echo 0 > /sys/kernel/tracing/tracing_on Copy to clipboard 8. To save the trace, run the following command: cat /sys/kernel/tracing/trace > /opt/ftrace.txt Copy to clipboard 9. To pull ftrace from the target to the host, use secure copy protocol (SCP) or a similar tool. Ensure to specify the target IP address in the command. The following is an example command to run on the host machine: scp -r root@10.92.162.185:/opt/ftrace.txt /local/mnt/workspace/logs Copy to clipboard For more information, see [https://www.kernel.org/doc/html/v4.17/trace/ftrace.html](https://www.kernel.org/doc/html/v4.17/trace/ftrace.html). ## Linux Trace Toolkit next generation (LTTng) - LTTng is an open-source tracing tool. - It's used to trace the Linux kernel and user space simultaneously. For more information, see [https://lttng.org/docs/v2.13/](https://lttng.org/docs/v2.13/). ## Trace Compass by Eclipse - Trace Compass is an open-source tool that provides a graphical view for analyzing performance issues. - It can parse several types of traces including ftrace and LTTng, and visualize the following: - Kernel resources - Kernel control flow - User space marker Trace Compass is a host application that requires a Java virtual machine to work on the host machine. For more information, see [https://projects.eclipse.org/projects/tools.tracecompass](https://projects.eclipse.org/projects/tools.tracecompass). To download Trace Compass, see [https://projects.eclipse.org/projects/tools.tracecompass/downloads](https://projects.eclipse.org/projects/tools.tracecompass/downloads) ## Qualcomm Profiler - Qualcomm^®^ Profiler CLI is a command-line interface tool. - It's used as a performance profiling tool to identify, measure, and optimize application scaling improvement opportunities across Qualcomm system-on-chip (SoC). - It supports CPU, GPU, process, memory, and I/O profiling metrics. - Download the Qualcomm Profiler tool on the host machine from the [Qualcomm Software Center (QSC)](https://softwarecenter.qualcomm.com/#/). - To install the QSC, see [Build with QSC Launcher](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/build_from_source_qsc_gui_intro.html). - For information about how to use the Qualcomm Profiler tool, see [Qualcomm Profiler CLI for Linux](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-3/getting-started.html). ## Perf utility - The Perf utility is an open-source profiling tool in Linux to read performance monitoring unit (PMU) counters. - It's used to obtain a function call stack. - It's part of the Qualcomm^®^ Linux^®^ build. To run the perf utility, run the following command on the device: perf --help Copy to clipboard For more information, see [https://perf.wiki.kernel.org/index.php/Main_Page](https://perf.wiki.kernel.org/index.php/Main_Page). ## systemd-analyze - Systemd-analyze is a command-line tool used to analyze and debug system boot performance in Linux. - It measures boot time milestones and analyzes bottlenecks at different layers, such as the kernel, user space platform, and services. - The Yocto system recipe comes with the systemd-analyze tool by default. To compile and install the systemd-analyze utility, do the following: - On host: 1. To compile `systemd-analyze.ipk`, run the following command in your workspace: bitbake systemd Copy to clipboard 2. The `.ipk` file is generated in the following directory: `/build-qcom-wayland/tmp-glibc/deploy/ipk/armv8-2a/systemd-analyze_250.5-r0_armv8-2a.ipk` 3. Push the `.ipk` file into the device from the host using SCP or a similar tool. The following is an example command to run on a host machine. Ensure to specify the target IP address in the command: adb shell mount -o remount,rw /usr Copy to clipboard scp systemd-analyze_250.5-r0_armv8-2a.ipk root@10.92.162.185:/usr/bin Copy to clipboard - On target: Install the `.ipk` file by running the following commands: > > > cd /usr/bin > Copy to clipboard > > > opkg --nodeps install --force-reinstall /usr/bin/systemd-analyze_250.5-r0_armv8-2a.ipk > Copy to clipboard For more information, see [https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html). Last Published: Apr 04, 2025 [Previous Topic Features impacting performance](https://docs.qualcomm.com/bundle/publicresource/80-70018-10/topics/2-performance-features.md) [Next Topic Configure CPU, GPU, and memory](https://docs.qualcomm.com/bundle/publicresource/80-70018-10/topics/14-configure.md)