id = 2302 title = "qemu-x86_64 crashes with \"Illegal Instruction\" on SPECCPU2017 Benchmarks" state = "closed" created_at = "2024-04-23T06:44:19.463Z" closed_at = "2024-04-23T14:31:35.606Z" labels = ["accel: TCG", "target: i386"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2302" host-os = "Ubuntu 22.04.1" host-arch = "x86_64" qemu-version = "8.2.2" guest-os = "n/a" guest-arch = "n/a" description = """I am running qemu-x86_64 with SPEC CPU 2017 benchmarks, and the compiled benchmarks such as Perlbench will crash unexpectedly. I have changed to three other machines to run it and still get crashes on two of them, I don't know what's the problem and want some help.""" reproduce = """1. Compile SPEC CPU 2017 basic Perlbench binary. 2. Use the above command line to run it.""" additional = """I have added some debugging flags to qemu-x86_64 to test it. The "-d in_asm" flag gives me the instructions before the crash like this: ``` ---------------- IN: Perl_lex_start 0x555555678a79: 48 89 83 a8 00 00 00 movq %rax, 0xa8(%rbx) 0x555555678a80: e9 01 ff ff ff jmp 0x555555678986 ---------------- IN: Perl_lex_start 0x555555678986: 48 8b 50 10 movq 0x10(%rax), %rdx 0x55555567898a: 41 83 e4 16 andl $0x16, %r12d 0x55555567898e: 48 89 93 d0 00 00 00 movq %rdx, 0xd0(%rbx) 0x555555678995: 48 89 93 c0 00 00 00 movq %rdx, 0xc0(%rbx) 0x55555567899c: 62 .byte 0x62 qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction (core dumped) ```"""