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/05 05:53] costa.shul move sources to compile section |
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 |
- | * cyclicdeadline | + | * [[https://man.archlinux.org/man/cyclicdeadline.8.en|cyclicdeadline]] – test the deadline scheduler (SCHED_DEADLINE) using a cyclictest style program |
- | * deadline_test | + | * [[https://man.archlinux.org/man/deadline_test.8.en|deadline_test]] – test the deadline scheduler |
- | * [[realtime:documentation:howto:tools:hackbench|hackbench]] | + | * [[realtime:documentation:howto:tools:hackbench|hackbench]] – scheduler benchmark/stress test |
- | * pip_stress | + | * [[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]] |
- | * pi_stress | + | * [[https://man.archlinux.org/man/oslat.8.en|oslat]] – measures delay with [[https://en.wikipedia.org/wiki/Time_Stamp_Counter|RDTSC]] |
- | * pmqtest | + | * [[https://man.archlinux.org/man/pip_stress.8.en|pip_stress]] – priority Inheritance with processes |
- | * ptsematest | + | * [[https://man.archlinux.org/man/pi_stress.8.en|pi_stress]] – a stress test for POSIX Priority Inheritance mutexes |
- | * queuelat | + | * [[https://man.archlinux.org/man/pmqtest.8.en|pmqtest]] – start pairs of threads and measure the latency of interprocess communication with POSIX messages queues |
- | * rt-migrate-test | + | * [[https://man.archlinux.org/man/ptsematest.8.en|ptsematest]] – start two threads and measure the latency of interprocess communication with POSIX mutex. |
- | * signaltest | + | * [[https://man.archlinux.org/man/determine_maximum_mpps.8.en|determine_maximum_mpps]] – determine the maximum mpps the machine can handle |
- | * sigwaittest | + | * [[https://man.archlinux.org/man/queuelat.8.en|queuelat]] – queue latency test program |
- | * ssdd | + | * [[https://man.archlinux.org/man/rt-migrate-test.8.en|rt-migrate-test]] – real-time task migration program |
- | * svsematest | + | * [[https://man.archlinux.org/man/signaltest.8.en|signaltest]] – signal roundtrip test software |
+ | * [[https://man.archlinux.org/man/sigwaittest.8.en|sigwaittest]] – start two threads or fork two processes and measure the latency between sending and receiving a signal | ||
+ | * [[https://man.archlinux.org/man/ssdd.8.en|ssdd]] – have a tracer do a bunch of PTRACE_SINGLESTEPs | ||
+ | * [[https://man.archlinux.org/man/svsematest.8.en|svsematest]] – start two threads or fork two processes and measure the latency of SYSV semaphores | ||
===== 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 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> | ||
- | |||
- | <WRAP center round tip 100%> | ||
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. | ||
- | </WRAP> | ||