zephyr/samples/userspace/syscall_perf
Torsten Rasmussen 1cccc8a8fe cmake: increase minimal required version to 3.20.0
Move to CMake 3.20.0.

At the Toolchain WG it was decided to move to CMake 3.20.0.

The main reason for increasing CMake version is better toolchain
support.

Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-20 09:47:34 +02:00
..
src
CMakeLists.txt cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
README.rst
prj.conf
sample.yaml

README.rst

.. _syscall_perf:

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 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 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