Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

Real Time in Embedded Linux System

2,020 bytes added, 10:17, 1 July 2015
no edit summary
 
== Real-time - Timers and scheduling latency ==
Based on free training materials from Free Electrons covering real-time (http://free-electrons.com/docs/realtime/)
Learn how to handle real-time processes and practice with the different real-time modes. Measure The purpose of this article is measure scheduling latencyin different conditions== Setup ==
== Using high-resolution timers ==
Have a look at the [http://downloads.isee.biz/pub/files/examples/rttest.c rttest.c ] source file
Now compile this program:
Execute the program on the board
=== Testing the non-voluntary preemption kernel ===
=== Testing the voluntary preemption kernel ===Test done with linux-2.6.35.y branch from git://git.igep.es/pub/scm/linux-omap-2.6.git
Recompile your kernel with CONFIG_PREEMPT_VOLUNTARY enabled and test the program with nothing special
=== Testing the preemptible kernel ===
 
Test done with linux-2.6.35.y branch from git://git.igep.es/pub/scm/linux-omap-2.6.git
Recompile your kernel with CONFIG_PREEMPT enabled and test the program with nothing special
=== Testing the Xenomai scheduling latency ===
 
Test done with linux-2.6.35.y-rt branch from http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=shortlog;h=refs/heads/linux-2.6.35.y-rt
 
Recompile your kernel with CONFIG_XENOMAI enabled and test the program with nothing special
 
# ./rttest
Clock resolution (ns): 1
Measurement, please wait 1 minute...
Samples: 327833
Min latency: 73 us
Max latency: 9702 us
Average latency: 80 us
 
Test your program and at the same time, add some workload
to the board, by running
 
# stress --cpu 1 --io 2 --vm 2 --vm-bytes 128M --timeout 120s &
# ./rttest
Clock resolution (ns): 1
Measurement, please wait 1 minute...
Samples: 320301
Min latency: 63 us
Max latency: 10006 us
Average latency: 85 us
 
Test your program again with the workload, but by running the program in the SCHED_FIFO scheduling class at priority 99
 
# stress --cpu 1 --io 2 --vm 2 --vm-bytes 128M --timeout 120s &
# chrt -f -r 99 ./rttest
Clock resolution (ns): 1
Measurement, please wait 1 minute...
Samples: 453705
Min latency: 18 us
Max latency: 395 us
Average latency: 30 us
 
== Links ==
 
* Tools to ensure a system's realtime capabilities
** https://www.osadl.org/Single-View.111+M52212cb1379.0.html
** https://www.osadl.org/Realtime-Preempt-Kernel.kernel-rt.0.html
** https://www.osadl.org/Driver-to-Program-Signal-Tester.driver-to-program-signal-tester.0.html
** https://www.osadl.org/Latency-generator.latency-generator.0.html
** https://www.osadl.org/Visualize-the-temporal-relationship-of-L.taks-visualizer.0.html
** http://elinux.org/Realtime_Testing_Best_Practices
* Other resources
** http://www.osadl.org/Realtime-Linux.projects-realtime-linux.0.html
** https://rt.wiki.kernel.org/index.php/Main_Page
** https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdf
** http://embedded.communities.intel.com/servlet/JiveServlet/download/4435-1248/xeno_intel.pdf
$ wget http[[Category://download.gna.org/xenomai/stable/xenomai-2.6.0.tar.bz2Software distributions]][[Category:How to forge]][[Category:Software applications]]
0
edits