qemu-devel
[Top][All Lists]
Advanced

[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 14:59:08 +0100
User-agent: Mozilla Thunderbird

Dne 27. 11. 23 v 10:37 Peter Maydell napsal(a):
> On Sat, 25 Nov 2023 at 13:09, Petr Cvek <petrcvekcz@gmail.com> wrote:
>>
>> It seems there is a bug in SIGALRM handling when 486 system emulates x86_64 
>> code.
> 
> 486 host is pretty well out of support currently. Can you reproduce
> this on a less ancient host CPU type ?
> 

It seems it only fails when the code is compiled for i486. QEMU built with the 
same compiler with -march=i586 and above runs on the same physical hardware 
without a problem. All -march= variants were executed on ryzen 3600.

>> 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)
>> 0x48874a != 0x3c69e10
>> **
>> 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)
> 
> What compiler version do you build QEMU with? That
> assert is there because we have seen some buggy compilers
> in the past which don't correctly preserve the variable
> value as the setjmp/longjmp spec requires them to.
> 

i486 and i586+ code variants were compiled with GCC 13.2.0 (more exactly, 
slackware64 current multilib distribution).

i486 binary which runs on the real 486 is also GCC 13.2.0 and installed as a 
part of the buildroot crosscompiler (about two week old git snapshot).

> thanks
> -- PMM

best regards,
Petr



reply via email to

[Prev in Thread] Current Thread [Next in Thread]