[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