You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
A thread is never executed when attempting 3 threads on 2 harts using RV32I ISA. The test passes when there are 4 harts or when using 64-bit ISA.
To Reproduce
cd threading/pthreads/permute
make clean && make -j
All issues must be accompanied by:
The version of SST utilized (sst --version; sst-config --CXX; sst-config --ELEMENT_CXXFLAGS)
SST-Core Version (13.0.0)
clang++
-std=c++17 -fPIC -DHAVE_CONFIG_H -I/Users/kgriesser/local/sstcore-13.0.0/include
The source code branch being used
The last commit hash 2f2bda7 (HEAD -> devel, origin/devel
The compiler utilized to build Rev
Apple clang version 15.0.0 (clang-1500.0.40.1)
The compiler utilized to build the test
riscv64-unknown-elf-g++ (g2ee5e430018-dirty) 12.2.0
The python or JSON simulation input
C/CXX test source (or mention which test in the current source tree failed)
See tests/threading/pthreads/permute
Expected behavior
No assertions
Trace
Passing case on RV64G
RevCPU[cpu0:ECALL_pthread_create:26000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:26000]: Creating new thread with PC = 0x14cf4
RevCPU[cpu0:ECALL_pthread_create:50000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:50000]: Creating new thread with PC = 0x14d4c
RevCPU[cpu0:ECALL_pthread_create:73000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:73000]: Creating new thread with PC = 0x14da4
RevCPU[cpu0:ECALL_pthread_join:89000]: ECALL: pthread_join called by thread 1 on hart 0
RevCPU[cpu0:Render:484000]: Core 0; Hart 1; Thread 2197699622; *I 0x14d18:f6e1a023 sw a4, -160(gp) 0x193f0<-gp 0xa<-a4 [0x19350,4]<-0x0000000a
RevCPU[cpu0:ECALL_pthread_join:514000]: ECALL: pthread_join called by thread 1 on hart 0
RevCPU[cpu0:ECALL_pthread_join:530000]: ECALL: pthread_join called by thread 1 on hart 0 ### Read 0xa ok
RevCPU[cpu0:Render:539000]: Core 0; Hart 0; Thread 1; *I 0x14e98:f601a783 lw a5, -160(gp) 0x193f0<-gp 0x0000000a<-[0x19350,4] a5<-0xa
PASSES
Failing case on RV32I
Notice that we never call the function 'void *thread1()'
RevCPU[cpu0:ECALL_pthread_create:25000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:25000]: Creating new thread with PC = 0x1462c
RevCPU[cpu0:ECALL_pthread_create:49000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:49000]: Creating new thread with PC = 0x14678
RevCPU[cpu0:ECALL_pthread_create:72000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:72000]: Creating new thread with PC = 0x146c4
RevCPU[cpu0:ECALL_pthread_join:88000]: ECALL: pthread_join called by thread 1 on hart 0
Describe the bug
A thread is never executed when attempting 3 threads on 2 harts using RV32I ISA. The test passes when there are 4 harts or when using 64-bit ISA.
To Reproduce
cd threading/pthreads/permute
make clean && make -j
All issues must be accompanied by:
The version of SST utilized (
sst --version
;sst-config --CXX
;sst-config --ELEMENT_CXXFLAGS
)SST-Core Version (13.0.0)
clang++
-std=c++17 -fPIC -DHAVE_CONFIG_H -I/Users/kgriesser/local/sstcore-13.0.0/include
The source code branch being used
The last commit hash
2f2bda7 (HEAD -> devel, origin/devel
The compiler utilized to build Rev
Apple clang version 15.0.0 (clang-1500.0.40.1)
The compiler utilized to build the test
riscv64-unknown-elf-g++ (g2ee5e430018-dirty) 12.2.0
The python or JSON simulation input
C/CXX test source (or mention which test in the current source tree failed)
See tests/threading/pthreads/permute
Expected behavior
No assertions
Trace
Passing case on RV64G
RevCPU[cpu0:ECALL_pthread_create:26000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:26000]: Creating new thread with PC = 0x14cf4
RevCPU[cpu0:ECALL_pthread_create:50000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:50000]: Creating new thread with PC = 0x14d4c
RevCPU[cpu0:ECALL_pthread_create:73000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:73000]: Creating new thread with PC = 0x14da4
RevCPU[cpu0:ECALL_pthread_join:89000]: ECALL: pthread_join called by thread 1 on hart 0
enter void *thread2()
RevCPU[cpu0:Render:91000]: Core 0; Hart 0; Thread 1857172069; *I 0x14d4c:fe010113 addi sp, sp, -32 0x3fdbeff7<-sp sp<-0x3fdbefd7
enter void *thread3()
RevCPU[cpu0:Render:226000]: Core 0; Hart 0; Thread 2961362521; *I 0x14da4:fe010113 addi sp, sp, -32 0x3fc7eff6<-sp sp<-0x3fc7efd6
enter void *thread1() <- GOOD (missing from failing case)
RevCPU[cpu0:Render:362000]: Core 0; Hart 1; Thread 2197699622; *I 0x14cf4:fe010113 addi sp, sp, -32 0x3fefeff8<-sp sp<-0x3fefefd8
wrote 0xa
RevCPU[cpu0:Render:484000]: Core 0; Hart 1; Thread 2197699622; *I 0x14d18:f6e1a023 sw a4, -160(gp) 0x193f0<-gp 0xa<-a4 [0x19350,4]<-0x0000000a
RevCPU[cpu0:ECALL_pthread_join:514000]: ECALL: pthread_join called by thread 1 on hart 0
RevCPU[cpu0:ECALL_pthread_join:530000]: ECALL: pthread_join called by thread 1 on hart 0
### Read 0xa ok
RevCPU[cpu0:Render:539000]: Core 0; Hart 0; Thread 1; *I 0x14e98:f601a783 lw a5, -160(gp) 0x193f0<-gp 0x0000000a<-[0x19350,4] a5<-0xa
PASSES
Failing case on RV32I
Notice that we never call the function 'void *thread1()'
RevCPU[cpu0:ECALL_pthread_create:25000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:25000]: Creating new thread with PC = 0x1462c
RevCPU[cpu0:ECALL_pthread_create:49000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:49000]: Creating new thread with PC = 0x14678
RevCPU[cpu0:ECALL_pthread_create:72000]: ECALL: pthread_create called by thread 1 on hart 0
RevCPU[cpu0:CreateThread:72000]: Creating new thread with PC = 0x146c4
RevCPU[cpu0:ECALL_pthread_join:88000]: ECALL: pthread_join called by thread 1 on hart 0
enter void *thread2()
RevCPU[cpu0:Render:90000]: Core 0; Hart 0; Thread 501234749; *I 0x14678:fe010113 addi sp, sp, -32 0x3fdbeff7<-sp sp<-0x3fdbefd7
enter void *thread3()
RevCPU[cpu0:Render:193000]: Core 0; Hart 0; Thread 331638285; *I 0x146c4:fe010113 addi sp, sp, -32 0x3fc7eff6<-sp sp<-0x3fc7efd6
RevCPU[cpu0:ECALL_pthread_join:312000]: ECALL: pthread_join called by thread 1 on hart 0
RevCPU[cpu0:ECALL_pthread_join:328000]: ECALL: pthread_join called by thread 1 on hart 0
### FAILS HERE
### read 0 instead of 0xa
RevCPU[cpu0:Render:337000]: Core 0; Hart 0; Thread 1; *I 0x147a8:c341a783 lw a5, -972(gp) 0x181f0<-gp 0x00000000<-[0x17e24,4] a5<-0x0
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: