…
|
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
README.rst | ||
prj.conf | ||
testcase.yaml |
README.rst
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. It works very simply: a main thread creates a "partner" thread at a higher priority, the partner then sleeps using _pend_curr_irqlock(). From this initial state: 1. The main thread calls _unpend_first_thread() 2. The main thread calls _ready_thread() 3. The main thread calls k_yield() (the kernel switches to the partner thread) 4. The partner thread then runs and calls _pend_curr_irqlock() again (the kernel switches to the main thread) 5. The main thread returns from k_yield() It then iterates this many times, reporting timestamp latencies between each numbered step and for the whole cycle, and a running average for all cycles run.