summaryrefslogtreecommitdiff
path: root/schulung_tools/rtex/README.txt
diff options
context:
space:
mode:
authorJohn Ogness <john.ogness@linutronix.de>2017-12-19 10:59:40 +0100
committerJohn Ogness <john.ogness@linutronix.de>2017-12-19 10:59:40 +0100
commit270520b4a2eac8725c8575c3180964289722e191 (patch)
treed9512cd96d0c52e14293c3f8bc19fd168ee14025 /schulung_tools/rtex/README.txt
parent27209bb802048f4803d9cd9a5c2f99d613986446 (diff)
schulung_tools: add various demos and tools
Different tools have been used by various trainers as demos. Put all these into master so they are available to all trainers. ipc_pipe: ipc demo using pipes ipc_shm: ipc demo using shared memory libduma: source and instructions for compiling libduma matrix: demo of good and bad cache access mtrace: patch and infos for using mtrace with ASLR rtex: demo of handling page faults Signed-off-by: John Ogness <john.ogness@linutronix.de>
Diffstat (limited to 'schulung_tools/rtex/README.txt')
-rw-r--r--schulung_tools/rtex/README.txt46
1 files changed, 46 insertions, 0 deletions
diff --git a/schulung_tools/rtex/README.txt b/schulung_tools/rtex/README.txt
new file mode 100644
index 0000000..ce33bcf
--- /dev/null
+++ b/schulung_tools/rtex/README.txt
@@ -0,0 +1,46 @@
+The rtex program demonstrates the importance of using several tricks to
+avoid page faults and memory allocation during critical runtime. It displays
+the amount of time taken and generated page faults when performing various
+tasks. This clearly shows the expense due to page faults.
+
+Running the program without any (or invalid) arguments shows the usage
+help. The program argument specifies which rt tweak should be performed
+and if the runtime tests should be performed.
+
+The tests can be performed on any Linux system (embedded, desktop, server,
+with or without PREEMPT_RT). The results will be the same.
+
+The following is a summary of the most important results:
+
+running the test without any rt tweaks
+ - main setup very fast
+ - first big malloc+access very expensive
+ - second big malloc+access very expensive
+ - first big stack very expensive
+$ sudo ./rtex 0x10
+options: 0x10
+ 5715 ns 0 faults : main setup
+ 17466150 ns 2561 faults : testfunc_malloc (0)
+ 14963662 ns 2560 faults : testfunc_malloc (1)
+ 2517772 ns 0 faults : testfunc_malloc (2)
+ 2577208 ns 0 faults : testfunc_malloc (3)
+ 6113558 ns 1847 faults : testfunc_deepstack (0)
+ 390386 ns 0 faults : testfunc_deepstack (1)
+ 321146 ns 0 faults : testfunc_deepstack (2)
+ 317585 ns 0 faults : testfunc_deepstack (3)
+
+running the test with all rt tweaks
+ - main setup very slow (does it really matter?)
+ - no expensive malloc+access calls
+ - no expensive big stacks
+$ sudo ./rtex 0x1f
+options: 0x1f
+ 31276098 ns 7083 faults : main setup
+ 2657466 ns 0 faults : testfunc_malloc (0)
+ 2519973 ns 0 faults : testfunc_malloc (1)
+ 2543506 ns 0 faults : testfunc_malloc (2)
+ 2750682 ns 0 faults : testfunc_malloc (3)
+ 526604 ns 0 faults : testfunc_deepstack (0)
+ 324543 ns 0 faults : testfunc_deepstack (1)
+ 318580 ns 0 faults : testfunc_deepstack (2)
+ 317265 ns 0 faults : testfunc_deepstack (3)