Project

General

Profile

Actions

Emulator Issues #13350

open

PowerPCTest fails on arm64

Added by jordi 9 months ago. Updated 9 months ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What's the problem? Describe what went wrong.

Dolphin test "PowerPC" fails on arm64/aarch64 (but not on amd64) builds, as can be seen in the Debian build logs:

https://buildd.debian.org/status/fetch.php?pkg=dolphin-emu&arch=arm64&ver=5.0-19870%2Bdfsg-1&stamp=1694047704&raw=0

What steps will reproduce the problem?

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Not tested (it's not trivial for me to test this).

Is the issue present in the latest beta version?

Yes, in 5.0-19870. It was not present in the previous build 19368. It also does not happen on amd64 builds.

What are your PC specifications? (CPU, GPU, Operating System, more)

Debian unstable

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

Debian builds against all possible system libraries.

Actions #1

Updated by JosJuice 9 months ago

The only commit in that time span that looks like it could be relevant is https://github.com/dolphin-emu/dolphin/commit/1ebec40e4d4c473bc717b1d5836b8320f4851388. Could you test if reverting it fixes the issue?

For reference, the unit tests are passing on our end on an Apple M1 test runner. And the instruction we started emitting because of that commit is required in all AArch64 implementations, so I'm not sure why it would be considered an illegal instruction only on some systems...

Actions #2

Updated by jordi 9 months ago

Hold on! There's something more subtle here, I think.

While working on testing a build with the patch removed, I noticed the non-patched 19870 release built in one of Debian's test arm64 machines.

That machine's CPU is:

Architecture:                       aarch64
CPU op-mode(s):                     32-bit, 64-bit
Byte Order:                         Little Endian
CPU(s):                             4
On-line CPU(s) list:                0-3
Thread(s) per core:                 1
Core(s) per socket:                 4
Socket(s):                          1
NUMA node(s):                       1
Vendor ID:                          APM
Model:                              1
Model name:                         X-Gene
Stepping:                           0x0
BogoMIPS:                           100.00
NUMA node0 CPU(s):                  0-3
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Mitigation; PTI
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass:    Vulnerable
Vulnerability Spectre v1:           Mitigation; __user pointer sanitization
Vulnerability Spectre v2:           Vulnerable
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected
Flags:                              fp asimd evtstrm cpuid

Looking at the history of Dolphin builds on arm64 (https://buildd.debian.org/status/logs.php?pkg=dolphin-emu&arch=arm64), I found out the previous release 19368 also failed with the same PowerPCTest error, but that build was retried, picked up by a different build daemon, and built successfully:

https://buildd.debian.org/status/fetch.php?pkg=dolphin-emu&arch=arm64&ver=5.0-19368%2Bdfsg-1&stamp=1686791824&raw=0
vs
https://buildd.debian.org/status/fetch.php?pkg=dolphin-emu&arch=arm64&ver=5.0-19368%2Bdfsg-2&stamp=1686833650&raw=0

So there's either some hardware difference that makes the build fail, or that particular test fails intermittently due to an unknown condition.

Actions

Also available in: Atom PDF