2015-08-15 02:13:25 +08:00
|
|
|
Title: Offload to the Kernel Service Fiber
|
2015-04-11 07:44:37 +08:00
|
|
|
|
|
|
|
Description:
|
|
|
|
|
|
|
|
This test verifies that the microkernel task_offload_to_fiber() API operates as
|
|
|
|
expected.
|
|
|
|
|
|
|
|
This test has two tasks that increment a counter. The routine that
|
2015-08-13 03:37:58 +08:00
|
|
|
increments the counter is invoked from _k_server() due to the two tasks
|
2015-04-11 07:44:37 +08:00
|
|
|
calling task_offload_to_fiber(). The final result of the counter is expected
|
|
|
|
to be the the number of times task_offload_to_fiber() was called to increment
|
2015-08-13 03:37:58 +08:00
|
|
|
the counter as the incrementing was done in the context of _k_server().
|
2015-04-11 07:44:37 +08:00
|
|
|
|
|
|
|
This is done with time slicing both disabled and enabled to ensure that the
|
|
|
|
result always matches the number of times task_offload_to_fiber() is called.
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Building and Running Project:
|
|
|
|
|
|
|
|
This microkernel project outputs to the console. It can be built and executed
|
|
|
|
on QEMU as follows:
|
|
|
|
|
2015-06-06 09:48:58 +08:00
|
|
|
make qemu
|
2015-04-11 07:44:37 +08:00
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
2015-06-01 22:30:09 +08:00
|
|
|
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
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
2015-04-11 07:44:37 +08:00
|
|
|
Sample Output:
|
|
|
|
|
|
|
|
tc_start() - Test Microkernel Critical Section API
|
|
|
|
|
|
|
|
Obtained expected <criticalVar> value of 10209055
|
|
|
|
Enabling time slicing ...
|
|
|
|
Obtained expected <criticalVar> value of 15123296
|
|
|
|
===================================================================
|
|
|
|
PASS - RegressionTask.
|
|
|
|
===================================================================
|
2015-06-05 20:24:47 +08:00
|
|
|
PROJECT EXECUTION SUCCESSFUL
|