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.
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:
(note no mention of
DOTNET_TieredPGOin the above. Instead it is set in the ambient environment: