# Analyze performance with tools

Examine the system performance with the following analysis tools:

- Function tracer (ftrace): Debugs and analyzes latencies and performance issues
- LTTng: Traces Linux kernel and userspace simultaneously
- Trace Compass (Eclipse): Visualizes performance issues graphically
- Qualcomm Profiler CLI: Profiles and optimizes application scaling on Qualcomm SoCs
- Perf Utility: Evaluates performance monitoring unit (PMU) counters in Linux
- Systemd-analyze: 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 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 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
- Userspace 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. For detailed steps, see [Install QSC Launcher](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-254/build_from_source_qsc_gui_intro.html#install-qsc-launcher).
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

Last Published: Apr 03, 2026

Previous Topic
 
Features impacting performance Next Topic

Configure CPU, GPU, and memory