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