dotnet / dotnet/performance

GCPerfSim fails with an Overflow Arithmetic Exception

Open
#1,616 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
F#
Stars
773
Forks
301
Avg merge
6d 9h
Merged PRs (30d)
15

Description

As of recent, `GCPerfSim` has been no longer working. When running any benchmark (either standalone or through Python), it fails with an `overflow Arithmetic Exception`. Following is the command line and the error message.

```
C:\performance\artifacts\bin\GCPerfSim\release\netcoreapp5.0\GCPerfSim.exe -tc 1 -tagb 150.0 -tlgb 2.0 -lohar 0 -pohar 0 -sohsi 50 -lohsi 0 -pohsi 0 -sohsr 10-4000 -lohsr 102400-204800 -pohsr 100-204800 -sohpi 0 -lohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time
GCPerfSim C:\performance\artifacts\bin\GCPerfSim\release\netcoreapp5.0\GCPerfSim.dll -tc 1 -tagb 150.0 -tlgb 2.0 -lohar 0 -pohar 0 -sohsi 50 -lohsi 0 -pohsi 0 -sohsr 10-4000 -lohsr 102400-204800 -pohsr 100-204800 -sohpi 0 -lohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time
allocating 161,061,273,600 per thread
Running 64-bit? True
PID: 13084
Running 1 threads.
time, ReferenceItem, tlgb 2, tagb 150, totalMins 0, buckets:
10-4000; surv every 50; pin every 0; weight 1000; isPoh False
Arithmetic operation resulted in an overflow.
at SimpleRefPayLoad..ctor(UInt32 size, Boolean isPinned, Boolean isPoh) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 429
at ReferenceItemWithSize..ctor(UInt32 size, Boolean isPinned, Boolean isPoh) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 527
at ReferenceItemWithSize.ReferenceItemWithSizeNonFinalizable..ctor(UInt32 size, Boolean isPinned, Boolean isPoh) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 586
at ReferenceItemWithSize.New(UInt32 size, Boolean isPinned, Boolean isFinalizable, Boolean isPoh) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 515
at MemoryAlloc.JustMakeObject() in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2143
at MemoryAlloc.MakeObjectAndTouchPage() in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2151
at MemoryAlloc.GoToNextPhase() in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2083
at MemoryAlloc..ctor(UInt32 _threadIndex, PerThreadArgs& args) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 1823
at ThreadLauncher.Run() in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 1720
at MemoryAlloc.DoTest(Args& args, Int32 currentPid) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2387
at MemoryAlloc.MainInner(Args args) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2461
at MemoryAlloc.Main(String[] argsStrs) in C:\performance\src\benchmarks\gc\src\exec\GCPerfSim\GCPerfSim.cs:line 2413
```

The same behavior is observed when running `GCPerfSim.dll` by means of a `CoreRun.exe`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.