zephyr/samples/microkernel/benchmark/latency_measure
Dmitriy Korovkin dd084a21a4 Fix benchmark projects makefiles to use proper configuration for i8253
Fix benchmark projects makefiles to use i8253 specific configuration
for only two variants of generic_pc BSP - pentium4 and minuteia, but
not for the whole BSP.

Change-Id: Iac89e29d2e26ee411d9c2d2fbcd3335c0e71fb06
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:40 -05:00
..
src Reorganization of time calculating macros 2016-02-05 20:13:40 -05:00
Makefile Fix benchmark projects makefiles to use proper configuration for i8253 2016-02-05 20:13:40 -05:00
prj_generic.conf First commit 2015-04-10 16:44:37 -07:00
prj_pc8253.conf First commit 2015-04-10 16:44:37 -07:00
prj.vpf First commit 2015-04-10 16:44:37 -07:00
README.txt First commit 2015-04-10 16:44:37 -07:00

Title: latency measure

Description:

This benchmark measures the latency of selected capabilities of both the VxMicro
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 pristine
    make NODE1.qemu

If executing on Simics, substitute 'simics' for 'qemu' in the command line.

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

Sample Output:

|-----------------------------------------------------------------------------|
|                    VxMicro 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                    |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                    VxMicro 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                                    |
|-----------------------------------------------------------------------------|
===================================================================
VXMICRO PROJECT EXECUTION SUCCESSFUL