This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
realtime:documentation:howto:tools:rt-tests [2023/08/13 13:00] costa.shul RDTSC link |
realtime:documentation:howto:tools:rt-tests [2025/01/01 10:03] (current) costa.shul trace_hwlat.c |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== RT-Tests ====== | ====== RT-Tests ====== | ||
- | rt-tests is a test suite, that contains programs to test various real time Linux features. It is maintained by Clark Williams and John Kacur. | + | rt-tests is a [[realtime:documentation:howto:tools:start|test suite]], that contains programs to test various real time Linux features. It is maintained by Clark Williams and John Kacur. |
For communication, the [[realtime:communication:mailinglists|rt-users mailing list]] is used. | For communication, the [[realtime:communication:mailinglists|rt-users mailing list]] is used. | ||
Line 9: | Line 9: | ||
The following programs are part of the rt-tests: | The following programs are part of the rt-tests: | ||
- | * [[realtime:documentation:howto:tools:cyclictest:start|cyclictest]] – latency detection | + | * [[realtime:documentation:howto:tools:cyclictest:start|cyclictest]] – [[https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html|clock_nanosleep]] latency detection |
* [[https://man.archlinux.org/man/cyclicdeadline.8.en|cyclicdeadline]] – test the deadline scheduler (SCHED_DEADLINE) using a cyclictest style program | * [[https://man.archlinux.org/man/cyclicdeadline.8.en|cyclicdeadline]] – test the deadline scheduler (SCHED_DEADLINE) using a cyclictest style program | ||
* [[https://man.archlinux.org/man/deadline_test.8.en|deadline_test]] – test the deadline scheduler | * [[https://man.archlinux.org/man/deadline_test.8.en|deadline_test]] – test the deadline scheduler | ||
* [[realtime:documentation:howto:tools:hackbench|hackbench]] – scheduler benchmark/stress test | * [[realtime:documentation:howto:tools:hackbench|hackbench]] – scheduler benchmark/stress test | ||
- | * [[https://man.archlinux.org/man/hwlatdetect.8.en|hwlatdetect]] – CLI for [[https://docs.kernel.org/trace/hwlat_detector.html|/sys/kernel/tracing/hwlat_detector]] | + | * [[https://man.archlinux.org/man/hwlatdetect.8.en|hwlatdetect]] – CLI for [[https://docs.kernel.org/trace/hwlat_detector.html|/sys/kernel/tracing/hwlat_detector]] implemented in [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/kernel/trace/trace_hwlat.c|kernel/trace/trace_hwlat.c]] |
* [[https://man.archlinux.org/man/oslat.8.en|oslat]] – measures delay with [[https://en.wikipedia.org/wiki/Time_Stamp_Counter|RDTSC]] | * [[https://man.archlinux.org/man/oslat.8.en|oslat]] – measures delay with [[https://en.wikipedia.org/wiki/Time_Stamp_Counter|RDTSC]] | ||
* [[https://man.archlinux.org/man/pip_stress.8.en|pip_stress]] – priority Inheritance with processes | * [[https://man.archlinux.org/man/pip_stress.8.en|pip_stress]] – priority Inheritance with processes | ||
Line 30: | Line 30: | ||
===== Compile and install ===== | ===== Compile and install ===== | ||
- | rt-tests suite can be installed from source. | + | rt-tests suite can be installed from source: [[https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src|rt-tests/src]], |
- | The source code is hosted on [[https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/|kernel.org]], | + | |
the releases are available [[https://www.kernel.org/pub/linux/utils/rt-tests|here]]. | the releases are available [[https://www.kernel.org/pub/linux/utils/rt-tests|here]]. | ||
- | The [[https://man7.org/linux/man-pages/man3/numa.3.html|libnuma]] and build-essentials are required. The given example is for a Debian based system: | + | The [[https://man7.org/linux/man-pages/man3/numa.3.html|libnuma]] and build-essentials are required. |
- | + | On Debian install **libnuma-dev**, on Fedora install **numactl-devel**, on openSUSE install **libnuma-devel**. | |
- | <code bash> | + | |
- | sudo apt-get install build-essential libnuma-dev | + | |
- | </code> | + | |
libnuma-dev is required for build. Usually, it's safe to have libnuma-dev installed also in non-NUMA systems, but if you don't want to install the NUMA libs (e.g. in embedded environment) then compile with make NUMA=0. | libnuma-dev is required for build. Usually, it's safe to have libnuma-dev installed also in non-NUMA systems, but if you don't want to install the NUMA libs (e.g. in embedded environment) then compile with make NUMA=0. |