Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

Changes between Version 138 and Version 139 of Developer/OpenProjects


Ignore:
Timestamp:
01/26/10 03:44:27 (14 years ago)
Author:
JoelSherrill
Comment:

/* RTEMS Testing */ Shorten

Legend:

Unmodified
Added
Removed
Modified
  • Developer/OpenProjects

    v138 v139  
    184184ways to run them all and decode the results.  In addition, we want to be
    185185able to run all tests on as many hardware and simulator configurations
    186 as possible.
    187 = POSIX Timing Tests =
    188 
    189 
    190 '''Status:''' No active volunteers.
    191 
    192 There are very few tests in the RTEMS source base which benchmark the
    193 POSIX Threading API and other POSIX services.  The first step in this
    194 project would be to develop POSIX API Timing Tests which test the same
    195 logical tests cases as the existing Classic API Timing Tests.  After that
    196 is complete, we would want to see Timing Tests for POSIX specific objects
    197 such as conditional variables and keys.
    198 
    199 RTEMS does not use Timing Tests as much for comparison with other
    200 operating systems but as a ruler for self-improvement.  Each RTEMS
    201 version should maintain or exceed the performance characteristics of
    202 previous versions.
    203 = Coverage Analysis =
    204 
    205 
    206 '''Status:''' On going effort.
    207 
    208 See [wiki:RTEMS_Test_Coverage RTEMS Test Coverage] for current status, ideas, and other information.
    209 
    210 This is being taken up as a Google Summer of Code 2009 project by Santosh G Vattam and the updates about this project can be found [http://www.rtems.org/wiki/index.php/Coverage_Analysis here]
    211 = Add Sixty-Four Bit Timestamps =
    212 
    213 
    214 '''Status:''' Implemented. Needs evaluation on various architectures.
    215 
    216 Prior to the RTEMS 4.8 Releases, RTEMS based all timing on clock ticks.
    217 At each clock tick, the current time of day was updated.  This meant
    218 that the granularity of all time stamps and statistics on per-thread
    219 CPU usage were constrained to that of the clock tick.  In RTEMS 4.8.0,
    220 the lowest level of RTEMS -- the SuperCore (e.g. rtems/cpukit/score)
    221 was converted to use POSIX ''struct timespec'' as the format for all
    222 timestamps.  In conjunction with the addition of the ability of a BSP
    223 to report "nanoseconds since last clock tick", RTEMS could now provide
    224 nanosecond accurate timestamps and CPU usage statistics.
    225 
    226 Unfortunately, performing mathematical operations on ''struct timespec''
    227 is painful and slow.  This project will consist of the following work:
    228 
    229  *  Baseline Testing
    230   *  (DONE) Verify all test cases work as baseline.
    231   *  Capture execution times of RTEMS Timing Tests on reference hardware.
    232   *  Capture sizes of sample tests.
    233 
    234  *  (DONE) Add a SuperCore object "ScoreTimestamp". 
    235   *  This is an opaque class which will be used by all SuperCore time related functions.
    236   *  Includes methods will be provided to convert timespec and other standard time formats to and from ScoreTimestamp.
    237   *  RTEMS has a class to operate upon timespec's so this will be implemented in terms of this.
    238   *  Direct operations on timespec's will be eliminated throughout RTEMS except as necessary near API calls which operate upon ''struct timespec'' arguments.
    239   *  Initial implementation will be using ''struct timespec'' and all methods should be simple pass throughs or wrapper of existing functionality in the Timespec math helper class. Note that by adding the class "ScoreTimestamp", we have added a class whose implementation can be changed.
    240 
    241  *  (DONE) Verify all existing test cases still work.
    242 
    243  *  (DONE) Implement alternate version of SuperCore object "ScoreTimestamp" which uses unsigned sixty-four bit integers to represent nanoseconds since the POSIX epoch.
    244   *  This implementation should be fairly simple as you can do direct math on 64-bit integers.
    245   *  Do not destroy ''struct timespec'' alternative.  The goal is to be able to pick the implementation is for each port to a new CPU architecture to select its preferred method.
    246   *  Provide configuration similar to other configure/build time parameters in RTEMS to let user select implementation.
    247   *  Make sure both implementations work. :-D
    248 
    249  *  Post Testing
    250   *  Verify all test cases work as they did baseline.
    251   *  Capture execution times of RTEMS Timing Tests again on reference hardware for both implementations.
    252   *  Capture sizes of sample tests.
    253 
    254  *  Select proper implementation for each target architecture
    255  *  Evaluation
    256   *  We anticipate that most of the target architectures RTEMS supports will benefit from using the 64-bit integer version.  But RTEMS supports over a dozen architectures so this is certainly not guaranteed.
    257   *  Work with RTEMS Community to run tests on as many targets as possible to decide which is best choice on each architecture.
    258   *  Simulators are available for most of the primary target architectures so we will be able to judge the impact of your work.
    259 = Test POSIX FIFOs =
    260 
    261 
    262 '''Status:''' Implemented.  Needs configuration support and tests.
    263 
    264 Implement POSIX (named) FIFOs and (unnamed) Pipes.  See [wiki:Projects/POSIXFIFOs POSIXFIFOs] for technical details.
    265 
    266 Most of the core RTEMS developers are potential resources here. See cpukit/libfs/src/pipefs for details and contact information.
    267 = Implement Functionality Currently Missing in dup =
    268 
    269 
    270 '''Status:''' No active volunteers.
    271 
    272 Identify and implement missing file descriptor ''dup()'' cases.
     186as possible.  Some of the identified activities which would augment our
     187testing capabilities are listed here:
     188
     189 *  [wiki:TBR/Delete/POSIXTimingTests  POSIX Timing Tests]
     190 *  [wiki:RTEMS_Test_Coverage  Test Coverage Analysis]  is an important area in RTEMS.
     191 *  [wiki:Projects/SixtyFourBitTimestamps  Add Sixty-Four Bit Timestamps]
     192 *  Test [wiki:Projects/POSIXFIFOs  POSIX FIFO Implementation].
    273193= Development Environment Oriented =
    274194