Add Pixel 10a mobile performance coverage - #5284
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extends the repo’s mobile performance infrastructure to include Pixel 10a alongside existing Pixel coverage by introducing a new Helix queue mapping and wiring a machinePool value through pipeline/job matrices.
Changes:
- Added a new logical-machine → Helix queue mapping for
perfpixel10aand treated the new Pixel 10a queue as a mobile queue for device-name env var handling. - Updated Helix/pipeline templates and matrices to pass
machinePool(e.g.,Pixel8,Pixel10a) and schedule Pixel 10a runs across existing SDK/MAUI matrices. - Refactored runtime Android perf jobs to iterate over a configurable
androidMachineslist (Pixel + Pixel 10a).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/run_performance_job.py | Adds Pixel 10a queue mapping and includes the queue in mobile DEVICE_NAME handling. |
| helix.yml | Adds machinePool variable and a Pixel 10a profile that passes --machine-pool. |
| eng/pipelines/templates/run-performance-job.yml | Updates the machinePool parameter comment to include Pixel 10a. |
| eng/pipelines/templates/build-machine-matrix.yml | Adds a private-build machine matrix entry for Pixel 10a with machinePool: Pixel10a. |
| eng/pipelines/sdk-perf-jobs.yml | Adds the Pixel 10a machine to multiple existing SDK scenario matrices. |
| eng/pipelines/runtime-perf-jobs.yml | Introduces androidMachines and loops Android runtime perf jobs over Pixel + Pixel 10a. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.
Suppressed comments (2)
eng/pipelines/templates/build-machine-matrix.yml:137
- The comment says "Windows ARM64 Pixel 10a", but this matrix entry is using
archType: x64andvmImage: windows-2022(Windows x64 host) and targets an Android ARM64 device. This can mislead future edits/debugging.
- ${{ if and(containsValue(parameters.buildMachines, 'win-x64-android-arm64-pixel10a'), not(eq(parameters.isPublic, true))) }}: # Windows ARM64 Pixel 10a only used in private builds currently
scripts/run_performance_job.py:1151
- The Pixel 10a DEVICE_NAME special-case is unnecessarily tied to both
logical_machineand the queue string. If a Pixel 10a run is configured via--queue Windows.11.Amd64.Pixel.10.Perf(without--logical-machine/--machine-pool),DEVICE_NAMEwill not be set even though this queue is treated as a mobile queue below.
# Pixel 10a runtime jobs use a logical machine rather than a machine pool.
if args.logical_machine == "perfpixel10a" and args.queue == "Windows.11.Amd64.Pixel.10.Perf":
args.run_env_vars["DEVICE_NAME"] = "Pixel10a"
elif args.machine_pool and args.queue and args.queue in (
"Windows.11.Amd64.Pixel.Perf",
|
While this PR is good, there are some on machine changes that need to be made to get these devices fully working, so waiting on those changes before merging. |
matouskozak
left a comment
There was a problem hiding this comment.
Would it make sense to add the devices also to the MAUI SDK scenario runs or is this a staged deployment and testing it on runtime runs first?
Are you talking about in runtime or the dotnet-performance runs? This should be added to both, but I may have missed somewhere. |
I meant |
All good, just confirming that the devices are properly setup to upload results then will merge 👍. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
f916d88
e6b60f2 to
f916d88
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Suppressed comments (4)
eng/pipelines/runtime-perf-jobs.yml:127
- This runtime job passes only
logicalMachine, somachinePoolremains empty inrun-performance-job.ymlandrun_performance_job.pydoes not emitDEVICE_NAMEfor the new mobile queue. The job will select the Pixel 10a queue without identifying the Pixel10a device in machine setup/results. PassmachinePool: Pixel10ahere (and in the other two Pixel 10a runtime blocks).
logicalMachine: 'perfpixel10a'
eng/pipelines/runtime-perf-jobs.yml:167
- This runtime job passes only
logicalMachine, somachinePoolremains empty inrun-performance-job.ymlandrun_performance_job.pydoes not emitDEVICE_NAMEfor the new mobile queue. The job will select the Pixel 10a queue without identifying the Pixel10a device in machine setup/results. PassmachinePool: Pixel10ahere (and in the other two Pixel 10a runtime blocks).
logicalMachine: 'perfpixel10a'
eng/pipelines/runtime-perf-jobs.yml:207
- This runtime job passes only
logicalMachine, somachinePoolremains empty inrun-performance-job.ymlandrun_performance_job.pydoes not emitDEVICE_NAMEfor the new mobile queue. The job will select the Pixel 10a queue without identifying the Pixel10a device in machine setup/results. PassmachinePool: Pixel10ahere (and in the other two Pixel 10a runtime blocks).
logicalMachine: 'perfpixel10a'
src/scenarios/shared/runner.py:470
- If the new
settings getcommand fails, this exception is raised beforesetup_deviceinitializesstopappcommand; thefinallyblock then callsclose_device(), whose unconditionalRunCommand(self.stopappcommand, ...)raisesValueErrorand masks the original adb failure. Move this call aftersetup_device(it only needs to run before the procstats clear), or make teardown tolerate an incomplete setup.
androidHelper.enable_pss_profiling()
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 309b3a9e-9724-411f-8460-751ec0faa6a3
Summary
Pixel10adevice name while preserving Pixel 8 coverageTesting
Internal Run: https://dev.azure.com/dnceng/internal/_build/results?buildId=3052379&view=results