Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
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.
 
 
 
 
 
 
Benjamin Cabé 1db9b009a7 doc: samples: Adopt code-sample-category across tree 10 months ago
..
src samples, tests, boards: Switch main return type from void to int 2 years ago
CMakeLists.txt
README.rst doc: samples: Adopt code-sample-category across tree 10 months ago
prj.conf samples: syscall_perf: Remove unused build option 2 years ago
sample.yaml hwmv2: Introduce Hardware model version 2 and convert devices 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