zephyr/samples/microkernel/benchmark/latency_measure
Dmitriy Korovkin f1420515a7 irq: Add flags to IRQ_CONNECT_STATIC() macro and irq_connect() function
Flags allow passing IRQ triggering option for x86 architecture.
Each platform defines flags for a particular device and then
device driver uses them when registers the interrupt handler.

The change in API means that device drivers and sample
applications need to use the new API.

IRQ triggering configuration is now handled by device drivers
by using flags passed to interrupt registering API:
IRQ_CONNECT_STATIC() or irq_connect()

Change-Id: Ibc4312ea2b4032a2efc5b913c6389f780a2a11d1
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:24:44 -05:00
..
src irq: Add flags to IRQ_CONNECT_STATIC() macro and irq_connect() function 2016-02-05 20:24:44 -05:00
Makefile Clean up microkernel latency_measure configuration files 2016-02-05 20:15:19 -05:00
README.txt latency_measure: fix lingering instance of NODE1 2016-02-05 20:15:36 -05:00
prj.conf samples: remove ENHANCED_SECURITY from project configs 2016-02-05 20:24:20 -05:00
prj.mdef
testcase.ini initial commit for next-gen sanity checks 2016-02-05 20:14:42 -05:00

README.txt

Title: Latency Measurement

Description:

This benchmark measures the latency of selected capabilities of both the
nanokernel and microkernel.

IMPORTANT: The sample output below was generated using a simulation
environment, and may not reflect the results that will be generated using other
environments (simulated or otherwise).

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

Building and Running Project:

This microkernel project outputs to the console.  It can be built and executed
on QEMU as follows:

    make qemu

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

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

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

Sample Output:

|-----------------------------------------------------------------------------|
|                        Nanokernel Latency Benchmark                         |
|-----------------------------------------------------------------------------|
|  tcs = timer clock cycles: 1 tcs is N nsec                                  |
|-----------------------------------------------------------------------------|
| 1- Measure time to switch from fiber to ISR execution                       |
| switching time is NNNN tcs = NNNNN nsec                                     |
|-----------------------------------------------------------------------------|
| 2- Measure time to switch from ISR back to interrupted fiber                |
| switching time is NNNN tcs = NNNNN nsec                                     |
|-----------------------------------------------------------------------------|
| 3- Measure time from ISR to executing a different fiber (rescheduled)       |
| switching time is NNNN tcs = NNNNN nsec                                     |
|-----------------------------------------------------------------------------|
| 4- Measure average context switch time between fibers                       |
| Average context switch time is NNNN tcs = NNNNN nsec                        |
|-----------------------------------------------------------------------------|
| 5- Measure average time to lock then unlock interrupts                      |
| 5.1- When each lock and unlock is executed as a function call               |
| Average time for lock then unlock is NNNN tcs = NNNN nsec                   |
|                                                                             |
| 5.2- When each lock and unlock is executed as inline function call          |
| Average time for lock then unlock is NNN tcs = NNNN nsec                    |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                        Microkernel Latency Benchmark                        |
|-----------------------------------------------------------------------------|
|  tcs = timer clock cycles: 1 tcs is N nsec                                  |
|-----------------------------------------------------------------------------|
| 1- Measure time to switch from ISR to back to interrupted task              |
| switching time is NNNN tcs = NNNNN nsec                                     |
|-----------------------------------------------------------------------------|
| 2- Measure time from ISR to executing a different task (rescheduled)        |
| switch time is NNNNN tcs = NNNNNN nsec                                      |
|-----------------------------------------------------------------------------|
| 3- Measure average time to signal a sema then test that sema                |
| Average semaphore signal time NNNNN tcs = NNNNNN nsec                       |
| Average semaphore test time NNNNN tcs = NNNNNN nsec                         |
|-----------------------------------------------------------------------------|
| 4- Measure average time to lock a mutex then unlock that mutex              |
| Average time to lock the mutex NNNNN tcs = NNNNNN nsec                      |
| Average time to unlock the mutex NNNNN tcs = NNNNNN nsec                    |
|-----------------------------------------------------------------------------|
| 5- Measure average context switch time between tasks using (task_yield)     |
| Average task context switch using yield NNNNN tcs = NNNNNN nsec             |
|-----------------------------------------------------------------------------|
|                                    E N D                                    |
|-----------------------------------------------------------------------------|
===================================================================
PROJECT EXECUTION SUCCESSFUL