Issue with sis and Leon3

Jiri Gaisler jiri at gaisler.se
Thu Feb 28 19:01:02 UTC 2019


I have found the problem, stdout is not flushed when the simulator stops
and it has been invoked by gdb. The run command uses the gdb interface
to call sis, so this is why it happens there too. I will make a new sis
patch (2.13) with some additional (speed) improvements...

Jiri.


On 2/27/19 9:34 AM, Jiri Gaisler wrote:
>
>
> On 2/26/19 11:04 PM, Joel Sherrill wrote:
>>
>>
>> On Tue, Feb 26, 2019 at 2:06 PM Jiri Gaisler <jiri at gaisler.se
>> <mailto:jiri at gaisler.se>> wrote:
>>
>>
>>     On 2/26/19 8:49 PM, Joel Sherrill wrote:
>>>
>>>
>>>     On Tue, Feb 26, 2019 at 1:28 PM Jiri Gaisler <jiri at gaisler.se
>>>     <mailto:jiri at gaisler.se>> wrote:
>>>
>>>
>>>         On 2/26/19 8:08 PM, Joel Sherrill wrote:
>>>         > Hi
>>>         >
>>>         > I think something is wrong with sis on the leon3 which is
>>>         impacting rtems-tester.
>>>         > ticker ends like this:
>>>         >
>>>         > TA1  - rtems_clock_get_tod - 09:00:34   12/31/1988
>>>         >
>>>         > *** END OF TEST CLOCK TICK ***[joel@
>>>         >
>>>         > Notice that there is no carriage return at the end. Hello
>>>         ends with a CR and an
>>>         > blank line and it passes. Similar issue on the tests I
>>>         picked which passed or failed.
>>>         >
>>>         > Any idea what's up? I assume something isn't quite right
>>>         after all the sis work
>>>         > since it is reproducible.
>>>
>>>
>>>         Works OK here on Ubuntu 18.04.2 x64. Which host O/S are you on?
>>>
>>>
>>>     Interesting. OS is:
>>>
>>>     CentOS Linux release 7.5.1804 (Core) 
>>>
>>>     Here is the output of my last run by hand with a subsequent
>>>     comment. Notice that
>>>
>>>     ===================================
>>>     [joel at rtbf64c b-leon3]$ sparc-rtems5-run -a -leon3
>>>     ./sparc-rtems5/c/leon3/testsuites/sptests/sp05.exe
>>
>>     The run program has some issues, I think we should sis with -r
>>     instead:
>>
>>     $ sparc-rtems5-sis -r -leon3
>>     ./sparc-rtems5/c/leon3/testsuites/sptests/sp05.exe
>>
>>     .
>>
>>     .
>>
>>
>>     *** END OF TEST SP 5 ***
>>
>>
>> Thanks. Then do you agree that this patch is needed for rtems-tools
>> to invoke sis correctly:
>>
>> diff --git a/tester/rtems/testing/bsps/leon3-sis.ini
>> b/tester/rtems/testing/bsps
>> index 2f933a7..9e8111f 100644
>> --- a/tester/rtems/testing/bsps/leon3-sis.ini
>> +++ b/tester/rtems/testing/bsps/leon3-sis.ini
>> @@ -36,4 +36,4 @@ bsp          = leon3
>>  arch         = sparc
>>  tester       = %{_rtscripts}/run.cfg
>>  bsp_run_cmd  = %{rtems_tools}/%{bsp_arch}-rtems%{rtems_version}-sis
>> -bsp_run_opts = -leon3 -nouartrx -r -tlim 200 s -m 4
>> +bsp_run_opts = -r -leon3 -nouartrx -r -tlim 200 s -m 4
>>
> Hmm, bsp_run_opts already has -r, I don't think you need a second copy
> ...?
>
>
>> And the cut-off output also occurs when running it from inside gdb so
>> using leon3
>> (leon3.ini) configuration with rtems-test is broken. Not sure how to
>> fix that.
>
> I will look into this.
>
> Jiri.
>
>>
>> The tests pass with leon3-sis with my above patch but fail with
>> simple leon3
>> passed to tester.
>>
>> --joel
>>
>>
>>     Jiri.
>>
>>
>>
>>
>>>
>>>
>>>     *** BEGIN OF TEST SP 5 ***
>>>     *** TEST VERSION: 5.0.0.7abc497b6c763ccdc090014f310951b17c742ae9
>>>     *** TEST STATE: EXPECTED-PASS
>>>     *** TEST BUILD: RTEMS_NETWORKING
>>>     *** TEST TOOLS: 7.4.0 20181206 (RTEMS 5, RSB
>>>     38241392a4f96dabf2d1aba51a43dcb623db4dfb, Newlib 1d35a003f)
>>>     TA1 - rtems_task_wake_after - sleep 5 seconds
>>>     TA2 - rtems_task_suspend - suspend self
>>>     TA3 - rtems_task_suspend - suspend self
>>>     ......
>>>     TA1 - rtems_task_resume - resume TA3
>>>
>>>     *** END OF TEST [joel at rtbf64c b-leon3]$ cat /etc/redhat-release 
>>>     CentOS Linux release 7.5.1804 (Core) 
>>>     =================================== 
>>>
>>>     And this is the end of the erc32 output from the same test and
>>>     same sis on the same computer: 
>>>
>>>     ===================================
>>>      TA1 - rtems_task_resume - resume TA3
>>>
>>>     *** END OF TEST SP 5 ***
>>>
>>>
>>>     *** FATAL ***
>>>     fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT)
>>>     fatal code: 0 (0x00000000)
>>>     RTEMS version: 5.0.0.7abc497b6c763ccdc090014f310951b17c742ae9
>>>     RTEMS tools: 7.4.0 20181206 (RTEMS 5, RSB
>>>     38241392a4f96dabf2d1aba51a43dcb623db4dfb, Newlib 1d35a003f)
>>>
>>>     =================================== 
>>>
>>>     Looks like a lot of output got chopped or not flushed or something.
>>>
>>>     If the final output makes it out on your system, then rtems-test
>>>     will be happy and pass them. 
>>>     In my case, it ends most of the time just a little too early to
>>>     make that happen.
>>>      
>>>
>>>
>>>         jiri at office:~/src/rtems/sparc$ rtems-test
>>>         --rtems-bsp=leon3-sis sparc-rtems5/c/leon3/testsuites/samples
>>>         RTEMS Testing - Tester, 5.0.not_released
>>>          Command Line: /opt/rtems/5/bin/rtems-test
>>>         --rtems-bsp=leon3-sis sparc-rtems5/c/leon3/testsuites/samples
>>>          Python: 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0]
>>>         Host:
>>>         Linux-4.18.0-15-generic-x86_64-with-Ubuntu-18.04-bionic
>>>         (Linux office 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu
>>>         Feb 7 14:06:04 UTC 2019 x86_64 x86_64)
>>>         [ 8/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: minimum.exe
>>>         [ 6/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: hello.exe
>>>         [ 4/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: cxx_iostream.exe
>>>         [ 2/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: capture.exe
>>>         [ 3/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: cdtest.exe
>>>         [ 1/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: base_sp.exe
>>>         [ 5/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: fileio.exe
>>>         [ 7/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: loopback.exe
>>>         [ 1/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: base_sp.exe
>>>         [ 2/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: capture.exe
>>>         [ 3/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: cdtest.exe
>>>         [ 4/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: cxx_iostream.exe
>>>         [ 5/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: fileio.exe
>>>         [ 6/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: hello.exe
>>>         [ 7/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: loopback.exe
>>>         [ 8/13] p:0  f:0  u:0  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: minimum.exe
>>>         [10/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: paranoia.exe
>>>         [11/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: pppd.exe
>>>         [13/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: unlimited.exe
>>>         [ 9/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: nsecs.exe
>>>         [12/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: ticker.exe
>>>         [ 9/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: nsecs.exe
>>>         [10/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: paranoia.exe
>>>         [11/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: pppd.exe
>>>         [12/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: ticker.exe
>>>         [13/13] p:6  f:0  u:2  e:0  I:0  B:0  t:0  i:0  W:0  |
>>>         sparc/leon3: unlimited.exe
>>>
>>>         Passed:        11
>>>         Failed:         0
>>>         User Input:     2
>>>         Expected Fail:  0
>>>         Indeterminate:  0
>>>         Benchmark:      0
>>>         Timeout:        0
>>>         Invalid:        0
>>>         Wrong Version:  0
>>>         Wrong Build:    0
>>>         Wrong Tools:    0
>>>         -----------------
>>>         Total:         13
>>>         User Input:
>>>          capture.exe
>>>          fileio.exe
>>>         Average test time: 0:00:00.212905
>>>         Testing time     : 0:00:02.767759
>>>         jiri at office:~/src/rtems/sparc$ sparc-rtems5-sis
>>>
>>>          SIS - SPARC/RISCV instruction simulator 2.12,  copyright
>>>         Jiri Gaisler 2019
>>>          Bug-reports to jiri at gaisler.se <mailto:jiri at gaisler.se>
>>>
>>>          ERC32 emulation enabled
>>>
>>>         sis> q
>>>
>>>         Jiri.
>>>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190228/4de32116/attachment-0002.html>


More information about the devel mailing list