#1647 closed defect (fixed)

Modular SuperCore Scheduler

Reported by: Gedare Bloom Owned by: Joel Sherrill
Priority: normal Milestone: 4.11
Component: score Version: 4.11
Severity: normal Keywords:
Cc: chrisj@…, sebastian.huber@… Blocked By:
Blocking:

Description

This PR introduces the Modular SuperCore? Scheduler, the core of my Google Summer of Code project. This PR refactors the current scheduler to maintain the functionality of the priority scheduler while encapsulating the scheduling data structures and decision points in a new Scheduler Handler. Concurrent with the new Scheduler Handler is a new Ready Queue Handler, which is primarily treated as a sub-package of the Scheduler, but can be used directly.

The interface to the scheduling subsystem is now simply and concisely represented as:

_Scheduler_Schedule( Scheduler_Control * )
_Scheduler_Yield( void )
_Scheduler_Block( Scheduler_Control *, Thread_Control * )
_Scheduler_Unblock( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_allocate( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_free( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_update( Scheduler_Control *, Thread_Control * )

The final three functions are used by the scheduler to manage per-thread scheduling data that is stored in the Thread_Control block. All of these functions make a call to a jump table, where a particular scheduler's implementation of the function has been registered by the scheduler's initialization routine. The initialization routine is registered in confdefs.h and is based on user configuration. The use of a jump table allows for flexible, modular scheduling that will only include the scheduler code if a user application is configured to use the scheduler. The default scheduler is the current priority-based scheduling mechanism.

More information about this project can be found on the Google Code page: http://code.google.com/p/rtems-sched/

Attachments (31)

rtems-cvs.diff (41.8 KB) - added by Gedare Bloom on Jul 30, 2010 at 5:25:53 PM.
Changes to existing files.
rtems.tgz (7.2 KB) - added by Gedare Bloom on Jul 30, 2010 at 5:26:24 PM.
New files.
rtems-cvs_v1.diff (41.9 KB) - added by Gedare Bloom on Aug 11, 2010 at 6:59:11 PM.
mostly style changes and fix 'sched'.
rtems_v1.tgz (7.4 KB) - added by Gedare Bloom on Aug 11, 2010 at 6:59:54 PM.
mostly style changes and fix 'sched'.
ChangeLog (1.7 KB) - added by Gedare Bloom on Aug 12, 2010 at 4:31:43 PM.
ChangeLog? for modified, removed, and added files.
rtems-cvs_v2.diff (41.9 KB) - added by Gedare Bloom on Aug 12, 2010 at 4:52:33 PM.
updated patch with Makefile.am change.
rtems_v2.tgz (7.4 KB) - added by Gedare Bloom on Aug 12, 2010 at 4:53:12 PM.
New files. Updated for style fixes etc.
rtems-doc-scheduler.diff (7.7 KB) - added by Gedare Bloom on Aug 13, 2010 at 6:12:59 PM.
documentation patch
rtems-cvs_v3.diff (41.9 KB) - added by Gedare Bloom on Aug 23, 2010 at 5:02:11 PM.
Updated patch.
pre-modsched-times-sis.txt (9.3 KB) - added by Joel Sherrill on Aug 26, 2010 at 5:50:45 PM.
Tmtests output on sis before applying patch
post-modsched-times-sis.txt (9.2 KB) - added by Joel Sherrill on Aug 26, 2010 at 7:28:33 PM.
Tmtests output on sis after applying patch
rtems-cvs_v4.diff (41.5 KB) - added by Gedare Bloom on Aug 28, 2010 at 7:26:02 PM.
Updated patch.
rtems_v3.tgz (7.3 KB) - added by Gedare Bloom on Aug 28, 2010 at 7:26:40 PM.
New files.
post-modsched-times-sis-v2.txt (9.3 KB) - added by Joel Sherrill on Aug 29, 2010 at 1:53:04 PM.
New tmtests output file on sis for 2nd version of patch.
psim-pre-patch.txt (15.5 KB) - added by Joel Sherrill on Aug 31, 2010 at 10:14:00 AM.
Times on psim before patch
psim-post-patch.txt (14.6 KB) - added by Joel Sherrill on Aug 31, 2010 at 10:17:22 AM.
Times on psim after patch
rtems-modsched.diff (43.2 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:05:54 PM.
Updated patch.
rtems_v4.tgz (6.0 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:06:32 PM.
New files.
pre-modsched-times-psim.txt (15.9 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:07:13 PM.
Times on psim before patch
post-modsched-times-psim.txt (15.8 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:07:31 PM.
Times on psim after patch
pre-modsched-times-sis_v1.txt (9.3 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:08:07 PM.
Times on sis before patch
post-modsched-times-sis-v3.txt (9.3 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:08:44 PM.
Times on sis after patch
pre-modsched-sptests-sis.txt (98.7 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:09:15 PM.
sptests on sis before patch
post-modsched-sptests-sis.txt (98.3 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:09:36 PM.
sptests on sis after patch
pre-modsched-sptests-psim.txt (122.0 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:17:19 PM.
sptests on psim before patch
post-modsched-sptests-psim.txt (121.9 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:17:45 PM.
sptests on psim after patch
ChangeLog_v1 (1.3 KB) - added by Gedare Bloom on Nov 13, 2010 at 5:18:17 PM.
ChangeLog?
pre-modsched-times-jmr3904.txt (4.8 KB) - added by Joel Sherrill on Nov 15, 2010 at 5:39:45 PM.
Tmtests output on mips/jmr3904 before applying patch
post-modsched-times-jmr3904.txt (4.8 KB) - added by Joel Sherrill on Nov 15, 2010 at 5:40:06 PM.
Tmtests output on mips/jmr3904 after applying patch
post-modsched-times-psim_v1.txt (15.8 KB) - added by Gedare Bloom on Nov 15, 2010 at 10:15:56 PM.
Times on psim after patch
rtems_v5.tgz (6.1 KB) - added by Gedare Bloom on Nov 15, 2010 at 10:18:15 PM.
New files.

Download all attachments as: .zip

Change History (53)

Changed on Jul 30, 2010 at 5:25:53 PM by Gedare Bloom

Attachment: rtems-cvs.diff added

Changes to existing files.

Changed on Jul 30, 2010 at 5:26:24 PM by Gedare Bloom

Attachment: rtems.tgz added

New files.

comment:1 Changed on Jul 30, 2010 at 5:26:43 PM by Gedare Bloom

dependson: 1599

comment:2 Changed on Aug 8, 2010 at 2:10:47 PM by Joel Sherrill

Cc: Chris Johns added

Changed on Aug 11, 2010 at 6:59:11 PM by Gedare Bloom

Attachment: rtems-cvs_v1.diff added

mostly style changes and fix 'sched'.

comment:3 Changed on Aug 11, 2010 at 6:59:11 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 11, 2010 at 6:59:54 PM by Gedare Bloom

Attachment: rtems_v1.tgz added

mostly style changes and fix 'sched'.

comment:4 Changed on Aug 11, 2010 at 6:59:54 PM by Gedare Bloom

attachments.isobsolete: 01

comment:5 Changed on Aug 12, 2010 at 6:20:12 AM by Sebastian Huber

Cc: Sebastian Huber added

Changed on Aug 12, 2010 at 4:31:43 PM by Gedare Bloom

Attachment: ChangeLog added

ChangeLog? for modified, removed, and added files.

Changed on Aug 12, 2010 at 4:52:33 PM by Gedare Bloom

Attachment: rtems-cvs_v2.diff added

updated patch with Makefile.am change.

comment:6 Changed on Aug 12, 2010 at 4:52:33 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 12, 2010 at 4:53:12 PM by Gedare Bloom

Attachment: rtems_v2.tgz added

New files. Updated for style fixes etc.

comment:7 Changed on Aug 12, 2010 at 4:53:12 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 13, 2010 at 6:12:59 PM by Gedare Bloom

Attachment: rtems-doc-scheduler.diff added

documentation patch

Changed on Aug 23, 2010 at 5:02:11 PM by Gedare Bloom

Attachment: rtems-cvs_v3.diff added

Updated patch.

comment:8 Changed on Aug 23, 2010 at 5:02:11 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 26, 2010 at 5:50:45 PM by Joel Sherrill

Attachment: pre-modsched-times-sis.txt added

Tmtests output on sis before applying patch

Changed on Aug 26, 2010 at 7:28:33 PM by Joel Sherrill

Attachment: post-modsched-times-sis.txt added

Tmtests output on sis after applying patch

Changed on Aug 28, 2010 at 7:26:02 PM by Gedare Bloom

Attachment: rtems-cvs_v4.diff added

Updated patch.

comment:9 Changed on Aug 28, 2010 at 7:26:02 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 28, 2010 at 7:26:40 PM by Gedare Bloom

Attachment: rtems_v3.tgz added

New files.

comment:10 Changed on Aug 28, 2010 at 7:26:40 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Aug 29, 2010 at 1:53:04 PM by Joel Sherrill

New tmtests output file on sis for 2nd version of patch.

comment:11 Changed on Aug 29, 2010 at 1:53:04 PM by Joel Sherrill

attachments.isobsolete: 01

Changed on Aug 31, 2010 at 10:14:00 AM by Joel Sherrill

Attachment: psim-pre-patch.txt added

Times on psim before patch

Changed on Aug 31, 2010 at 10:17:22 AM by Joel Sherrill

Attachment: psim-post-patch.txt added

Times on psim after patch

Changed on Nov 13, 2010 at 5:05:54 PM by Gedare Bloom

Attachment: rtems-modsched.diff added

Updated patch.

comment:12 Changed on Nov 13, 2010 at 5:05:54 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:06:32 PM by Gedare Bloom

Attachment: rtems_v4.tgz added

New files.

comment:13 Changed on Nov 13, 2010 at 5:06:32 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:07:13 PM by Gedare Bloom

Attachment: pre-modsched-times-psim.txt added

Times on psim before patch

comment:14 Changed on Nov 13, 2010 at 5:07:13 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:07:31 PM by Gedare Bloom

Times on psim after patch

comment:15 Changed on Nov 13, 2010 at 5:07:31 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:08:07 PM by Gedare Bloom

Times on sis before patch

comment:16 Changed on Nov 13, 2010 at 5:08:07 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:08:44 PM by Gedare Bloom

Times on sis after patch

comment:17 Changed on Nov 13, 2010 at 5:08:44 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 13, 2010 at 5:09:15 PM by Gedare Bloom

sptests on sis before patch

Changed on Nov 13, 2010 at 5:09:36 PM by Gedare Bloom

sptests on sis after patch

Changed on Nov 13, 2010 at 5:17:19 PM by Gedare Bloom

sptests on psim before patch

Changed on Nov 13, 2010 at 5:17:45 PM by Gedare Bloom

sptests on psim after patch

Changed on Nov 13, 2010 at 5:18:17 PM by Gedare Bloom

Attachment: ChangeLog_v1 added

comment:18 Changed on Nov 13, 2010 at 5:18:17 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 15, 2010 at 5:39:45 PM by Joel Sherrill

Tmtests output on mips/jmr3904 before applying patch

Changed on Nov 15, 2010 at 5:40:06 PM by Joel Sherrill

Tmtests output on mips/jmr3904 after applying patch

Changed on Nov 15, 2010 at 10:15:56 PM by Gedare Bloom

Times on psim after patch

comment:19 Changed on Nov 15, 2010 at 10:15:56 PM by Gedare Bloom

attachments.isobsolete: 01

Changed on Nov 15, 2010 at 10:18:15 PM by Gedare Bloom

Attachment: rtems_v5.tgz added

New files.

comment:20 Changed on Nov 15, 2010 at 10:18:15 PM by Gedare Bloom

attachments.isobsolete: 01

comment:21 Changed on Nov 24, 2010 at 2:53:33 PM by Joel Sherrill

Resolution: fixed
Status: newclosed

Patch committed to head. Thanks for all the work you put into this.

comment:22 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.