Project

General

Profile

Emulator Issues #6234

Cortex-A15 TLBI errata causes Fastmem issues.

Added by Sonicadvance1 about 8 years ago. Updated 4 months ago.

Status:
Invalid
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
Android
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
Yes
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

As per these two issues:
https://gerrit.chromium.org/gerrit/#/c/47427/
https://code.google.com/p/chromium/issues/detail?id=226280

There is a TLB errata on Cortex-A15 (r0p0..r3p2) that is hit quite frequently by our JIT implementation.

This is why in the ARMEmitter, I'm checking if it is a Linux build and if so, flush the entire cache instead of the singular part. I hadn't tested on my ODROID-X to see if the issue was there as well.

For now, setting the entire cache to get wiped each time tends to be stable enough, unless the fastmem implementation is enabled.

I'll need to add a check in to the ArmCPUDetect for hardware revision to see if it is within the range of CPU revisions since I don't want to deal with different devices that may or may not have the errata fix built in.

Then add a function/value for a check of bHasBuggyTLB which will enable full cache wiping and disable fastmem implementation.

This in turn requires me to add the CPU option for enabling and disabling fastmem at runtime.

History

#1 Updated by Sonicadvance1 about 8 years ago

Note for later. From /proc/cpuinfo, the CPU Variant is the major revision number, and CPU revision in the minor revision number.
I'll need to use these two values to determine if it is a errata part or not.

#2 Updated by Sonicadvance1 about 8 years ago

  • Status changed from New to Invalid

I've made a test case and according to ChromeOS devs it didn't trigger the errata. I guess the issue is elsewhere.

Also available in: Atom PDF