User Tools

Site Tools


realtime:documentation:howto:tools: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. For communication, the rt-users mailing list is used.

Programs

The following programs are part of the rt-tests:

  • cyclictestclock_nanosleep latency detection
  • cyclicdeadline – test the deadline scheduler (SCHED_DEADLINE) using a cyclictest style program
  • deadline_test – test the deadline scheduler
  • hackbench – scheduler benchmark/stress test
  • oslat – measures delay with RDTSC
  • pip_stress – priority Inheritance with processes
  • pi_stress – a stress test for POSIX Priority Inheritance mutexes
  • pmqtest – start pairs of threads and measure the latency of interprocess communication with POSIX messages queues
  • ptsematest – start two threads and measure the latency of interprocess communication with POSIX mutex.
  • determine_maximum_mpps – determine the maximum mpps the machine can handle
  • queuelat – queue latency test program
  • rt-migrate-test – real-time task migration program
  • signaltest – signal roundtrip test software
  • sigwaittest – start two threads or fork two processes and measure the latency between sending and receiving a signal
  • ssdd – have a tracer do a bunch of PTRACE_SINGLESTEPs
  • svsematest – start two threads or fork two processes and measure the latency of SYSV semaphores

Compile and install

rt-tests suite can be installed from source: rt-tests/src, the releases are available here. The libnuma and build-essentials are required. The given example is for a Debian based system:

sudo apt-get install build-essential libnuma-dev

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.

Clone source code (check out the latest stable branch, because the master branch is not used for stable release any more), compile it and install it to the local filesystem

git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
cd rt-tests
git checkout stable/v1.0
make all
make install

The last step is optional. All compiled programs can be executed from the build directory directly. If only a single program should be compiled only the single make target for the specific program could be executed (example for cyclictest):

make cyclictest
realtime/documentation/howto/tools/rt-tests.txt · Last modified: 2023/09/25 14:44 by costa.shul