[Date Prev][Date Next] [Chronological] [Thread] [Top]

[rtl] forwarded message from Gerald Przybylski, Lawrence Berkeley National Lab, GTP@LBL.GOV




---- Begin included message ----

I forwarded one of the RTLINUX interrupt latency emails to one of our
local experts in real time operating systems of a broad spectrum of 
sophistications and capabilities.  Here is his response...
(maybe one among the RT-LINUX community would like to generate the
comprehensive set listed.  'ya got any nominations?)


Jerry,
Interrupt latency measurements like this just don't mean much for 
systems in real applications.  Most real-time kernels can do about
as well with a fast CPU.  If interrupt latency is your only requirement
you should not use an OS.  You can just code such applications
as standalone programs.  This is done for many simple embedded
applications.

Interrupt latency provides a useful measure of worst-case front-line
interrupt response. But it doesn't say much about how nimble the
RTOS is in performing its primary function-namely, launching tasks
that perform background processing for the ISR.

The table below shows the number of measurement that are required 
to characterize performance of a RTOS for use in complex real-time
applications.

It is over five years old and results are for a 25 MHz CPU.  A
modern CPU will run 5-10 times faster.

------------------------------------------------------------------

A WRS VxWorks 5.1 Benchmark Report hot off the press:

Benchmark numbers based on: mv167-25Mhz, 5.1

                                                        Cache   Cache 
Key Measurements                                        Enabled Disabled

Raw Context Switch Time                                 4 us    14 us
Cyclic Test Time                                        172 us  638 us
Suspend/Switch/Resume/Switch                            23 us   86 us

Kernel Timings

Task Related
taskSpawn                                               124 us  370 us
taskInit                                                58 us   181 us
taskActivate                                            12 us   33 us
taskDelete                                              101 us  303 us
Task Create / Delete                                    249 us  684 us
taskLock
        CASE 1: no lock                                 3 us    4 us
        CASE 2: lock exists                             2 us    5 us
taskUnlock
        CASE 1: no lock                                 2 us    12 us
        CASE 2: lock exists                             5 us    6 us
taskSuspend
        CASE 1: ready task                              11 us   30 us
        CASE 2: pended task                             9 us    19 us
        CASE 3: suspended task                          8 us    19 us
        CASE 4: delayed task                            9 us    19 us
taskResume
        CASE 1: ready task                              6 us    19 us
        CASE 2: pended task                             10 us   19 us
        CASE 3: suspended task                          13 us   30 us
        CASE 4: delayed task                            9 us    18 us

Semaphore Related
semBCreate                                              66 us   152 us
semCCreate                                              46 us   150 us
semMCreate                                              45 us   139 us
semDelete
        Binary                                          49 us   157 us
        Counting                                        49 us   163 us
        Mutual Exclusion                                48 us   157 us
semGive
        CASE 1: tasks in queue  
        Binary                                          18 us   44 us
        Counting                                        20 us   46 us
        Mutual Exclusion                                25 us   59 us
        CASE 2: no tasks in queue       
        Binary                                          4 us    8 us
        Counting                                        5 us    11 us
        Mutual Exclusion                                6 us    15 us

semTake
CASE 1: semaphore available     
        Binary                                          4 us    9 us
        Counting                                        5 us    11 us
        Mutual Exclusion                                5 us    13 us
        CASE 2: semaphore unavailable   
        Binary                                          10 us   25 us
        Counting                                        11 us   27 us
        Mutual Exclusion                                4 us    12 us
Semaphore Give / Take
        Binary                                          7 us    15 us
        Counting                                        9 us    21 us
        Mutual Exclusion                                10 us   26 us
semFlush
        Binary                                          11 us   20 us
        Counting                                        11 us   20 us
        Mutual Exclusion                                10 us   16 us

Miscellaneous Operating System Timings

Message Queue Related
msgQCreate                                              93 us   280 us
msgQDelete                                              71 us   229 us
msgQSend
        CASE 1: task pending                            39 us   102 us
        CASE 2: no tasks pending                        23 us   64 us
        CASE 3: queue full                              14 us   45 us
msgQReceive
        CASE 1: message available                       20 us   62 us
        CASE 2: message unavailable                     15 us   41 us

Memory Related
malloc                                                  28 us   81 us
free                                                    32 us   104 us

Watchdog Related
wdCreate                                                42 us   106 us
wdDelete
        CASE 1: timer started                           48 us   160 us
        CASE 2: timer not started                       44 us   150 us
wdStart
        CASE 1: timer in queue                          20 us   70 us
        CASE 2: no timer in queue                       18 us   55 us
wdCancel                                                11 us   34 us

Floating-Point  
robot application                                       18 sec  51 sec

--- [rtl] ---
For more information on Real-Time Linux see:
http://rtlinux.cs.nmt.edu/

---- End included message ----