zephyr/samples/nanokernel/benchmark/sys_kernel
Benjamin Walsh 0dcad8331b clarify use of term 'context'
The term 'context' is vague and overloaded. Its usage for 'an execution
context' is now referred as such, in both comments and some APIs' names.
When the execution context can only be a fiber or a task (i.e. not an
ISR), it is referred to as a 'thread', again in comments and everywhere
in the code.

APIs that had their names changed:

  - nano_context_id_t is now nano_thread_id_t
  - context_self_get() is now sys_thread_self_get()
  - context_type_get() is now sys_execution_context_type_get()
  - context_custom_data_set/get() are now
    sys_thread_custom_data_set/get()

The 'context' prefix namespace does not have to be reserved by the
kernel anymore.

The Context Control Structure (CCS) data structure is now the Thread
Control Structure (TCS):

  - struct ccs is now struct tcs
  - tCCS is now tTCS

Change-Id: I7526a76c5b01e7c86333078e2d2e77c9feef5364
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
..
src clarify use of term 'context' 2016-02-05 20:15:27 -05:00
Makefile Renames supported platform configurations 2016-02-05 20:14:39 -05:00
prj_console.conf Remove references to ICC 2016-02-05 20:14:00 -05:00
README.txt Update Title in sample project README.txt files 2016-02-05 20:15:21 -05:00
testcase.ini initial commit for next-gen sanity checks 2016-02-05 20:14:42 -05:00

Title: Nanokernel Object Performance

Description:

The SysKernel test measures the performance of the nanokernel's semaphore,
lifo, fifo, and stack objects.

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

Building and Running Project:

This nanokernel 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:

MODULE: Nanokernel API test
KERNEL VERSION: <varies>

Each test below are repeated 5000 times and the average
time for one iteration is displayed.

TEST CASE: Semaphore #1
TEST COVERAGE: 
	nano_sem_init
	nano_fiber_sem_take_wait
	nano_fiber_sem_give
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Semaphore #2
TEST COVERAGE: 
	nano_sem_init
	nano_fiber_sem_take
	fiber_yield
	nano_fiber_sem_give
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Semaphore #3
TEST COVERAGE: 
	nano_sem_init
	nano_fiber_sem_take_wait
	nano_fiber_sem_give
	nano_task_sem_give
	nano_task_sem_take_wait
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #1
TEST COVERAGE: 
	nano_lifo_init
	nano_fiber_lifo_get_wait
	nano_fiber_lifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #2
TEST COVERAGE: 
	nano_lifo_init
	nano_fiber_lifo_get_wait
	nano_fiber_lifo_get
	nano_fiber_lifo_put
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #3
TEST COVERAGE: 
	nano_lifo_init
	nano_fiber_lifo_get_wait
	nano_fiber_lifo_put
	nano_task_lifo_get_wait
	nano_task_lifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #1
TEST COVERAGE: 
	nano_fifo_init
	nano_fiber_fifo_get_wait
	nano_fiber_fifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #2
TEST COVERAGE: 
	nano_fifo_init
	nano_fiber_fifo_get_wait
	nano_fiber_fifo_get
	nano_fiber_fifo_put
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #3
TEST COVERAGE: 
	nano_fifo_init
	nano_fiber_fifo_get_wait
	nano_fiber_fifo_put
	nano_task_fifo_get_wait
	nano_task_fifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #1
TEST COVERAGE: 
	nano_stack_init
	nano_fiber_stack_pop_wait
	nano_fiber_stack_push
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #2
TEST COVERAGE: 
	nano_stack_init
	nano_fiber_stack_pop_wait
	nano_fiber_stack_pop
	nano_fiber_stack_push
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #3
TEST COVERAGE: 
	nano_stack_init
	nano_fiber_stack_pop_wait
	nano_fiber_stack_push
	nano_task_stack_pop_wait
	nano_task_stack_push
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

PROJECT EXECUTION SUCCESSFUL