Scheduling overhead

Discussions and support about ChibiOS/RT, the free embedded RTOS.
phug
Posts: 2
Joined: Mon Mar 07, 2022 2:54 pm

Scheduling overhead

Postby phug » Mon Mar 07, 2022 3:00 pm

Hello

I was asked to quantify how many CPU cycles are required for scheduling. I'm going to do an initial development for a series of devices. Could someone guide me to a place where I can find the number of CPU cycles to do the following:
* Preempt low priority thread and schedule high priority thread.
* Schedule from thread to thread on same priority. E.g. first thread blocked on a semaphore.
* Schedule from inactivated (e.g. blocking on a semaphore) high priority thread to low priority pending thread.
* Number of cycles from interrupt becoming active until first instruction of the user interrupt handler.
* Schedule from end of interrupt back to the thread preempted by this interrupt.
* Schedule from end of interrupt to a task higher than the thread that the interrupt has preempted.
* For how many CPU cycles get interrupts disabled while scheduling?

I expect the applications will run under the following:
* Cortex-M0+/M4/M7 depending on the enabled features.
* A typical configuration for an application with 16-64 tasks and 8 priority levels
* How much adds an FPU?
* How much adds an MMU/MPU?

Thanks very much

User avatar
Giovanni
Site Admin
Posts: 14444
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1074 times
Been thanked: 921 times
Contact:

Re: Scheduling overhead

Postby Giovanni » Mon Mar 07, 2022 3:09 pm

Hi,

Try looking under /doc/quality/rt/unittest. there are benchmarks run on various architectures, compilers and settings (with and without FPU). The benchmarks code is under /test/rt/source/test/rt_test_sequence_012.c, it covers some of your cases.

Answering in a detailed manner to all your questions would require a specific test setup.

Giovanni


Return to “ChibiOS/RT”

Who is online

Users browsing this forum: No registered users and 5 guests