dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.55k stars 4.54k forks source link

crossgen2 JIT stress testing #58388

Open BruceForstall opened 2 years ago

BruceForstall commented 2 years ago

Crossgen2 testing, such as the crossgen2 / r2r AzDO test jobs, work as follows:

  1. crossgen the framework
  2. crossgen every test
  3. Run the tests

Issues:

  1. For the modes that set the JIT stress variables, before running the tests, we set COMPlus variables, in the wrapper script. However, crossgen2 ignores environment variables so the compiled test doesn't get compiled with the stress mode. At best, if crossgen2 is compiled/run with a Checked JIT, crossgen2 itself might be compiled/run with the JIT stress mode.

  2. The JIT stress modes are not applied to the crossgen2 compilation of the framework assemblies

To do: decide exactly what should be affected by the JIT stress variables (presumably, the compilation of the framework and the compilation of each test; optionally, the compilation/run of crossgen2 itself), and adjust the AzDO pipelines to match.

@dotnet/jit-contrib

category:testing theme:testing skill-level:beginner cost:small impact:medium

ghost commented 2 years ago

Tagging subscribers to this area: @JulieLeeMSFT See info in area-owners.md if you want to be subscribed.

Issue Details
Crossgen2 testing, such as the crossgen2 / r2r AzDO test jobs, work as follows: 1. crossgen the framework 2. crossgen every test 3. Run the tests Issues: 1. For the modes that set the JIT stress variables, before running the tests, we set COMPlus variables, in the wrapper script. However, crossgen2 ignores environment variables so the compiled test doesn't get compiled with the stress mode. At best, if crossgen2 is compiled/run with a Checked JIT, crossgen2 itself might be compiled/run with the JIT stress mode. 2. The JIT stress modes are not applied to the crossgen2 compilation of the framework assemblies To do: decided exactly what should be affected by the JIT stress variables (presumably, the compilation of the framework and the compilation of each test; optionally, the compilation/run of crossgen2 itself), and adjust the AzDO pipelines to match. @dotnet/jit-contrib
Author: BruceForstall
Assignees: -
Labels: `JitStress`, `area-CodeGen-coreclr`
Milestone: 7.0.0