Skip to content

Run CoreCLR microbenchmarks on macOS 26 Arm64 M4 - #5323

Merged
DrewScoggins merged 5 commits into
dotnet:mainfrom
DrewScoggins:add-m4-perf-runs
Sep 29, 2026
Merged

DrewScoggins merged 5 commits into
dotnet:mainfrom
DrewScoggins:add-m4-perf-runs

Conversation

@DrewScoggins

@DrewScoggins DrewScoggins commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Summary

Enable CoreCLR microbenchmarks on the macOS 26 Arm64 M4 performance queue, osx.26.arm64.m4.perf.

  • Add an enabled-by-default m4Micro configuration for osx_arm64.
  • Pass the queue explicitly and identify the machine pool as M4, avoiding the logical-machine mapper's Linux fallback.
  • Reuse the standard runtime performance job, cross-build layout generation, and artifact download paths.
  • Exclude release branches, which do not have the matching macOS Arm64 performance build.

Dependency and rollout

Merge dotnet/runtime#134616 first, and ensure that build support is available in the runtime checkout used by the internal pipeline before enabling this job. The runtime PR produces the artifacts consumed here.

The Mac file-backed certificate support from #5257 is already merged; no certificate changes are needed in this PR.

Validation

Six local YAML/structural checks passed across both repositories, covering duplicate keys, platform and queue selection, release guards, cross-build forwarding, artifact naming, and preservation of existing jobs. git diff --check passed.

No macOS build, Azure Pipelines template expansion, or end-to-end Helix run was performed locally; those still require pipeline validation.

Note

This PR was prepared with GitHub Copilot; this description is AI-generated.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Pipeline expansion and end-to-end macOS validation remain outstanding.

Review effort: Lite
Findings: None

What changed in this PR

Enables CoreCLR microbenchmarks on the macOS 26 Arm64 M4 performance queue.

Changes:

  • Adds the enabled-by-default m4Micro configuration.
  • Targets the explicit M4 queue and machine pool.
  • Excludes release branches.
File Description
eng/​pipelines/​runtime-perf-jobs.yml Defines and schedules the macOS Arm64 M4 microbenchmark job.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Disable other benchmark configurations and iOS builds/runs for M4 queue validation. Revert this commit after the trial.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9
Copilot AI review requested due to automatic review settings September 24, 2026 22:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Azure Pipelines expansion and the end-to-end macOS run remain unverified.

Review effort: Lite
Findings: None

Resolve symlinked project and working-directory paths before invoking dotnet to avoid transitive reference loss. Cover direct and linked paths for both build modes.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9
Copilot AI review requested due to automatic review settings September 25, 2026 00:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Azure Pipelines expansion and the end-to-end macOS run remain unverified.

Review effort: Lite
Findings: None

Reverts temporary Mac-only configuration from fdec43b, retaining the M4 benchmark job and canonical project-path fix.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9
Copilot AI review requested due to automatic review settings September 28, 2026 16:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Pipeline expansion and end-to-end macOS validation remain outstanding.

Review effort: Lite
Findings: None

LoopedBard3
LoopedBard3 previously approved these changes Sep 29, 2026
Keep the macOS build enabled while guarding M4 runs on both release branch prefixes, which may lack the required runtime build support.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Fix the release-branch guard to exclude exact release branch references.

Review effort: Lite
Findings: 1 Medium severity

Open (1)

Comment thread eng/pipelines/runtime-perf-jobs.yml Resolved
@DrewScoggins
DrewScoggins merged commit 6ec8638 into dotnet:main Sep 29, 2026
78 checks passed
DrewScoggins added a commit that referenced this pull request Sep 29, 2026
DrewScoggins added a commit to dotnet/runtime that referenced this pull request Sep 30, 2026
## Summary

Add macOS Arm64 CoreCLR build artifacts for performance runs on
`osx.26.arm64.m4.perf`.

- Add an opt-in `osx_arm64` platform to the existing CoreCLR performance
build template.
- Enable it in the regular performance build jobs, including release
branches containing this template, using the existing cross-build and
artifact-upload paths.
- Keep existing platform selections unchanged. The companion performance
template retains its release-branch run guard to protect runtime
branches without Mac build support.

Companion PR: dotnet/performance#5323 adds the
M4 microbenchmark job. This runtime change must land and be available to
the internal performance pipeline before that job is enabled.

## Validation

Six local YAML/structural checks passed across both repositories,
covering duplicate keys, platform and queue selection, release guards,
cross-build forwarding, artifact naming, and preservation of existing
jobs. `git diff --check` passed.

No macOS build, Azure Pipelines template expansion, or end-to-end Helix
run was performed locally; those still require pipeline validation.

> [!NOTE]
> This PR was prepared with GitHub Copilot; this description is
AI-generated.

---------

Copilot-Session: d3ea3c9-20b5-43c5-8e73-5a61a2120de9
DrewScoggins added a commit that referenced this pull request Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants