Hi,

I have two applications:

- Server:

        an rt_task periodically (period = 1 sec) generating an interruption on 
the parallel port.

- Client:

        an rt_task waiting for interrupts on parallel port.
        

The goal of these applications is to see the precision of the interrupt 
catching.


Client traces this way (description follows):

     2 -  100000, 1207069273545421305 *** T:   -4615 [  -4615..      0] (  0)
     3 -  100000, 1207069274545430160 *** T:    4240 [  -4615..   4240] (  0)   
  
     4 -  100000, 1207069275545425659 *** T:    -261 [  -4615..   4240] (  0)   
  
     5 -  100000, 1207069276545423510 *** T:   -2410 [  -4615..   4240] (  0)   
  
...
   125 -  100000, 1207069396545415808 *** T:  -10112 [ -15304..  72824] (  0)
   126 -  100000, 1207069397545454679 *** T:   28759 [ -15304..  72824] (  0)
   127 -  100000, 1207069398545672048 *** T:  246128 [ -15304.. 246128] (  1)
   128 -  100000, 1207069399545415469 *** T:  -10451 [ -15304.. 246128] (  1)
   129 -  100000, 1207069400545436692 *** T:   10772 [ -15304.. 246128] (  1)
...
   336 -  100000, 1207069607545421900 *** T:   -4020 [ -19102.. 246128] (  1)
   337 -  100000, 1207069608545425707 *** T:    -213 [ -19102.. 246128] (  1)
   338 -  100000, 1207069609545534088 *** T:  108168 [ -19102.. 246128] (  2)
   339 -  100000, 1207069610545413970 *** T:  -11950 [ -19102.. 246128] (  2)
   340 -  100000, 1207069611545416247 *** T:   -9673 [ -19102.. 246128] (  2)
...
  1027 -  100000, 1207070298545426101 *** T:     181 [ -23604.. 246128] (  2)
  1028 -  100000, 1207070299545425759 *** T:    -161 [ -23604.. 246128] (  2)
  1029 -  100000, 1207070300545653073 *** T:  227153 [ -23604.. 246128] (  3)
  1030 -  100000, 1207070301545405283 *** T:  -20637 [ -23604.. 246128] (  3)
  1031 -  100000, 1207070302545413832 *** T:  -12088 [ -23604.. 246128] (  3)
...
  2107 -  100000, 1207071378545416769 *** T:   -9151 [ -23604.. 246128] (  3)
  2108 -  100000, 1207071379545420930 *** T:   -4990 [ -23604.. 246128] (  3)
  2109 -  100000, 1207071380545418432 *** T:   -7488 [ -23604.. 246128] (  3)
  2110 -  100000, 1207071381545785841 *** T:  359921 [ -23604.. 359921] (  4)
  2111 -  100000, 1207071382545416399 *** T:   -9521 [ -23604.. 359921] (  4)
  2112 -  100000, 1207071383545417713 *** T:   -8207 [ -23604.. 359921] (  4)
...


The columns description is:

- first:        the number of the received interrupt.
- second:       the expected maximum time for receiving interrupt (nsec).
                        (more or less 100000 nsec distant from the theoretical 
period).
- third:        the timestamp - rt_timer_read().
- *** T:        no meaning for this report.
- fifth:        time (nanosec) from timestamp and the theoretical period.
- sixth:        interval [min..max] of the values of the fifth column.
- seventh:times that fifth column exceeded 100000 from the theoretical period.
                        (in this case, interrupts 127, 338, 1029 and 2110)
                        

The time (nanosec) from timestamp and the theoretical period (fifth column)
are generally lower than 100 usec except interrupts 127, 338, 1029 and 2110
that are far from 100 usec.

I expected something like [a..b] where b < 100 usec.

Three consoles run with "dd if=/dev/zero of=/dev/null".

What can cause these results?


Configuration:

        - Intel pentium 4 CPU 3.00 GHz
        - kernel 2.6.24
        - adeos-ipipe-2.6.24-x86-2.0-04.patch
        - Xenomai 2.4.2
        

Thanks in advance.

Hubert


_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to