User Tools

Site Tools


realtime:documentation:howto:debugging:cyclictest:details

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
realtime:documentation:howto:debugging:cyclictest:details [2018/07/24 09:40]
ebugden [Execution] Capitalize Cyclictest
realtime:documentation:howto:debugging:cyclictest:details [2018/08/06 09:00]
ebugden Move content to start page
Line 14: Line 14:
   * [[realtime:​documentation:​howto:​debugging:​cyclictest:​debugging|Latency debugging]]   * [[realtime:​documentation:​howto:​debugging:​cyclictest:​debugging|Latency debugging]]
   * [[realtime:​documentation:​howto:​debugging:​cyclictest:​app-performance|Approximating application performance]]   * [[realtime:​documentation:​howto:​debugging:​cyclictest:​app-performance|Approximating application performance]]
 +
 +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 [[https://​www.osadl.org/​Continuous-latency-monitoring.qa-farm-monitoring.0.html|OSADL website]].
 +
 +===== Technical Explanation =====
 +
 +To measure latencies, Cyclictest runs a non real-time master thread (scheduling class SCHED_OTHER) which starts a defined number of measuring threads with a defined real-time priority (scheduling class SCHED_FIFO). The measuring threads are woken up periodically with a defined interval by an expiring timer (cyclic alarm). Subsequently,​ the difference between the programmed and the effective wake-up time is calculated and handed over to the master thread via shared memory. The master thread tracks the latency values and prints the minimum, maximum, and average latencies.
  
 ===== Installation ===== ===== Installation =====
Line 29: Line 35:
 The options above are not relevant for every situation on every system. The Cyclictest [[realtime:​documentation:​howto:​debugging:​cyclictest:​test-design:​start|Test Design]] page goes into more detail about how to choose the right options for measuring a specific latency on a given system. Additionally,​ ''​cyclictest -h''​ provides a quick description of the different program options and more detailed explanations can be found by running ''​man ./​src/​cyclictest/​cyclictest.8''​ from the root of the [[realtime:​documentation:​howto:​tools:​rt-tests|rt-tests]] files. ​ The options above are not relevant for every situation on every system. The Cyclictest [[realtime:​documentation:​howto:​debugging:​cyclictest:​test-design:​start|Test Design]] page goes into more detail about how to choose the right options for measuring a specific latency on a given system. Additionally,​ ''​cyclictest -h''​ provides a quick description of the different program options and more detailed explanations can be found by running ''​man ./​src/​cyclictest/​cyclictest.8''​ from the root of the [[realtime:​documentation:​howto:​tools:​rt-tests|rt-tests]] files. ​
  
-Running Cyclictest without any options is not recommended as it will not necessarily measure anything useful. Without parameters, Cyclictest creates one thread with an intended wake up period of 1 ms. +Running Cyclictest without any options is not recommended as it will not necessarily measure anything useful. Without parameters, Cyclictest creates one thread with an intended wake-up period of 1 ms. 
  
 ===== Results ===== ===== Results =====