diff options
Diffstat (limited to 'schulung_tools/pgflt/README.txt')
| -rw-r--r-- | schulung_tools/pgflt/README.txt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/schulung_tools/pgflt/README.txt b/schulung_tools/pgflt/README.txt new file mode 100644 index 0000000..6bc49ba --- /dev/null +++ b/schulung_tools/pgflt/README.txt @@ -0,0 +1,46 @@ +The pgflt 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 ./pgflt 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 ./pgflt 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) |
