Q: Should Cygwin/RTEMS-4.6.2/powerpc-rtems/psim pass these: s p12. exe and sp32.exe?

Joel Sherrill <joel@OARcorp.com> joel.sherrill at OARcorp.com
Fri Jan 21 17:28:31 UTC 2005


sp12.exe runs on the sparc/erc32, so I guess that
issues is psim specific.  Also, psim on the 4.6
CVS branch is new exceptions now.  psim in 4.6.2
was using old exceptions so it is very odd that
both would fail in the same way.  I will
see what I can spot.

--joel

Joel Sherrill <joel at OARcorp.com> wrote:
> Mills, John M. wrote:
> 
>> Joel -
>>
>> Mills, John M. wrote:
>> ...
>> jmm> I also fail sp32:
>> jmm>  $ psim sp32.exe
>> jmm> jmm> I get:
>> jmm>
>> =========================================================================
>> jmm> *** TEST 32 ***
>> jmm> jmm> rate_monotonic_period FAILED -- expected (successful 
>> completion) got
>> (timed
>> jmm> out waiting)
>> jmm>
>> =========================================================================
>> jmm> jmm> Are these failures expected?
>>
>> js> sp32 is particularly sensitive to the amount of work that can be done
>> js> between clock ticks.  On psim the period between clock ticks is 
>> measured
>> js> in number of instructions, so TICKS_PER_MICROSECOND == the number 
>> of js> instructions we treat as a microsecond.  So it could easily be 
>> too low js> for this test.
>>
>> Following your note to Daniel Gustafsson and the contents of 
>> <confdefs.h>, I
>> edited
>>  <RTEMS-srcdir>/c/src/tests/sptests/sp32/init.c to add the line:
>>
>> "#define CONFIGURE_MICROSECONDS_PER_TICK
>> RTEMS_MILLISECONDS_PER_MICROSECOND(xx)"
>>
>> before the line: "#include <confdefs.h>"
>> I still fail 'sp32.exe' for values of xx between 1 and 5000.
> 
> 
> psim is pretty simple.  Each unit counted in the decrementer
> register is 1 instruction.  There is a constant in the BSP
> named PSIM_INSTRUCTIONS_PER_MICROSECOND which is set to 10000
> in the CVS source.  The value put in the decrementer register
> is calculated by this code.
> 
> PPC_DECREMENTER_CLICKS =
>    (unsigned int)&PSIM_INSTRUCTIONS_PER_MICROSECOND;
> PPC_DECREMENTER_CLICKS *=
>    rtems_configuration_get_microseconds_per_tick();
> 
> So we are saying that there you need to execute at least 10000 * 5000
> instructions per simulated millisecond to do the workload required
> by this test.
> 
> Basically you can turn down the number of instructions per tick
> to the point where you are not making forward progress on the test.
> 
> sp32.exe ran for me last night but sp12.exe failed on psim.
> I left sparc/erc32 running to see how it did on sp12.exe to
> see if I am looking for a generic of BSP specific issue.
> 
>> Was this the correct way to configure my psim's reported speed? What test
>> would be more suitable for me to calibrate this constant?
> 
> 
> You can't really generically calibrate psim's ticker.  If you are
> simulating in order to run a real application, you might need to
> accomplish a different amount of work per millisecond to accurately
> reflect the capabilties of your target hardware.
> 
> 
>> Thanks.
>>  - John
>>
>> John M. Mills
>> Staff Engineer
>> EMS Technologies
>> 660 Engineering Drive
>> Norcross, GA 30092
>> 770.263.9200 ext4882
> 
> 
> 


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985




More information about the users mailing list