Oi Rafael, Thanks for the detailed report.
I don't think there is any advantage of using the pthread library currently, at least on ARM. I reproduce on e96ccec8159f91d60bed8342184fb969b06eaf4f Ubuntu 19.04, but only with Ruby. Without Ruby and everything else the same, it works. What makes you think that this is a syscall deadlock bug rather than a Ruby bug, considering that the error message "panic: Page table fault when accessing virtual address 0" suggests a memory error? Worth noting that there was a more or less recent SE deadlock ARM fix at: https://gem5-review.googlesource.com/c/public/gem5/+/21606 ________________________________ From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Rafael Pintar Alevato <rpa.alev...@gmail.com> Sent: Tuesday, November 12, 2019 7:32 PM To: gem5-users@gem5.org <gem5-users@gem5.org> Subject: [gem5-users] Bug when using mutex in ARM SE Hello everyone! I'm trying to use a program that uses mutex, but it was entering in deadlock. It was using standard mutex and not pthread library, so first I tried changing it to the pthread mutex. It was still entering in deadlock. After this I cloned a new clean gem5 and compiled it to run some tests. After running the standard tests for pthreads in ARM 64 I had some bugs. Full gem5 output below. Does anyone know if I can fix this? Thank you in advance, Rafael Alevato. Stats: OS: Linux Mint 18.1 Serena Kernel: 4.4.0-53-generic g++: 5.4.0 aarch64-linux-gnu-g++: 5.4.0 gem5 Compiling Command Line: scons build/ARM/gem5.opt CXX=g++ RUBY=True PROTOCOL=MOESI_CMP_directory -j4 Pthread Tests Compiling Command Line: make -f Makefile.aarch64 Execution Command Line: build/ARM/gem5.opt configs/example/se.py -n 16 --cpu-type DerivO3CPU --mem-size 4GB --ruby --l1d_assoc=4 --l1i_assoc=4 --l2_assoc=16 --cacheline_size 64 --l1i_size 64kB --l1d_size 64kB --l2_size 4MB --cmd pthread-tests-aarch64/test_pthread_mutex gem5 Output: gem5 Simulator System. http://gem5.org gem5 is copyrighted software; use the --copyright option for details. gem5 compiled Nov 12 2019 15:50:50 gem5 started Nov 12 2019 16:21:56 gem5 executing on eda01, pid 17621 command line: build/ARM/gem5.opt configs/example/se.py -n 16 --cpu-type DerivO3CPU --mem-size 4GB --ruby --l1d_assoc=4 --l1i_assoc=4 --l2_assoc=16 --cacheline_size 64 --l1i_size 64kB --l1d_size 64kB --l2_size 4MB --cmd pthread-tests-aarch64/test_pthread_mutex Global frequency set at 1000000000000 ticks per second warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (4096 Mbytes) 0: system.remote_gdb: listening for remote gdb on port 7000 0: system.remote_gdb: listening for remote gdb on port 7001 0: system.remote_gdb: listening for remote gdb on port 7002 0: system.remote_gdb: listening for remote gdb on port 7003 0: system.remote_gdb: listening for remote gdb on port 7004 0: system.remote_gdb: listening for remote gdb on port 7005 0: system.remote_gdb: listening for remote gdb on port 7006 0: system.remote_gdb: listening for remote gdb on port 7007 0: system.remote_gdb: listening for remote gdb on port 7008 0: system.remote_gdb: listening for remote gdb on port 7009 0: system.remote_gdb: listening for remote gdb on port 7010 0: system.remote_gdb: listening for remote gdb on port 7011 0: system.remote_gdb: listening for remote gdb on port 7012 0: system.remote_gdb: listening for remote gdb on port 7013 0: system.remote_gdb: listening for remote gdb on port 7014 0: system.remote_gdb: listening for remote gdb on port 7015 **** REAL SIMULATION **** info: Entering event queue @ 0. Starting simulation... warn: Replacement policy updates recently became the responsibility of SLICC state machines. Make sure to setMRU() near callbacks in .sm files! warn: ignoring syscall set_robust_list(...) warn: ignoring syscall rt_sigaction(...) warn: ignoring syscall rt_sigaction(...) warn: ignoring syscall rt_sigprocmask(...) (further warnings will be suppressed) info: Increasing stack size by one page. warn: ignoring syscall mprotect(...) warn: ClockedObject: Already in the requested power state, request ignored warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall mprotect(...) warn: User mode does not have SPSR warn: User mode does not have SPSR warn: ignoring syscall set_robust_list(...) warn: ignoring syscall madvise(...) warn: ignoring syscall madvise(...) panic: Page table fault when accessing virtual address 0 Memory Usage: 5171676 KBytes Program aborted at tick 2488935000 --- BEGIN LIBC BACKTRACE --- build/ARM/gem5.opt(_Z15print_backtracev+0x28)[0x1e96f38] build/ARM/gem5.opt(_Z12abortHandleri+0x46)[0x1ea7a66] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f803e38c390] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7f803cd88428] /lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7f803cd8a02a] build/ARM/gem5.opt[0xb6a86f] build/ARM/gem5.opt(_ZN21GenericPageTableFault6invokeEP13ThreadContextRK14RefCountingPtrI10StaticInstE+0x57)[0x1ed38d7] build/ARM/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE10commitHeadERK14RefCountingPtrI13BaseO3DynInstIS0_EEj+0x265)[0x22ea6b5] build/ARM/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE11commitInstsEv+0x471)[0x22eb761] build/ARM/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE6commitEv+0x9cc)[0x22ed93c] build/ARM/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE4tickEv+0xb3)[0x22ee863] build/ARM/gem5.opt(_ZN9FullO3CPUI9O3CPUImplE4tickEv+0x152)[0x22f9e32] build/ARM/gem5.opt(_ZN10EventQueue10serviceOneEv+0xc5)[0x1e9dc55] build/ARM/gem5.opt(_Z9doSimLoopP10EventQueue+0x50)[0x1ebace0] build/ARM/gem5.opt(_Z8simulatem+0xd1b)[0x1ebbdcb] build/ARM/gem5.opt[0x1a34659] build/ARM/gem5.opt[0x19d7809] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7852)[0x7f803e649772] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f803e648f1d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f803e648f1d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f803e648f1d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f803e641da9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x613b)[0x7f803e64805b] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f803e648f1d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f803e78005c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f803e641da9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7f803e6bc1f6] --- END LIBC BACKTRACE --- Aborted
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users