Scheduling overhead

Copper Contributor

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

0 Replies