diff --git a/scripts/run_performance_job.py b/scripts/run_performance_job.py index e8026a71639..06ee77b9c43 100644 --- a/scripts/run_performance_job.py +++ b/scripts/run_performance_job.py @@ -553,6 +553,10 @@ def get_bdn_arguments( bdn_arguments += ["\\\"--wasmArgs=--experimental-wasm-exnref\\\""] if runtime_type == "coreclr_r2r_interpreter": + bdn_arguments += [ + "--msbuild-arguments", + "/p:PublishReadyToRunCrossgen2ExtraArgs=--target-allows-runtime-code-generation:false", + ] if os_group == "windows": bdn_arguments += [ "--runtimes", "r2r11_0", diff --git a/src/benchmarks/micro/Program.cs b/src/benchmarks/micro/Program.cs index 8d2a590cae9..28e9eca5312 100644 --- a/src/benchmarks/micro/Program.cs +++ b/src/benchmarks/micro/Program.cs @@ -22,6 +22,7 @@ static async Task Main(string[] args) int? partitionIndex; List exclusionFilterValue; List categoryExclusionFilterValue; + List msBuildArguments; bool getDiffableDisasm; // Parse and remove any additional parameters that we need that aren't part of BDN @@ -31,6 +32,7 @@ static async Task Main(string[] args) argsList = CommandLineOptions.ParseAndRemoveIntParameter(argsList, "--partition-index", out partitionIndex); argsList = CommandLineOptions.ParseAndRemoveStringsParameter(argsList, "--exclusion-filter", out exclusionFilterValue); argsList = CommandLineOptions.ParseAndRemoveStringsParameter(argsList, "--category-exclusion-filter", out categoryExclusionFilterValue); + argsList = CommandLineOptions.ParseAndRemoveStringsParameter(argsList, "--msbuild-arguments", out msBuildArguments); CommandLineOptions.ParseAndRemoveBooleanParameter(argsList, "--disasm-diff", out getDiffableDisasm); CommandLineOptions.ValidatePartitionParameters(partitionCount, partitionIndex); @@ -56,7 +58,8 @@ static async Task Main(string[] args) partitionIndex: partitionIndex, exclusionFilterValue: exclusionFilterValue, categoryExclusionFilterValue: categoryExclusionFilterValue, - getDiffableDisasm: getDiffableDisasm) + getDiffableDisasm: getDiffableDisasm, + msBuildArguments: msBuildArguments) .AddValidator(new NoWasmValidator(Categories.NoWASM))) .ConfigureAwait(false); diff --git a/src/harness/BenchmarkDotNet.Extensions/RecommendedConfig.cs b/src/harness/BenchmarkDotNet.Extensions/RecommendedConfig.cs index c8a469ba68e..2630289ae2c 100644 --- a/src/harness/BenchmarkDotNet.Extensions/RecommendedConfig.cs +++ b/src/harness/BenchmarkDotNet.Extensions/RecommendedConfig.cs @@ -28,7 +28,8 @@ public static IConfig Create( List? exclusionFilterValue = null, List? categoryExclusionFilterValue = null, Job? job = null, - bool getDiffableDisasm = false) + bool getDiffableDisasm = false, + IReadOnlyList? msBuildArguments = null) { if (job is null) { @@ -43,6 +44,11 @@ public static IConfig Create( #pragma warning restore CS0618 } + if (msBuildArguments is not null && msBuildArguments.Count > 0) + { + job = job.WithMsBuildArguments(msBuildArguments.ToArray()); + } + var config = ManualConfig.CreateEmpty() .WithBuildTimeout(TimeSpan.FromMinutes(15)) // for slow machines .AddLogger(ConsoleLogger.Default) // log output to console