[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1883268] [NEW] random errors on aarch64 when executing __aarch64_ca
From: |
Christophe Lyon |
Subject: |
[Bug 1883268] [NEW] random errors on aarch64 when executing __aarch64_cas8_acq_rel |
Date: |
Fri, 12 Jun 2020 14:37:58 -0000 |
Public bug reported:
Hello,
Since I upgraded to qemu-5.0 when executing the GCC testsuite,
I've noticed random failures of g++.dg/ext/sync-4.C.
I'm attaching the source of the testcase, the binary executable and the
qemu traces (huge, 111MB!) starting at main (with qemu-aarch64 -cpu
cortex-a57 -R 0 -d in_asm,int,exec,cpu,unimp,guest_errors,nochain)
The traces where generated by a CI build, I built the executable
manually but I expect it to be the same as the one executed by CI.
In seems the problem occurs in f13, which leads to a call to abort()
The preprocessed version of f13/t13 are as follows:
static bool f13 (void *p) __attribute__ ((noinline));
static bool f13 (void *p)
{
return (__sync_bool_compare_and_swap((ditype*)p, 1, 2));
}
static void t13 ()
{
try {
f13(0);
}
catch (...) {
return;
}
abort();
}
When looking at the execution traces at address 0x00400c9c, main calls f13,
which in turn calls __aarch64_cas8_acq_rel (at 0x00401084)
__aarch64_cas8_acq_rel returns to f13 (address 0x0040113c), then f13 returns to
main (0x0040108c) which then calls abort (0x00400ca0)
I'm not quite sure what's wrong :-(
I've not noticed such random problems with native aarch64 hardware.
** Affects: qemu
Importance: Undecided
Status: New
** Attachment added: "Source"
https://bugs.launchpad.net/bugs/1883268/+attachment/5383272/+files/sync-4.C
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1883268
Title:
random errors on aarch64 when executing __aarch64_cas8_acq_rel
Status in QEMU:
New
Bug description:
Hello,
Since I upgraded to qemu-5.0 when executing the GCC testsuite,
I've noticed random failures of g++.dg/ext/sync-4.C.
I'm attaching the source of the testcase, the binary executable and
the qemu traces (huge, 111MB!) starting at main (with qemu-aarch64
-cpu cortex-a57 -R 0 -d
in_asm,int,exec,cpu,unimp,guest_errors,nochain)
The traces where generated by a CI build, I built the executable
manually but I expect it to be the same as the one executed by CI.
In seems the problem occurs in f13, which leads to a call to abort()
The preprocessed version of f13/t13 are as follows:
static bool f13 (void *p) __attribute__ ((noinline));
static bool f13 (void *p)
{
return (__sync_bool_compare_and_swap((ditype*)p, 1, 2));
}
static void t13 ()
{
try {
f13(0);
}
catch (...) {
return;
}
abort();
}
When looking at the execution traces at address 0x00400c9c, main calls f13,
which in turn calls __aarch64_cas8_acq_rel (at 0x00401084)
__aarch64_cas8_acq_rel returns to f13 (address 0x0040113c), then f13 returns
to main (0x0040108c) which then calls abort (0x00400ca0)
I'm not quite sure what's wrong :-(
I've not noticed such random problems with native aarch64 hardware.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1883268/+subscriptions
- [Bug 1883268] [NEW] random errors on aarch64 when executing __aarch64_cas8_acq_rel,
Christophe Lyon <=
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Christophe Lyon, 2020/06/12
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Christophe Lyon, 2020/06/12
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Alex Bennée, 2020/06/12
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Richard Henderson, 2020/06/28
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Richard Henderson, 2020/06/28
- [Bug 1883268] Re: random errors on aarch64 when executing __aarch64_cas8_acq_rel, Christophe Lyon, 2020/06/29