README.txt
1Title: Microkernel Object Performance
2
3Description:
4
5AppKernel is used to measure the performance of microkernel events, mutexes,
6semaphores, FIFOs, mailboxes, pipes, memory maps, and memory pools.
7
8--------------------------------------------------------------------------------
9
10Building and Running Project:
11
12This project outputs to the console. It can be built and executed
13on QEMU as follows:
14
15 make run
16
17--------------------------------------------------------------------------------
18
19Troubleshooting:
20
21Problems caused by out-dated project information can be addressed by
22issuing one of the following commands then rebuilding the project:
23
24 make clean # discard results of previous builds
25 # but keep existing configuration info
26or
27 make pristine # discard results of previous builds
28 # and restore pre-defined configuration info
29
30--------------------------------------------------------------------------------
31
32Sample Output:
33
34|-----------------------------------------------------------------------------|
35| S I M P L E S E R V I C E M E A S U R E M E N T S | nsec |
36|-----------------------------------------------------------------------------|
37|-----------------------------------------------------------------------------|
38| enqueue 1 byte msg in FIFO | NNNNNN|
39| dequeue 1 byte msg in FIFO | NNNNNN|
40| enqueue 4 bytes msg in FIFO | NNNNNN|
41| dequeue 4 bytes msg in FIFO | NNNNNN|
42| enqueue 1 byte msg in FIFO to a waiting higher priority task | NNNNNN|
43| enqueue 4 bytes in FIFO to a waiting higher priority task | NNNNNN|
44|-----------------------------------------------------------------------------|
45| signal semaphore | NNNNNN|
46| signal to waiting high pri task | NNNNNN|
47| signal to waiting high pri task, with timeout | NNNNNN|
48| signal to waitm (2) | NNNNNN|
49| signal to waitm (2), with timeout | NNNNNN|
50| signal to waitm (3) | NNNNNN|
51| signal to waitm (3), with timeout | NNNNNNN|
52| signal to waitm (4) | NNNNNNN|
53| signal to waitm (4), with timeout | NNNNNNN|
54|-----------------------------------------------------------------------------|
55| average lock and unlock mutex | NNNNNN|
56|-----------------------------------------------------------------------------|
57| average alloc and dealloc memory page | NNNNNN|
58|-----------------------------------------------------------------------------|
59| average alloc and dealloc memory pool block | NNNNNN|
60|-----------------------------------------------------------------------------|
61| Signal enabled event | NNNNNN|
62| Signal event & Test event | NNNNNN|
63| Signal event & TestW event | NNNNNN|
64| Signal event with installed handler |
65| Handler responds OK |
66|-----------------------------------------------------------------------------|
67| M A I L B O X M E A S U R E M E N T S |
68|-----------------------------------------------------------------------------|
69| Send mailbox message to waiting high priority task and wait |
70| repeat for 128 times and take the average |
71|-----------------------------------------------------------------------------|
72| size(B) | time/packet (nsec) | KB/sec |
73|-----------------------------------------------------------------------------|
74| N| NNNNNN| N|
75| N| NNNNNN| NN|
76| NN| NNNNNN| NN|
77| NN| NNNNNN| NN|
78| NN| NNNNNN| NN|
79| NNN| NNNNNN| NNN|
80| NNN| NNNNNN| NNN|
81| NNN| NNNNNN| NNN|
82| NNNN| NNNNNNN| NNN|
83| NNNN| NNNNNNN| NNNN|
84| NNNN| NNNNNNN| NNNN|
85| NNNN| NNNNNNN| NNNN|
86|-----------------------------------------------------------------------------|
87| message overhead: NNNNNN nsec/packet |
88| raw transfer rate: NNNN KB/sec (without overhead) |
89|-----------------------------------------------------------------------------|
90| P I P E M E A S U R E M E N T S |
91|-----------------------------------------------------------------------------|
92| Send data into a pipe towards a receiving high priority task and wait |
93|-----------------------------------------------------------------------------|
94| matching sizes (_ALL_N) |
95|-----------------------------------------------------------------------------|
96| size(B) | time/packet (nsec) | KB/sec |
97|-----------------------------------------------------------------------------|
98| put | get | no buf | small buf| big buf | no buf | small buf| big buf |
99|-----------------------------------------------------------------------------|
100| N| N| NNNNNNN| NNNNNNN| NNNNNNN| N| N| N|
101| NN| NN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
102| NN| NN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
103| NN| NN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
104| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
105| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NNN| NNN| NNN|
106| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NNN| NNN| NNN|
107| NNNN| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| NNN| NNN| NNN|
108| NNNN| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| NNN| NNN| NNN|
109| NNNN| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| NNNN| NNNN| NNNN|
110|-----------------------------------------------------------------------------|
111| non-matching sizes (1_TO_N) to higher priority |
112|-----------------------------------------------------------------------------|
113| size(B) | time/packet (nsec) | KB/sec |
114|-----------------------------------------------------------------------------|
115| put | get | no buf | small buf| big buf | no buf | small buf| big buf |
116|-----------------------------------------------------------------------------|
117| N| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| N| N| N|
118| NN| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
119| NN| NNNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
120| NN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
121| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
122| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
123| NNN| NN| NNNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NN|
124| NNNN| NN| NNNNNNNN| NNNNNNNN| NNNNNNNN| NN| NN| NN|
125| NNNN| NN| NNNNNNNNN| NNNNNNNNN| NNNNNNNNN| NN| NN| NN|
126| NNNN| N| NNNNNNNNN| NNNNNNNNN| NNNNNNNNN| N| N| N|
127|-----------------------------------------------------------------------------|
128| non-matching sizes (1_TO_N) to lower priority |
129|-----------------------------------------------------------------------------|
130| size(B) | time/packet (nsec) | KB/sec |
131|-----------------------------------------------------------------------------|
132| put | get | no buf | small buf| big buf | no buf | small buf| big buf |
133|-----------------------------------------------------------------------------|
134| N| NNNN| NNNNNNN| NNNNNN| NNNNNN| N| N| N|
135| NN| NNNN| NNNNNNN| NNNNNNN| NNNNNN| NN| NN| NN|
136| NN| NNNN| NNNNNNN| NNNNNNN| NNNNNN| NN| NN| NN|
137| NN| NNN| NNNNNNN| NNNNNNN| NNNNNN| NN| NN| NN|
138| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NNN|
139| NNN| NNN| NNNNNNN| NNNNNNN| NNNNNNN| NN| NN| NNN|
140| NNN| NN| NNNNNNNN| NNNNNNNN| NNNNNNN| NN| NN| NNN|
141| NNNN| NN| NNNNNNNN| NNNNNNNN| NNNNNNN| NN| NN| NNN|
142| NNNN| NN| NNNNNNNNN| NNNNNNNNN| NNNNNNN| NN| N| NNN|
143| NNNN| N| NNNNNNNNN|NNNNNNNNNN| NNNNNNN| N| N| NNNN|
144|-----------------------------------------------------------------------------|
145| END OF TESTS |
146|-----------------------------------------------------------------------------|
147PROJECT EXECUTION SUCCESSFUL
148