Skip to content

[ARM] Potential codegen issues on Graviton3 #100705

@redknightlois

Description

@redknightlois

Description

We have included Graviton3 chipsets on our testing matrix and found many different tests that error consistently. However, those errors are not triggering when run in the following platforms:

  • Linux x64
  • Windows x64
  • Windows x86

Moreover, when run continuously errors only trigger after 2 conditions:

  • It is run in arm64 (reproduced on Graviton3)
  • A set amount of iterations happened (always beyond 128)
  • It is run in release mode

At first we suspected that we were doing something wrong on our end [its possible we are corrupting the heap somehow] but the deterministic nature of the failure and repeatability after it triggers for the first time makes us suspect it is something more permanent than a heap corruption.

I include several different ways to reproduce the errors.

Reproduction Steps

Download any of the following reproductions:

https://github.com/redknightlois/ravendb/tree/numerical-difference
https://github.com/redknightlois/ravendb/tree/failed-datetime-comparison
https://github.com/redknightlois/ravendb/tree/failed-patching

Run them in order to ensure that optimizations will kick in:

cd test/Tryouts
dotnet run -c Release

Observe the errors after a set amount of loops.

Expected behavior

They should execute the 1000 loops without printing any exception.

Actual behavior

Trigger exception repeatedly after a set amount of loops.

Regression?

No response

Known Workarounds

None

Configuration

.NET SDK:
 Version:           8.0.103
 Commit:            6a90b4b4bc
 Workload version:  8.0.100-manifests.e99a2be4

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-arm64
 Base Path:   /usr/lib/dotnet/sdk/8.0.103/

.NET workloads installed:
 Workload version: 8.0.100-manifests.e99a2be4
There are no installed workloads to display.

Host:
  Version:      8.0.3
  Architecture: arm64
  Commit:       9f4b1f5d66

.NET SDKs installed:
  8.0.103 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.17 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.3 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.17 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.3 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other information

No response

Metadata

Metadata

Assignees

Labels

arch-arm64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIneeds-further-triageIssue has been initially triaged, but needs deeper consideration or reconsideration

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions