You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
10 months ago | |
---|---|---|
.. | ||
src | 2 years ago | |
CMakeLists.txt | ||
README.rst | 10 months ago | |
prj.conf | 2 years ago | |
sample.yaml | 1 year ago |
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