dotnet / dotnet/performance

Cannot use Large Pages when running GC benchmarks

Open
#1,960 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

I'm unable to run the GC benchmarks when I set `COMPlus_GCLargePages=true` in the bench file. Other applications that use large pages work fine and Local Security Policy has permissions correctly setup for the user to request large pages.

Steps to reproduce:

**high_memory_large_pages.yaml**

```yaml
vary: coreclr
test_executables:
defgcperfsim: C:\Users\alex\source\repos\performance\artifacts\bin\GCPerfSim\release\netcoreapp5.0\GCPerfSim.dll
coreclrs:
a:
core_root: C:\Users\alex\source\repos\runtime-master\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root
options:
default_iteration_count: 1
default_max_seconds: 300
collect: thread_times
common_config:
complus_gcserver: true
complus_gcconcurrent: false
complus_gcheapcount: 110
complus_gclargepages: true
configs:
80pct:
memory_load:
percent: 80
benchmarks:
a:
arguments:
tc: 110
tagb: 40
tlgb: 5
lohar: 0
pohar: 0
sohsr: 100-4000
lohsr: 102400-204800
pohsr: 100-204800
sohsi: 30
lohsi: 0
pohsi: 0
sohpi: 50
lohpi: 0
sohfi: 0
lohfi: 0
pohfi: 0
allocType: reference
testKind: time
scores:
speed:
FirstToLastGCSeconds:
weight: 1
PauseDurationMSec_95P:
weight: 1
space:
Gen2ObjSpaceBeforeMB_Sum_MeanWhereIsBlockingGen2:
weight: -1
Gen2ObjSizeAfterMB_Sum_MeanWhereIsBlockingGen2:
weight: 1
```

```shell
$ py . run .\bench\suite-default\high_memory_large_pages.yaml --overwrite
09:59:47 Running defgcperfsim__a__80pct__a__0

Setting up memory load...
Done!

C:\Users\alex\source\repos\performance\src\benchmarks\gc\src\dependencies\PerfView.exe start -NoV2Rundown -NoNGENRundown -NoRundown -AcceptEULA -NoGUI -Merge:true -SessionName:CoreGCBench -zip:false -OnlyProviders:ClrPrivate:1:5,Clr:1:5 -ClrEvents:GC+Stack -KernelEvents:ThreadTime -LogFile:C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml.out\defgcperfsim__a__80pct__a__0.perfview-log.txt -CircularMB:1024 -BufferSizeMB:1024 -DataFile:C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml.out\defgcperfsim__a__80pct__a__0.etl
C:\Users\alex\source\repos\runtime-master\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\CoreRun.exe C:\Users\alex\source\repos\performance\artifacts\bin\GCPerfSim\release\netcoreapp5.0\GCPerfSim.dll -tc 110 -tagb 40.0 -tlgb 5.0 -lohar 0 -pohar 0 -sohsi 30 -lohsi 0 -pohsi 0 -sohsr 100-4000 -lohsr 102400-204800 -pohsr 100-204800 -sohpi 50 -lohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time (cwd C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml.out\defgcperfsim__a__80pct__a__0)
BEGIN: coreclr_initialize failed - Error: 0x8013200e
END: coreclr_initialize failed - Error: 0x8013200e
C:\Users\alex\source\repos\performance\src\benchmarks\gc\src\dependencies\PerfView.exe stop -NoV2Rundown -NoNGENRundown -NoRundown -AcceptEULA -NoGUI -Merge:true -SessionName:CoreGCBench -zip:false -OnlyProviders:ClrPrivate:1:5,Clr:1:5 -ClrEvents:GC+Stack -KernelEvents:ThreadTime -LogFile:C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml.out\defgcperfsim__a__80pct__a__0.perfview-log.txt -CircularMB:1024 -BufferSizeMB:1024 -DataFile:C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml.out\defgcperfsim__a__80pct__a__0.etl

========= *WARNING*: Test 'C:\Users\alex\source\repos\performance\src\benchmarks\gc\bench\suite-default\high_memory-test.yaml' encountered errors. =========

*** Here is a summary of the problems found: ***

======= Executable 'defgcperfsim' =======

===== Core 'a' =====

=== Configuration '80pct' ===

- Benchmark: 'a' -
Iteration: 0
Error Message: Process failed with code 4294967295

Stack Trace:
File ".\src\exec\run_tests.py", line 182, in _run_all_benchmarks
t.out,
File ".\src\exec\run_single_test.py", line 110, in run_single_test
partial_test_status = _do_run_single_test(built, t, out)
File ".\src\exec\run_single_test.py", line 186, in _do_run_single_test
return _run_single_test_windows_perfview(built, t, out)
File ".\src\exec\run_single_test.py", line 417, in _run_single_test_windows_perfview
run_process, start_time_seconds=start_time_seconds, timeout_seconds=timeout_seconds
File ".\src\commonlib\util.py", line 481, in wait_on_process_with_timeout
assert killed or process.returncode == 0, f"Process failed with code {process.returncode}"
```

Please let me know if there is any other information I can provide. Thanks!

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.