Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions