# Analysis tools Source: [https://docs.qualcomm.com/doc/80-70015-10/topic/13-performance_tools.html](https://docs.qualcomm.com/doc/80-70015-10/topic/13-performance_tools.html) Analysis tools are used to examine the CPU performance. ### Function tracer (ftrace) - This tool is designed to offer insights into the kernel’s operations. - It is used for debugging or analyzing latencies and performance issues. - It 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 a device. 1. To enable trace events, run the following commands from the SSH shell: mount -t debugfs none /sys/kernel/debugCopy to clipboard echo 0 > /sys/kernel/tracing/tracing_onCopy to clipboard echo 25600 > /sys/kernel/tracing/buffer_size_kbCopy to clipboard echo "" > /sys/kernel/tracing/set_eventCopy to clipboard echo "" > /sys/kernel/tracing/traceCopy to clipboard 2. To check the available events, run the following command: cat /sys/kernel/tracing/available_eventsCopy 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/enableCopy to clipboard echo 1 > /sys/kernel/tracing/events/sched/sched_waking/enableCopy to clipboard echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enableCopy to clipboard 4. To check the set events, run the following command: cat /sys/kernel/debug/tracing/set_eventCopy to clipboard 5. To start a trace, run the following command: echo 1 > /sys/kernel/tracing/tracing_onCopy 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_onCopy to clipboard 8. To save the trace, run the following command: cat /sys/kernel/tracing/trace > /opt/ftrace.txtCopy to clipboard 9. To pull ftrace from the target to the host, use 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/logsCopy 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 and install the Qualcomm Profiler tool on the host machine from the [Qualcomm Software Center (QSC)](https://softwarecenter.qualcomm.com/#/). 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 a device: perf --helpCopy 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 bootup 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 systemdCopy 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 - On target: 1. Push the `.ipk` file into the device from the host using SCP or a similar tool. This following is an example command to run on the host machine. Ensure to specify the target IP address in the command: scp systemd-analyze_250.5-r0_armv8-2a.ipk root@10.92.162.185:/var/cache/Copy to clipboard 2. Install the `.ipk` file by running the following command: opkg install /var/cache/systemd-analyze_250.5-r0_armv8-2a.ipkCopy 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: Oct 14, 2024 [Previous Topic Features](https://docs.qualcomm.com/bundle/publicresource/80-70015-10/topics/2-performance-features.md) [Next Topic Configure](https://docs.qualcomm.com/bundle/publicresource/80-70015-10/topics/14-configure.md)