This is an old revision of the document!
Cyclictest accurately and repeatedly measures the difference between a thread's intended wake-up time and the time at which it actually wakes up in order to provide statistics about the system's latencies. It can measure latencies in real-time systems caused by the hardware, the firmware, and the operating system. Some of the most common uses for Cyclictest are described below.
The original test was written by Thomas Gleixner (tglx), but several people have subsequently contributed modifications. Cyclictest is currently maintained by Clark Williams and John Kacur and is part of the test suite rt-tests.
Cyclictest is most commonly used as a standardized test for evaluating the relative performance of real-time systems.
OSADL (Open Source Automation Development Lab) uses Cyclictest to continuously monitor the latencies of several systems. More details about the project and about the specific Cyclictest options they use can be found on the OSADL website.
Cyclictest can be used to help identify certain system latencies and what is causing them. Its many program options allow the test to be configured for measuring very specific latencies.
Once a latency has been identified, Cyclictest can be used to produce relevant traces that can help determine the source of the latency. These traces can be taken using different Ftrace tracers in order to control the level of detail in the traces and the tracing overhead.
Cyclictest is not intended for measuring the latencies of applications running on real-time systems. However, in some cases it can be used to get a rough estimate of an RT application's response time or userspace RT task's response time.