The latest development version of this page may be more current than this released 4.0.0 version.

Syscall performance

Browse source code on GitHub

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

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