Some precision and 2 small examples about a preempt test:
On 11/03/2013 08:47, Gilles Chanteperdrix wrote:
On 03/11/2013 10:15 AM, Paul wrote:
Hello,
... ... ...
I check the priority masking with a preempt test which is derived
from the latency test: The real time task loop for 1/4 of its period
reading and rereading the clock, so i get the min, avg and worst case
that the task can be preempted while it is running.
If you are interested in this test, i can post it when I have
modified the output messages.
I do not really understand. Why would it be more preempted in the first
1/4 of its period?
No reason sure but -
It can be preempted only while it is running, so between the time it
is restarted after sleeping and before it go to sleep again.
Let it running 1/4 of the period is enough to catch lots of events if
there is lots of irqs but not too much so linux, dohell or even xenomai
tasks can run just a bit slower.
Here are some result i get (yes with the priority interrupt masking, and
i am pretty sure it work - but the watchdog is on).
There is a dohell at the same time in the whole experiment and i start
X11, stop it , restart it ...
root@debian:/usr/xenomai/bin#
/usr/src/build_xenomai/src/testsuite/preempt/preempt -p 111
== Sampling period: 111 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT| 00:00:01 (periodic user-mode task, 111 us period, priority 99)
RTH|----pre min|----pre avg|----pre max|-overrun|---msw|---pre
best|--pre worst
RTD| 0.333| 0.374| 3.333| 0| 0|
0.333| 3.333
RTD| 0.333| 0.374| 15.666| 0| 0| 0.333|
15.666
---|-----------|-----------|-----------|--------|------|-------------------------
RTH|----pre min|----pre avg|----pre max|-overrun|---msw|---pre
best|--pre worst
RTD| 0.333| 0.374| 3.708| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.874| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.541| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.916| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.541| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.583| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.499| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.833| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.791| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.666| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.833| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.749| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.749| 0| 0| 0.333|
23.333
RTD| 0.333| 0.374| 3.624| 0| 0| 0.333|
23.333
^C---|-----------|-----------|-----------|--------|------|-------------------------
RTS| 0.333| 0.374| 23.333| 0| 0|
00:13:33/00:13:33
A second experiment, just setting the period to 100 (and the period for
the watchdog is a multiple so 3/4 it never preempt the task:
/usr/src/build_xenomai/src/testsuite/preempt/preempt -p 100 -h
== Sampling period: 100 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT| 00:00:01 (periodic user-mode task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat
best|--lat worst
RTD| 0.333| 0.374| 0.749| 0| 0|
0.333| 0.749
RTD| 0.333| 0.374| 2.749| 0| 0|
0.333| 2.749
RTD| 0.333| 0.374| 0.708| 0| 0|
0.333| 2.749
RTD| 0.333| 0.374| 0.833| 0| 0|
0.333| 2.749
RTD| 0.333| 0.374| 0.708| 0| 0|
0.333| 2.749
RTD| 0.333| 0.374| 0.833| 0| 0|
0.333| 2.749
... ... ...
RTD| 0.333| 0.374| 3.749| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 4.166| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.541| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.791| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.666| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 4.416| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.791| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.874| 0| 0|
0.333| 4.541
RTD| 0.333| 0.374| 3.749| 0| 0|
0.333| 4.541
RTT| 00:04:13 (periodic user-mode task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat
best|--lat worst
RTD| 0.333| 0.374| 4.124| 0| 0|
0.333| 4.541
^C---|--param|----range-|--samples
HSD| min| 0 - 1 | 253
---|--param|----range-|--samples
HSD| avg| 0 - 1 | 2530149
---|--param|----range-|--samples
HSD| max| 0 - 1 | 3
HSD| max| 1 - 2 | 1
HSD| max| 2 - 3 | 3
HSD| max| 3 - 4 | 186
HSD| max| 4 - 5 | 60
HSH|--param|--samples-|--average--|---stddev--
HSS| min| 253| 0.000| 0.000
HSS| avg| 2530149| 0.000| 0.000
HSS| max| 253| 3.182| 0.583
---|-----------|-----------|-----------|--------|------|-------------------------
RTS| 0.333| 0.374| 4.541| 0| 0|
00:04:13/00:04:13
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai