[LITMUS^RT] table driven global scheduling

Björn Brandenburg bbb at mpi-sws.org
Wed Jan 29 10:18:59 CET 2020



> On 28. Jan 2020, at 22:57, Glenn Elliott <gelliott at cs.unc.edu> wrote:
> Herman et al. Implemented _partitioned_ table-driven scheduling in Litmus 2011.1, for their paper "RTOS Support for Mixed-Criticality Systems” (http://www.cs.unc.edu/~anderson/papers/rtas12b.pdf).  You can find it as a part of this patch: http://www.cs.unc.edu/~anderson/litmus-rt/download/RTAS12/wip-mc.patch (look for code related to “cyclic executive” or “ce”).
> 
> The patch is for an old version of Litmus, and is for partitioned scheduling, but it may give you some ideas on how to approach a global table-driven scheduler (e.g., how to express the table to the scheduler—under Herman’s patch, you write a CSV file, representing the schedule table, to a file in /proc).

Hi Glenn, 

thanks for the pointer! Note however that mainline LITMUS^RT already has relatively stable and well-tested support for partitioned table-driven scheduling via the P-RES plugin, so there are no extra patches required to get this functionality.

To obtain a table-driven scheduler in which jobs are scheduled globally *within* the table allocations, I would suggest to copy the table-driven reservation type and tweak it to serve a shared, global thread queue (currently, each per-core table serves a private thread queue, hence the partitioned semantics). 

- Björn 




More information about the litmus-dev mailing list