# Analyze performance with tools Examine the system performance with the following analysis tools: - [Function tracer (ftrace)](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#function-tracer-ftrace): Debugs and analyzes latencies and performance issues > > > Note > > > To enable ftrace, verify kernel config `CONFIG_FTRACE` is set to `y` in `arch/arm64/configs/qcom.config`. If it's not set, ftrace doesn't work. - [LTTng](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#lttng): Traces Linux kernel and userspace simultaneously - [Trace Compass (Eclipse)](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#trace-compass-by-eclipse): Visualizes performance issues graphically - [Qualcomm Profiler CLI](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#qualcomm-profiler): Profiles and optimizes application scaling on Qualcomm SoCs - [Perf Utility](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#perf-utility): Evaluates performance monitoring unit (PMU) counters in Linux - [Systemd-analyze](https://docs.qualcomm.com/doc/80-80022-10/topic/13-performance_tools.html#systemd-analyze-link): Analyzes and debugs system boot performance in Linux ## Function tracer (ftrace) This tool provides insights into the kernel’s operations. [Function Tracer](https://www.kernel.org/doc/html/v4.17/trace/ftrace.html) is useful for debugging or analyzing latencies and performance issues. Function tracer serves as a tracing tool to collect kernelspace 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 on the device 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 check 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 device to the host computer, use a secure copy protocol (SCP) or a similar tool. Ensure that you specify the target IP address in the command. The following is an example command to run on the host computer: scp -r root@10.92.162.185:/opt/ftrace.txt /local/mnt/workspace/logs Copy to clipboard ## Linux Trace Toolkit next generation (LTTng) LTTng is an open-source tracing tool. It's used to trace the Linux kernel and userspace simultaneously. For more information, see [LTTng Documentation](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 computer. For more information, see [Eclipse Trace Compass](https://projects.eclipse.org/projects/tools.tracecompass). To download Trace Compass, see [Eclipse Trace Compass - Downloads](https://projects.eclipse.org/projects/tools.tracecompass/downloads). ## Qualcomm^®^ Profiler CLI Qualcomm Profiler is a performance profiling tool to identify, measure, and optimize application scaling improvement opportunities across Qualcomm system-on-chips (SoCs). It supports CPU, GPU, aDSP, cDSP, userspace processes, memory, and I/O profiling metrics. For detailed information about how to use the Qualcomm Profiler tool, see [Qualcomm Profiler User Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-2/introduction.html). To download the Qualcomm Profiler tool on the host computer, do the following: 1. Download and install the Qualcomm Software Center. 2. Launch Qualcomm Software Center, search for Qualcomm Profiler, and download it. ## Perf utility The Perf utility is an open-source profiling tool in Linux to monitor the PMU counters. It's used to obtain a function call stack. It's part of the Qualcomm^®^ Linux^®^ build. For more information, see [perf: Linux profiling with performance counters](https://perfwiki.github.io/main/). To run the perf utility, run the following command on the device: perf --help Copy to clipboard ## systemd-analyze Systemd-analyze is a command-line tool to analyze and debug system boot performance in Linux. It measures boot time milestones and analyzes bottlenecks at different layers, such as the kernel, userspace platform, and services. The Yocto system recipe comes with the systemd-analyze tool by default. For more information, see [systemd-analyze — Analyze and debug system manager](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html). To compile and install the systemd-analyze utility, do the following: - On the host computer, do the following: 1. To compile `systemd-analyze.ipk`, run the following command in your workspace: bitbake systemd Copy to clipboard The `.ipk` file is generated in the following directory: `/build-qcom-wayland/tmp-glibc/deploy/ipk/armv8-2a/systemd-analyze_255.13-r0_armv8-2a.ipk` 2. Push the `.ipk` file to the device from the host computer using secure copy protocol (SCP) or a similar tool. The following are example commands to run on the host computer. Ensure that you specify the target IP address in the SCP command: adb shell mount -o remount,rw /usr Copy to clipboard scp systemd-analyze_255.13-r0_armv8-2a.ipk root@10.92.162.185:/usr/bin Copy to clipboard - On the target, do the following: Install the `.ipk` file by running the following commands: > > > cd /usr/bin > Copy to clipboard > > > opkg --nodeps install --force-reinstall /usr/bin/systemd-analyze_255.13-r0_armv8-2a.ipk > Copy to clipboard ### Next steps - [Configure CPU, GPU, and memory](https://docs.qualcomm.com/doc/80-80022-10/topic/14-configure.html#configure) Last Published: May 20, 2026 [Previous Topic Features impacting performance](https://docs.qualcomm.com/bundle/publicresource/80-80022-10/topics/2-performance-features.md) [Next Topic Configure CPU, GPU, and memory](https://docs.qualcomm.com/bundle/publicresource/80-80022-10/topics/14-configure.md)