| RTLA: Real-Time Linux Analysis tools | |
| The rtla meta-tool includes a set of commands that aims to analyze | |
| the real-time properties of Linux. Instead of testing Linux as a black box, | |
| rtla leverages kernel tracing capabilities to provide precise information | |
| about the properties and root causes of unexpected results. | |
| Installing RTLA | |
| RTLA depends on the following libraries and tools: | |
| - libtracefs | |
| - libtraceevent | |
| - libcpupower (optional, for --deepest-idle-state) | |
| - libcheck (optional, for unit tests) | |
| For BPF sample collection support, the following extra dependencies are | |
| required: | |
| - libbpf 1.0.0 or later | |
| - bpftool with skeleton support | |
| - clang with BPF CO-RE support | |
| It also depends on python3-docutils to compile man pages. | |
| For development, we suggest the following steps for compiling rtla: | |
| $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git | |
| $ cd libtraceevent/ | |
| $ make | |
| $ sudo make install | |
| $ cd .. | |
| $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git | |
| $ cd libtracefs/ | |
| $ make | |
| $ sudo make install | |
| $ cd .. | |
| $ cd $libcpupower_src | |
| $ make | |
| $ sudo make install | |
| $ cd $rtla_src | |
| $ make | |
| $ sudo make install | |
| Running tests | |
| RTLA has two test suites: a runtime test suite and a unit test suite. | |
| The runtime test suite is available as "make check" (root required) and has | |
| the following dependencies, in addition to RTLA build dependencies: | |
| - Perl | |
| - Test::Harness (libtest-harness-perl on Debian/Ubuntu, perl-Test-Harness on Fedora/RHEL) | |
| - bash | |
| - coreutils | |
| - ldd | |
| - util-linux | |
| - procps(-ng) | |
| - bpftool (if rtla is built against libbpf) | |
| as well as the following required system configuration: | |
| - CONFIG_OSNOISE_TRACER=y | |
| - CONFIG_TIMERLAT_TRACER=y | |
| - tracefs mounted and readable at /sys/kernel/tracing | |
| The unit test suite is available as "make unit-tests" and has the following | |
| dependencies: | |
| - libcheck | |
| Unlike the runtime test suite, root is not required to run unit tests, nor is | |
| a tracefs/osnoise/timerlat-capable kernel required. | |
| For further information, please refer to the rtla man page. |