Potential SIS or RTEMS/libbsd problem

Sebastian Huber sebastian.huber at embedded-brains.de
Wed May 22 06:03:31 UTC 2019


Hello,

in the libbsd there is a test for the Epoch Based Reclamation:

https://git.rtems.org/rtems-libbsd/tree/testsuite/epoch01/test_main.c

When I run this test using the leon3 BSP on real hardware (150MHz NGMP 
FP) the test completes successfully.

If I run the test on the SIS, it is stuck at some point (using "-m 1" 
works):

sparc-rtems5-sis -leon3 -nouartrx -r -tlim 200 s -m 2 
build/sparc-rtems5-leon3-everything/epoch01.exe

  SIS - SPARC/RISCV instruction simulator 2.13,  copyright Jiri Gaisler 2019
  Bug-reports to jiri at gaisler.se

  LEON3 emulation enabled, 2 cpus online, delta 50 clocks

Waking CPU 1
*** LIBBSD EPOCH 1 TEST ***
nexus0: <RTEMS Nexus device>
<TestEpoch01>
   <EnterExit activeWorker="1">
     <Counter worker="0">74356</Counter>
   </EnterExit>
   <EnterExit activeWorker="2">
     <Counter worker="0">74465</Counter>
     <Counter worker="1">59621</Counter>
   </EnterExit>
   <EnterListOpExit activeWorker="1">
     <Counter worker="0">53487</Counter>
     <Removals worker="0">82</Removals>
   </EnterListOpExit>
   <EnterListOpExit activeWorker="2">
     <Counter worker="0">52178</Counter>
     <Counter worker="1">57348</Counter>
     <Removals worker="0">46</Removals>
     <Removals worker="1">46</Removals>
   </EnterListOpExit>
   <EnterExitPreempt activeWorker="1">
     <Counter worker="0">36684</Counter>
   </EnterExitPreempt>
   <EnterExitPreempt activeWorker="2">
     <Counter worker="0">36853</Counter>
     <Counter worker="1">29430</Counter>
   </EnterExitPreempt>
   <EnterListOpExitPreempt activeWorker="1">
     <Counter worker="0">30560</Counter>
     <Removals worker="0">60</Removals>
   </EnterListOpExitPreempt>
Interrupt!
  Stopped at time 758152100 (15163.042 ms)

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

-------------- next part --------------
  GRMON2 LEON debug monitor v2.0.92 64-bit pro version
  
  Copyright (C) 2018 Cobham Gaisler - All rights reserved.
  For latest updates, go to http://www.gaisler.com/
  Comments or bug-reports to support at gaisler.com

 Ethernet startup...
  Device ID:           0x281
  GRLIB build version: 4114
  Detected system:     NGMP FP
  Detected frequency:  150 MHz
  
  Component                            Vendor
  JTAG Debug Link                      Cobham Gaisler
  GRSPW2 SpaceWire Serial Link         Cobham Gaisler
  EDCL master interface                Cobham Gaisler
  EDCL master interface                Cobham Gaisler
  USB Debug Communication Link         Cobham Gaisler
  LEON4 SPARC V8 Processor             Cobham Gaisler
  LEON4 SPARC V8 Processor             Cobham Gaisler
  LEON4 SPARC V8 Processor             Cobham Gaisler
  LEON4 SPARC V8 Processor             Cobham Gaisler
  IO Memory Management Unit            Cobham Gaisler
  AHB-to-AHB Bridge                    Cobham Gaisler
  L2-Cache Controller                  Cobham Gaisler
  AHB Memory Scrubber                  Cobham Gaisler
  IOMMU secondary master i/f           Cobham Gaisler
  AHB-to-AHB Bridge                    Cobham Gaisler
  LEON4 Debug Support Unit             Cobham Gaisler
  AHB/APB Bridge                       Cobham Gaisler
  AMBA Trace Buffer                    Cobham Gaisler
  Single-port DDR2 controller          Cobham Gaisler
  Memory controller with EDAC          Cobham Gaisler
  AHB/APB Bridge                       Cobham Gaisler
  AHB/APB Bridge                       Cobham Gaisler
  GRPCI2 PCI/AHB bridge                Cobham Gaisler
  GRSPW Router                         Cobham Gaisler
  LEON4 Statistics Unit                Cobham Gaisler
  GRPCI2 Trace buffer                  Cobham Gaisler
  Generic UART                         Cobham Gaisler
  Generic UART                         Cobham Gaisler
  General Purpose I/O port             Cobham Gaisler
  Multi-processor Interrupt Ctrl.      Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  GRSPW Router DMA interface           Cobham Gaisler
  GRSPW Router DMA interface           Cobham Gaisler
  GRSPW Router DMA interface           Cobham Gaisler
  GRSPW Router DMA interface           Cobham Gaisler
  GR Ethernet MAC                      Cobham Gaisler
  GR Ethernet MAC                      Cobham Gaisler
  PCI Arbiter                          European Space Agency
  MIL-STD-1553B Interface              Cobham Gaisler
  SPI Controller                       Cobham Gaisler
  Clock gating unit                    Cobham Gaisler
  LEON4 Statistics Unit                Cobham Gaisler
  AHB Status Register                  Cobham Gaisler
  AHB Status Register                  Cobham Gaisler
  N2X PLL Dynamic Config. i/f          Cobham Gaisler
  N2X PLL Dynamic Config. i/f          Cobham Gaisler
  N2X PLL Dynamic Config. i/f          Cobham Gaisler
  N2X PLL Dynamic Config. i/f          Cobham Gaisler
  General Purpose Register Bank        Cobham Gaisler
  
  Use command 'info sys' to print a detailed report of attached cores

grmon2> load build/sparc-rtems5-leon3-default/epoch01.exe 
  40000000 .text                    932.8kB / 932.8kB   [===============>] 100%
  400E9310 .rtemsroset                1.7kB /   1.7kB   [===============>] 100%
  40109A00 .data                     40.1kB /  40.1kB   [===============>] 100%
  40113A80 .rtemsrwset                1.6kB /   1.6kB   [===============>] 100%
  Total size: 976.18kB (42.99Mbit/s)
  Entry point 0x40000000
  Image /home/sebh/src/rtems-libbsd/build/sparc-rtems5-leon3-default/epoch01.exe loaded
  
grmon2> run
*** LIBBSD EPOCH 1 TEST ***
nexus0: <RTEMS Nexus device>
<TestEpoch01>
  <EnterExit activeWorker="1">
    <Counter worker="0">1051503</Counter>
  </EnterExit>
  <EnterExit activeWorker="2">
    <Counter worker="0">1038554</Counter>
    <Counter worker="1">1030405</Counter>
  </EnterExit>
  <EnterExit activeWorker="3">
    <Counter worker="0">1043626</Counter>
    <Counter worker="1">1035467</Counter>
    <Counter worker="2">1045570</Counter>
  </EnterExit>
  <EnterExit activeWorker="4">
    <Counter worker="0">1038445</Counter>
    <Counter worker="1">1030291</Counter>
    <Counter worker="2">1040402</Counter>
    <Counter worker="3">1040389</Counter>
  </EnterExit>
  <EnterListOpExit activeWorker="1">
    <Counter worker="0">978162</Counter>
    <Removals worker="0">100</Removals>
  </EnterListOpExit>
  <EnterListOpExit activeWorker="2">
    <Counter worker="0">877358</Counter>
    <Counter worker="1">884096</Counter>
    <Removals worker="0">50</Removals>
    <Removals worker="1">50</Removals>
  </EnterListOpExit>
  <EnterListOpExit activeWorker="3">
    <Counter worker="0">781217</Counter>
    <Counter worker="1">781410</Counter>
    <Counter worker="2">786162</Counter>
    <Removals worker="0">25</Removals>
    <Removals worker="1">25</Removals>
    <Removals worker="2">25</Removals>
  </EnterListOpExit>
  <EnterListOpExit activeWorker="4">
    <Counter worker="0">697105</Counter>
    <Counter worker="1">692517</Counter>
    <Counter worker="2">699049</Counter>
    <Counter worker="3">699011</Counter>
    <Removals worker="0">20</Removals>
    <Removals worker="1">19</Removals>
    <Removals worker="2">19</Removals>
    <Removals worker="3">19</Removals>
  </EnterListOpExit>
  <EnterExitPreempt activeWorker="1">
    <Counter worker="0">407866</Counter>
  </EnterExitPreempt>
  <EnterExitPreempt activeWorker="2">
    <Counter worker="0">408805</Counter>
    <Counter worker="1">413962</Counter>
  </EnterExitPreempt>
  <EnterExitPreempt activeWorker="3">
    <Counter worker="0">405455</Counter>
    <Counter worker="1">410591</Counter>
    <Counter worker="2">410587</Counter>
  </EnterExitPreempt>
  <EnterExitPreempt activeWorker="4">
    <Counter worker="0">403170</Counter>
    <Counter worker="1">408273</Counter>
    <Counter worker="2">408253</Counter>
    <Counter worker="3">408248</Counter>
  </EnterExitPreempt>
  <EnterListOpExitPreempt activeWorker="1">
    <Counter worker="0">394380</Counter>
    <Removals worker="0">66</Removals>
  </EnterListOpExitPreempt>
  <EnterListOpExitPreempt activeWorker="2">
    <Counter worker="0">375297</Counter>
    <Counter worker="1">373378</Counter>
    <Removals worker="0">32</Removals>
    <Removals worker="1">32</Removals>
  </EnterListOpExitPreempt>
  <EnterListOpExitPreempt activeWorker="3">
    <Counter worker="0">354052</Counter>
    <Counter worker="1">354322</Counter>
    <Counter worker="2">356218</Counter>
    <Removals worker="0">27</Removals>
    <Removals worker="1">27</Removals>
    <Removals worker="2">27</Removals>
  </EnterListOpExitPreempt>
  <EnterListOpExitPreempt activeWorker="4">
    <Counter worker="0">337953</Counter>
    <Counter worker="1">335772</Counter>
    <Counter worker="2">339026</Counter>
    <Counter worker="3">337409</Counter>
    <Removals worker="0">24</Removals>
    <Removals worker="1">24</Removals>
    <Removals worker="2">23</Removals>
    <Removals worker="3">23</Removals>
  </EnterListOpExitPreempt>
  <ThreadLocalMutex activeWorker="1">
    <Counter worker="0">754001</Counter>
  </ThreadLocalMutex>
  <ThreadLocalMutex activeWorker="2">
    <Counter worker="0">759228</Counter>
    <Counter worker="1">753117</Counter>
  </ThreadLocalMutex>
  <ThreadLocalMutex activeWorker="3">
    <Counter worker="0">753263</Counter>
    <Counter worker="1">746993</Counter>
    <Counter worker="2">754783</Counter>
  </ThreadLocalMutex>
  <ThreadLocalMutex activeWorker="4">
    <Counter worker="0">718739</Counter>
    <Counter worker="1">712194</Counter>
    <Counter worker="2">720337</Counter>
    <Counter worker="3">720329</Counter>
  </ThreadLocalMutex>
  <EnterMutexExitPreempt activeWorker="1">
    <Counter worker="0">270400</Counter>
  </EnterMutexExitPreempt>
  <EnterMutexExitPreempt activeWorker="2">
    <Counter worker="0">264497</Counter>
    <Counter worker="1">262031</Counter>
  </EnterMutexExitPreempt>
  <EnterMutexExitPreempt activeWorker="3">
    <Counter worker="0">252632</Counter>
    <Counter worker="1">257983</Counter>
    <Counter worker="2">255668</Counter>
  </EnterMutexExitPreempt>
  <EnterMutexExitPreempt activeWorker="4">
    <Counter worker="0">245445</Counter>
    <Counter worker="1">249025</Counter>
    <Counter worker="2">247358</Counter>
    <Counter worker="3">249281</Counter>
  </EnterMutexExitPreempt>
</TestEpoch01>
                             STACK USAGE BY THREAD
ID         NAME                  LOW        HIGH       CURRENT     AVAIL   USED
0x09010001 IDLE                  0x4019b780 0x4019c77f 0x4019c4d8   4080    760
0x09010002 IDLE                  0x4019c788 0x4019d787 0x4019d4e0   4080    584
0x09010003 IDLE                  0x4019d790 0x4019e78f 0x4019e4e8   4080    760
0x09010004 IDLE                  0x4019e798 0x4019f797 0x4019f4f0   4080    584
0x0a010001 UI1                   0x4019fa28 0x401a7a27 0x401a7640  32752   2960
0x0a010002 TIME                  0x401a8278 0x401b0277 0x401aff98  32752   1408
0x0a010003 IRQS                  0x401b02f8 0x401b82f7 0x401b8018  32752    924
0x0a010004 IRQS                  0x401b8300 0x401c02ff 0x401c0020  32752    924
0x0a010005 IRQS                  0x401c0308 0x401c8307 0x401c8028  32752    924
0x0a010006 IRQS                  0x401c8310 0x401d030f 0x401d0030  32752    924
0x0a010007 thread taskq          0x401e2a60 0x401eaa5f 0x401ea780  32752    924
0x0a010008 swi6: Giant tas       0x401eac40 0x401f2c3f 0x401f2960  32752    924
0x0a010009 swi6: task queu       0x401f2e20 0x401fae1f 0x401fab40  32752    924
0x0a01000a kqueue_ctx task       0x401faf10 0x40202f0f 0x40202c30  32752    924
0x0a01000b config_0              0x40203008 0x4020b007 0x4020ad28  32752    924
0x0a01000c swi5: fast task       0x4020b1e8 0x402131e7 0x40212f08  32752    924
0x0a01000d swi1: netisr 0        0x40213340 0x4021b33f 0x4021b060  32752    924
0x0a01000e softirq_0             0x40233ef0 0x4023beef 0x4023bc10  32752    924
0x00000000 Interrupt Stack       0x400e9a00 0x400ea9ff 0x00000000   4080   1348
0x00000001 Interrupt Stack       0x400eaa00 0x400eb9ff 0x00000000   4080   1348
0x00000002 Interrupt Stack       0x400eba00 0x400ec9ff 0x00000000   4080   1348
0x00000003 Interrupt Stack       0x400eca00 0x400ed9ff 0x00000000   4080   1348
*** END OF TEST LIBBSD EPOCH 1 ***
  
  CPU 0:  Program exited normally.
  CPU 1:  Power down mode
  CPU 2:  Power down mode
  CPU 3:  Power down mode


More information about the devel mailing list