qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] tcg/tcg.c:1892: tcg fatal error


From: Laurent Desnogues
Subject: Re: [Qemu-devel] tcg/tcg.c:1892: tcg fatal error
Date: Fri, 22 Apr 2011 00:39:19 +0200

On Thu, Apr 21, 2011 at 9:45 PM, Igor Kovalenko
<address@hidden> wrote:
> On Thu, Apr 21, 2011 at 7:44 PM, Laurent Desnogues
> <address@hidden> wrote:
>> On Thu, Apr 21, 2011 at 4:57 PM, Artyom Tarasenko <address@hidden> wrote:
>>> On Tue, Apr 12, 2011 at 4:14 AM, Igor Kovalenko
>>> <address@hidden> wrote:
>>>>>> Do you have public test case?
>>>>>> It is possible to code this delay slot write test but real issue may
>>>>>> be corruption elsewhere.
>>>
>>> The test case is trivial: it's just the two instructions, branch and wrpr.
>>>
>>>> In theory there could be multiple issues including compiler induced ones.
>>>> I'd prefer to see some kind of reproducible testcase.
>>>
>>> Ok, attached a 40 byte long test (the first 32 bytes are not used and
>>> needed only because the bios entry point is 0x20).
>>>
>>> $ git pull && make && sparc64-softmmu/qemu-system-sparc64 -bios
>>> test-wrpr.bin -nographic
>>> Already up-to-date.
>>> make[1]: Nothing to be done for `all'.
>>> /mnt/terra/projects/vanilla/qemu/tcg/tcg.c:1892: tcg fatal error
>>> Aborted
>>
>> The problem seems to be that wrpr is using a non-local
>> TCG tmp (cpu_tmp0).
>
> Just tried the test case with write to %pil - seems like write itself is OK.
> The issue appears to be with save_state() call since adding save_state
> to %pil case provokes the same tcg abort.

The problem is that cpu_tmp0, not being a local tmp, doesn't
need to be saved across helper calls.  This results in the
TCG "optimizer" getting rid of it even though it's later used.
Look at the log and you'll see what I mean :-)


Laurent



reply via email to

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