Skip to content

Set RuntimeType explicitly for wasm and wasm_coreclr micro benchmarks#5153

Closed
ilonatommy wants to merge 1 commit intodotnet:mainfrom
ilonatommy:fix-coreclr-perf-autofiling-issues
Closed

Set RuntimeType explicitly for wasm and wasm_coreclr micro benchmarks#5153
ilonatommy wants to merge 1 commit intodotnet:mainfrom
ilonatommy:fix-coreclr-perf-autofiling-issues

Conversation

@ilonatommy
Copy link
Member

Problem

Coreclr jobs are running fine, see: dotnet/runtime#125566 runtime-wasm-perf (Build Performance micro wasm_coreclr wasm coreclr_v8 linux x64 perfviper net11.0) but we don't get autofilling issues on them, like we do for mono.

Root cause

wasm_coreclr benchmark results are never reported to the perf autofiling system. The allTestHistory dashboard has zero wasm_coreclr entries despite the job running in CI.

--runtime-flavor is only passed via YAML for MAUI scenarios, so for wasm micro benchmarks runtime_flavor is None. This means:

  • wasm_coreclr: RuntimeType=None in configurations -> data lands in the wrong blob storage path and is never picked up by the autofiler,
  • wasm: RuntimeType not set at all in configurations ->happens to work but is implicit.

Fix

Auto-detect runtime_flavor from runtime_type for wasm micro benchmarks in run_performance_job.py, matching the existing pattern used by Android and iOS scenarios.

Set RuntimeType in get_run_configurations() for both wasm and wasm_coreclr so the configuration metadata is explicit.

Impact

  • wasm_coreclr: Fixes broken reporting — results will now appear in allTestHistory and be picked up by the perf autofiler
  • wasm (Mono): Adds explicit RuntimeType=mono to configurations. This changes the blob storage path for new data (previously had no RuntimeType key), but makes the metadata correct and future-proof
  • No impact on non-wasm scenarios

Copy link
Member

@pavelsavara pavelsavara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will leave the approval to @LoopedBard3


if args.run_kind == "micro":
if args.runtime_type == "wasm":
args.runtime_flavor = "mono"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would this break how the new data are compared to baseline or history ?

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the performance-job orchestration script to better tag WASM runs with a runtime “flavor” (Mono vs CoreCLR) so downstream configuration/telemetry can distinguish them.

Changes:

  • Adds RuntimeType to the run configurations for runtime_type == "wasm".
  • Derives args.runtime_flavor for microbenchmark WASM runs (wasmmono, wasm_coreclrcoreclr).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines 521 to 524
if runtime_type == "wasm":
configurations["CompilationMode"] = "wasm"
configurations["RuntimeType"] = str(runtime_flavor)
if is_aot:
Comment on lines +721 to +726
if args.run_kind == "micro":
if args.runtime_type == "wasm":
args.runtime_flavor = "mono"
elif args.runtime_type == "wasm_coreclr":
args.runtime_flavor = "coreclr"

LoopedBard3 added a commit to LoopedBard3/performance that referenced this pull request Mar 17, 2026
For wasm_coreclr micro benchmark runs, runtime_flavor is not passed via
YAML, causing RuntimeType to be set to 'None' in configurations. This
means results never appear in test history or the perf autofiler.

Add auto-detection of runtime_flavor for wasm_coreclr micro benchmarks,
setting it to 'coreclr', following the existing pattern used by Android
and iOS scenarios. This fix does not modify wasm (mono) behavior to
avoid breaking existing test history reports.

Fixes the same root cause as dotnet#5153 but with a more
targeted approach that only affects wasm_coreclr.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Member

@LoopedBard3 LoopedBard3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great catch for this bug. I think a more targeted approach would be better to ensure we keep other wasm history. This also will not start auto-filing, but I will get the auto-filing running. Put up a more targeted PR here: #5155.

@LoopedBard3
Copy link
Member

Closing in favor of #5155

LoopedBard3 added a commit that referenced this pull request Mar 17, 2026
* Auto-detect runtime_flavor for wasm_coreclr micro benchmarks

For wasm_coreclr micro benchmark runs, runtime_flavor is not passed via
YAML, causing RuntimeType to be set to 'None' in configurations. This
means results never appear in test history or the perf autofiler.

Add auto-detection of runtime_flavor for wasm_coreclr micro benchmarks,
setting it to 'coreclr', following the existing pattern used by Android
and iOS scenarios. This fix does not modify wasm (mono) behavior to
avoid breaking existing test history reports.

Fixes the same root cause as #5153 but with a more
targeted approach that only affects wasm_coreclr.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Only write runtime_flavor if not already set.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants