[RTEMS Project] #2679: Update Scheduler Simulator To Master

RTEMS trac trac at rtems.org
Tue Mar 29 21:03:42 UTC 2016


#2679: Update Scheduler Simulator To Master
---------------------------+------------------
 Reporter:  joel.sherrill  |       Owner:
     Type:  defect         |      Status:  new
 Priority:  normal         |   Milestone:
Component:  misc           |     Version:
 Severity:  normal         |  Resolution:
 Keywords:                 |
---------------------------+------------------

Comment (by joel.sherrill):

 = Update schedsim/rtems/Makfile.am =

 == Include PATH section ==

 The first section of this Makefile adds include paths back into the main
 RTEMS source tree. This should not need addressing unless:

 * a new directory has been added to the cpukit which is not listed here

 There are a few .h files in RTEMS which are not in the proper subdirectory
 relative to their installed path. For example, sapi/include/confdefs.h is
 installed as <rtems/confdefs.h>. If this causes a problem, then the file
 should be moved in the RTEMS source tree.

 == Scheduler Simulator Unique Source ==
 The next section lists a few files which are scheduler simulator specific
 implementations of some RTEMS Score Services as well as a "fake CPU" port.
 When updating the scheduler simulator, the following possibilities are
 anticipated:

 * Existing implementations of these services no longer match the interface
 required. In this case, the code must simply be updated.
 * Existing implementation is missing methods. Obvious solution is to add
 them.

 In the Spring 2016 update, rtems_init.c will require attention because
 RTEMS changed to a constructor style sequence table. The static method in
 rtems_init.c should be OK but check the operation names and order.

 == References to RTEMS Source Code ==
 The power of the Scheduler Simulator is that it directly uses RTEMS native
 source code in a simple scripted environment on a native host. This list
 is almost guaranteed to be out of date.

 * Add files from the appropriate SuperCore Handlers that are new.
 * Delete references to files that were removed.
 * Add any support routines that turn up via undefined symbols when
 linking.

 Watch out for the section dividers which indicate either different
 schedulers or optional source for POSIX threads or SMP enabled.

 In the Spring 2016 update, this list is likely very out of date. Don't be
 afraid to add or delete as needed.

 == Include files ==

 Again just a list of include files installed by the Scheduler Simulator.

 In the Spring 2016 update, this list is likely very out of date. Don't be
 afraid to add or delete as needed.

 = Adding a new schedsim/shell instance =
 Each scheduler "shell" is a simple executable that can read scripted
 commands. The only real difference between each "shell" is the file
 config.c which provides a very minimal RTEMS configuration.

 It is really important to remember that each scenario file (.scen) has an
 expected output file. Scenarios can be run on different scheduler shells.
 This can be done to demonstrate the the algorithms behave the same or to
 highlight an intentional difference. For example, all SMP schedulers
 should behave exactly like the Deterministic Priority Scheduler on a
 single CPU system.

 Remember that a scheduler implementation responds to only a few external
 events. So far, these can all be "tickled" by a small subset of tasking,
 semaphore, and time services. Hopefully this will continue.

 = Possible Changes Required in schedsim/shell/shared =
 Given recent changes to internal time updates, the main_clocktick.c
 command may need to be updated.

--
Ticket URL: <http://devel.rtems.org/ticket/2679#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list