zephyr/tests/legacy/benchmark/latency_measure
David B. Kinder ac74d8b652 license: Replace Apache boilerplate with SPDX tag
Replace the existing Apache 2.0 boilerplate header with an SPDX tag
throughout the zephyr code tree. This patch was generated via a
script run over the master branch.

Also updated doc/porting/application.rst that had a dependency on
line numbers in a literal include.

Manually updated subsys/logging/sys_log.c that had a malformed
header in the original file.  Also cleanup several cases that already
had a SPDX tag and we either got a duplicate or missed updating.

Jira: ZEP-1457

Change-Id: I6131a1d4ee0e58f5b938300c2d2fc77d2e69572c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-19 03:50:58 +00:00
..
src license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
README.txt unified/tests: Remove nanokernel test part from latency_measure 2016-11-01 23:39:34 +00:00
prj.conf samples/tests: reduce ram & code size for failing tests on nRF5x boards 2017-01-10 02:23:23 +00:00
prj.mdef unified/tests: Remove nanokernel test part from latency_measure 2016-11-01 23:39:34 +00:00
prj_small_freq_divider.conf kernel: add LEGACY_KERNEL option 2017-01-09 19:42:13 +00:00
testcase.ini samples: tests: tag all legacy test cases and samples 2016-11-30 21:45:22 +00: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