# Analysis tools

Analysis tools are used to examine the CPU performance.

## Function tracer (ftrace)

- This tool is designed to offer insights into the kernel’s operations
- Function tracer is used 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 executing 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 is 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).

## Qualcomm Profiler

- Qualcomm^®^ Profiler CLI is a command-line interface tool.
- It is 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-70017-254/build_from_source_qsc_gui_intro.html).
- For information on 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 is used to obtain a function call stack.
- It is 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:

> 
> 
> 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: Dec 27, 2024

[Previous Topic
Features](https://docs.qualcomm.com/bundle/publicresource/80-70017-10/topics/2-performance-features.md) [Next Topic
Configure](https://docs.qualcomm.com/bundle/publicresource/80-70017-10/topics/14-configure.md)