Skip to content

revise how we pass config settings to benchmarkdotnet for SPMI collections #86410

@AndyAyersMS

Description

@AndyAyersMS

Currently we set some env vars via command line and inherit others from the environment.

This means the build and BDN host process are subject to some of the config settings, which isn't a problem but also isn't necessary or useful.

Eg for the benchmarks_pgo run, we see the actual benchmark process invocation is:

/datadisks/disk1/work/A7CB0920/p/superpmi/corerun --partition-count 30 --partition-index 0 --envVars DOTNET_JitName:$JitName  DOTNET_ZapDisable:1  DOTNET_ReadyToRun:0 --iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --logBuildOutput

(note no mention of DOTNET_TieredPGO in the above. Instead it is set in the ambient environment:

[20:26:36] Starting collection using command
[20:26:36] export SuperPMIShimLogPath=/datadisks/disk1/work/A7CB0920/t/tmpv0oc5gd6
[20:26:36] export SuperPMIShimPath=/datadisks/disk1/work/A7CB0920/p/superpmi/libclrjit.so
[20:26:36] export DOTNET_EnableExtraSuperPmiQueries=1
[20:26:36] export DOTNET_TieredCompilation=1
[20:26:36] export DOTNET_TieredPGO=1
[20:26:36] export DOTNET_JitPath=/datadisks/disk1/work/A7CB0920/p/superpmi/libsuperpmi-shim-collector.so
[20:26:36] export DOTNET_JitName=libsuperpmi-shim-collector.so
[20:26:36] Collecting using command:
[20:26:36]   /datadisks/disk1/work/A7CB0920/t/tmpo5j9iv_h/run_microbenchmarks.sh 
....

Also for PGO/Tiering we really should be running more iterations and doing normal warmup.

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions