#1726 closed enhancement (wontfix)

EDF Scheduling Implementation

Reported by: Gedare Bloom Owned by: Joel Sherrill
Priority: normal Milestone: 4.11
Component: score Version: 4.11
Severity: minor Keywords:
Cc: Blocked By:
Blocking:

Description

This PR / feature request adds the EDF scheduling algorithm in RTEMS.

A couple of notes:

  • Requires the red-black tree (PR 1641)
  • Has not been extensively tested, I do provide some test cases though: + sptests/spsched03 -- ticker with EDF + sptests/spsched04 -- sp20 with EDF + sptests/spsched05 -- custom test
  • There are some lingering issues of which I'm aware: + spsched05 hangs/crashes after completing on psim + spsched05 crashes when the first non-periodic task kills itself on sis + spsched04 has an off-by-1 bug for the first set of released tasks
  • The current design encroaches on the rate monotonic manager. This is unavoidable until we resolve a more generic framework for handling periodic tasks in RTEMS.
  • There are some pointed FIXME and TODO areas remaining. The FIXMEs are related primarily to needing access to the global _Scheduler structure within the EDF ready queue functions -- this should be an easy fix, probably localized to scheduleredf.inl.

Attachments (2)

rtems-edf-1.diff (20.5 KB) - added by Gedare Bloom on Dec 13, 2010 at 12:09:53 AM.
EDF and RBTree patch
rtems-edf-1.tgz (43.6 KB) - added by Gedare Bloom on Dec 13, 2010 at 12:10:33 AM.
New files.

Download all attachments as: .zip

Change History (4)

Changed on Dec 13, 2010 at 12:09:53 AM by Gedare Bloom

Attachment: rtems-edf-1.diff added

EDF and RBTree patch

Changed on Dec 13, 2010 at 12:10:33 AM by Gedare Bloom

Attachment: rtems-edf-1.tgz added

New files.

comment:1 Changed on Sep 10, 2011 at 2:22:36 PM by Gedare Bloom

dependson: 1896
Resolution: wontfix
Status: newclosed

Superseded by Petr's EDF implementation.

comment:2 Changed on Nov 24, 2014 at 6:58:28 PM by Gedare Bloom

Version: HEAD4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Note: See TracTickets for help on using tickets.