Using the EDF scheduler

Jonathan Brandmeyer jbrandmeyer at
Fri Jan 17 23:51:18 UTC 2020

On Fri, Jan 17, 2020 at 4:03 PM Joel Sherrill <joel at> wrote:

> On Fri, Jan 17, 2020 at 3:00 PM Gedare Bloom <gedare at> wrote:
>> Hi Jonathan,
>> There is not much support available out-of-the-box in RTEMS for
>> servers, other than some academic implementation of the constant
>> bandwidth server (CBS) for uniprocessor EDF.
> The affinity should work if deadline tasks and priority based tasks never
> are assigned to the same core.

My application is partitioned three ways: rate-monotonic tasks that are
scheduled using the kernel tick and the rate monotonic manager,
rate-monotonic tasks that are scheduled by sending rtems_events from a
regular ISR, and throughput-oriented tasks that have lower priority than
everything else.  There are only two cores physically present.  So I think
I can keep the two realtime task categories distinct with 1:1 affinity and
give the remaining time to throughput tasks using 1:any affinity.

The result is that the core that is managed using the rate-monotonic
manager should be schedulable using EDF's analysis, and the core that is
managed by sending events from interrupts should be schedulable using
fixed-priority rate-monotonic analysis.

> If you do this, you could experiment with affinity and then consider moving
> to a partitioned scheduler setup with some cores running based on
> deadline and other cores running threads based on priority.

> The SMP EDF scheduler only supports pinning (single core) and not
> affinity sets so the clustered scheduling may be the more optimal
> alternative.

Its a 2-core system, so I don't need the flexibility afforded by using
clustered scheduling instead of affinity.

Jonathan Brandmeyer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list