…
|
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
README.rst | ||
prj.conf | ||
sample.yaml |
README.rst
.. zephyr:code-sample:: syscall_perf :name: Syscall performance Measure performance overhead of a system calls compared to direct function calls. Syscall performances ==================== The goal of this sample application is to measure the performance loss when a user thread has to go through a system call compared to a supervisor thread that calls the function directly. Overview ******** This application creates a supervisor and a user thread. Then both threads call :c:func:`k_current_get()` which returns a reference to the current thread. The user thread has to go through a system call. Both threads are showing the number of core clock cycles and the number of instructions executed while calling :c:func:`k_current_get()`. Sample Output ************* .. code-block:: console User thread: 18012 cycles 748 instructions Supervisor thread: 7 cycles 4 instructions User thread: 20136 cycles 748 instructions Supervisor thread: 7 cycles 4 instructions User thread: 18014 cycles 748 instructions Supervisor thread: 7 cycles 4 instructions