zephyr/tests/benchmarks/sched_userspace
Henri Xavier 2d96beb9d8 tests/benchmarks: Add userspace scheduling benchmark
Zephyr already has a scheduling benchmark in tests/benchmarks/sched,
but it only uses kernel threads.
We add an userspace version of it, to exercise memory domains.

Signed-off-by: Henri Xavier <datacomos@huawei.com>
2022-12-13 17:21:11 +09:00
..
src
CMakeLists.txt
README.rst
prj.conf
testcase.yaml

README.rst

Userspace Scheduler Microbenchmark
##################################

This is a scheduler microbenchmark, designed to measure minimum
latencies (not scaling performance) of specific low level scheduling
primitives independent of overhead from application or API
abstractions. Contrary to the non-userspace version, it runs threads
in userspace with different memory domains.

 It works very simply: a main thread creates n "yielders"
threads at a higher priority, from this initial state:

1. The main thread starts all yielders
2. Each yielder yields k times
5. The main thread joins all yielders

This is run for multiples values of n, reporting each time the
average time taken for a yield context switch.