1Scheduler Microbenchmark 2######################## 3 4This is a scheduler microbenchmark, designed to measure minimum 5latencies (not scaling performance) of specific low level scheduling 6primitives independent of overhead from application or API 7abstractions. It works very simply: a main thread creates a "partner" 8thread at a higher priority, the partner then sleeps using 9_pend_curr_irqlock(). From this initial state: 10 111. The main thread calls _unpend_first_thread() 122. The main thread calls _ready_thread() 133. The main thread calls k_yield() 14 (the kernel switches to the partner thread) 154. The partner thread then runs and calls _pend_curr_irqlock() again 16 (the kernel switches to the main thread) 175. The main thread returns from k_yield() 18 19It then iterates this many times, reporting timestamp latencies 20between each numbered step and for the whole cycle, and a running 21average for all cycles run. 22