On Mon, Sep 3, 2018 at 8:16 PM, Pranith Kumar <bobby.pr...@gmail.com> wrote:
> On Mon, Sep 3, 2018 at 1:07 AM Michael Clark <m...@sifive.com> wrote: > > > > Thanks. I was just about to log an issue in the riscv-qemu issue tracker > on GitHub. > > > > I reproduced it on my side. The fact that it is causes QEMU user to > crash in translate.c is interesting. > > > > I ran your program with -d in_asm and it appears to crash in thread::join > > Interestingly, qemu-x86_64 crashes too. But running natively on x86 > works fine. There is something off somewhere... > Indeed. Another data-point. I tested it in both qemu-2.12 and qemu-3.0. It still crashed in translate.c in qemu-2.12, but on another line. There was quite a bit of restructuring of target/riscv/translate.c in qemu-3.0, which is why I tried qemu-2.12, however, it seems that is likely not the cause. This was the backtrace from riscv-qemu-2.12: Thread 1 "qemu-riscv64" received signal SIGSEGV, Segmentation fault. 0x00005555555e1347 in gen_intermediate_code (cs=cs@entry=0x555557905590, tb=tb@entry=0x5555558e1a00 <static_code_gen_buffer+9952>) at /home/mjc/src/sifive/riscv-qemu/target/riscv/translate.c:1934 1934 if (num_insns == max_insns && (tb->cflags & CF_LAST_IO)) { (gdb) print tb $1 = (TranslationBlock *) 0x5555558e1a00 <static_code_gen_buffer+9952> (gdb) quit A debugging session is active. ~/quickht$ qemu-x86_64 ./bench -t 2 -u 2 > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > Segmentation fault > > ~/quickht$ ./bench -t 2 -u 2 > Comparisons: 23922 > Buckets touched: 4933 > Operations: 2000 >