[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [BUG] accel/tcg: cpu_exec_longjmp_cleanup: assertion failed: (cpu ==
From: |
Petr Cvek |
Subject: |
Re: [BUG] accel/tcg: cpu_exec_longjmp_cleanup: assertion failed: (cpu == current_cpu) |
Date: |
Wed, 29 Nov 2023 18:46:46 +0100 |
User-agent: |
Mozilla Thunderbird |
Dne 29. 11. 23 v 15:25 Richard Henderson napsal(a):
> On 11/25/23 07:08, Petr Cvek wrote:
>> ERROR:../accel/tcg/cpu-exec.c:546:cpu_exec_longjmp_cleanup: assertion
>> failed: (cpu == current_cpu)
>> Bail out! ERROR:../accel/tcg/cpu-exec.c:546:cpu_exec_longjmp_cleanup:
>> assertion failed: (cpu == current_cpu)
>> #
>>
>> The code fails either with or without -singlestep, the command line:
>>
>> /usr/bin/qemu-x86_64 -L /opt/x86_64 -strace -singlestep
>> /opt/x86_64/alarm.bin
>>
>> Source code of QEMU 8.1.1 was modified with patch "[PATCH] qemu/timer: Don't
>> use RDTSC on i486" [1],
>> with added few ioctls (not relevant) and cpu_exec_longjmp_cleanup() now
>> prints current pointers of
>> cpu and current_cpu (line "0x48874a != 0x3c69e10").
>
>
> If you try this again with 8.2-rc2, you should not see an assertion failure.
> You should see instead
>
> QEMU internal SIGILL {code=ILLOPC, addr=0x12345678}
>
> which I think more accurately summarizes the situation of attempting RDTSC on
> hardware that does not support it.
>
>
Compilation of vanilla qemu v8.2.0-rc2 with -march=i486 by GCC 13.2.0 and
running the resulting binary on ryzen still leads to:
**
ERROR:../accel/tcg/cpu-exec.c:533:cpu_exec_longjmp_cleanup: assertion failed:
(cpu == current_cpu)
Bail out! ERROR:../accel/tcg/cpu-exec.c:533:cpu_exec_longjmp_cleanup: assertion
failed: (cpu == current_cpu)
Aborted
>
> r~
Petr