Closed Bug 1543212 (android-pgo-ARM64) Opened 6 years ago Closed 5 years ago

Enable PGO for Android ARM64

Categories

(Firefox Build System :: General, task, P2)

ARM64
Android
task

Tracking

(firefox66 unaffected, firefox67 wontfix, firefox68 fixed)

RESOLVED FIXED
mozilla68
Tracking Status
firefox66 --- unaffected
firefox67 --- wontfix
firefox68 --- fixed

People

(Reporter: cpeterson, Assigned: mshal)

References

Details

(Whiteboard: [geckoview:p2])

Attachments

(2 files)

We enabled PGO for Android ARMv7 in bug 632954 and for Fennec Nightlies in bug 1535364. PGO for ARM64 requires additional work.

Depends on: android-pgo-ARMv7
Blocks: 1543215
Type: defect → task

It sounds like bug 1545497 may take a while to be staffed, so in the meantime we can use the android-api-16 profile for aarch64 builds instead of moving both to using an android-x86 profile. This will get us PGO up and running on the aarch64 platform sooner, though we'll still want to switch over to android-x86 when possible since the profile generation is much faster on x86, and the arm emulator may be going away in the future.

Similar to bug 632954, this disables the Android aarch64 tests on opt
except on try, and instead runs the tests on Android aarch64 pgo builds.

Depends on D29588

:ekyle, can you handle updating the perf dashboards to adjust android /aarch64 data from opt->pgo?

:davehunt, do you have other questions or steps required before this lands? I can think of maybe an email to performance at moco

Flags: needinfo?(klahnakoski)
Flags: needinfo?(dave.hunt)

:davehunt, can you comment on this- we are ready to land.

I've informed the perf team, perf test team, and perf sheriffs of this upcoming change.

Flags: needinfo?(dave.hunt)
Pushed by mshal@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c35863f496b6 Create a PGO-optimized android-aarch64 build; r=firefox-build-system-reviewers,chmanchester https://hg.mozilla.org/integration/autoland/rev/fc10352cccac Move Android aarch64 tests from opt to pgo; r=jmaher
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
No longer depends on: android-pgo-ARMv7
Alias: android-pgo-ARM64
No longer blocks: 1535364
Depends on: 1535364
Blocks: android-pgo

(In reply to Michael Shal [:mshal] from comment #1)

It sounds like bug 1545497 may take a while to be staffed, so in the meantime we can use the android-api-16 profile for aarch64 builds instead of moving both to using an android-x86 profile. This will get us PGO up and running on the aarch64 platform sooner, though we'll still want to switch over to android-x86 when possible since the profile generation is much faster on x86, and the arm emulator may be going away in the future.

This came up on #developers today, where several people had a "wait, 32-bit profiles for 64-bit builds? that won't end well" reaction, but nobody can see the bug referenced here. Can you summarize the problem that's blocking getting real arm64 profiles?

Flags: needinfo?(mshal)

(In reply to Nathan Froyd [:froydnj] from comment #11)

(In reply to Michael Shal [:mshal] from comment #1)

It sounds like bug 1545497 may take a while to be staffed, so in the meantime we can use the android-api-16 profile for aarch64 builds instead of moving both to using an android-x86 profile. This will get us PGO up and running on the aarch64 platform sooner, though we'll still want to switch over to android-x86 when possible since the profile generation is much faster on x86, and the arm emulator may be going away in the future.

This came up on #developers today, where several people had a "wait, 32-bit profiles for 64-bit builds? that won't end well" reaction, but nobody can see the bug referenced here. Can you summarize the problem that's blocking getting real arm64 profiles?

We wanted to run the profile-generation stage in an emulator rather than a device to avoid adding extra load to the testers, as well as needing isolation between builds and tests (ie: we'd need a separate pool of devices just to go PGO profile generation). So we could use the arm emulator, or x86 / x86_64 emulators. Unfortunately x86/x86_64 require access to /dev/kvm, which has other security implications the workers & docker. Bug 1545497 was stalled for a bit on bug 1499054, but that has since been fixed. It's possible there is a path forward here now.

Can you clarify what you mean buy it "won't end well"? We did see a perf win on 64 by using the 32-bit profile compared to using no profile, so it's not like it doesn't work at all. We did try a similar thing on Windows, but there is a slight perf loss by using the 32-bit profile instead of a 64-bit profile (it is still better than no profile, however). In other words, '64-bit profile on 64-bit' > '32-bit profile on 64-bit' > 'no profile'. I haven't been able to confirm this is also true on Android without being able to generate a 64-bit profile, of course.

Flags: needinfo?(mshal)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: