Open Bug 1548962 Opened 8 months ago Updated 20 days ago

Use android-x86_64 to generate the profile for Android PGO builds

Categories

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

x86_64
Android
enhancement

Tracking

(Not tracked)

People

(Reporter: mshal, Unassigned)

References

(Depends on 1 open bug)

Details

(Whiteboard: [geckoview:p2])

At some point we'd like to switch to using the android-x86 builds to generate the PGO profile for Android builds. Currently we use the android-api-16 builds and the arm emulator, which is quite slow. Using android-x86 should speed up the run task from 40+ minutes down to about 5 minutes. Additionally, we may want to stop using the arm emulator in automation for tests, so presumably we'd no longer want to depend on it for PGO.

The main blocker for this is bug 1545497.

Priority: -- → P3

Adding [geckoview:p1] whiteboard tag because we'd like Android PGO to move from ARM emulators to x86_64 soon. The Fennec tests running on the ARM emulators will be turned off soon during 71 Nightly (bug 1575973). Android PGO profile generation will then be the only task using the ARM emulators. Once we move PGO profile generation to x86-64, we can retire the ARM emulators for good.

Priority: P3 → P2
Whiteboard: [geckoview:p2]

(In reply to Chris Peterson [:cpeterson] from comment #1)

Once we move PGO profile generation to x86-64, we can retire the ARM emulators for good.

Just to be clear, are we using the x86-64 profiles for ARM, or are we using x86 profiles? Because the x86 profiles are likely to work much better due to bitnesses matching and therefore mangled names matching (more) closely. The same situation applies in reverse to a future AArch64 PGO build--we'd want to use x86-64 profiles there, not x86 ones.

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

(In reply to Chris Peterson [:cpeterson] from comment #1)

Once we move PGO profile generation to x86-64, we can retire the ARM emulators for good.

Just to be clear, are we using the x86-64 profiles for ARM, or are we using x86 profiles? Because the x86 profiles are likely to work much better due to bitnesses matching and therefore mangled names matching (more) closely. The same situation applies in reverse to a future AArch64 PGO build--we'd want to use x86-64 profiles there, not x86 ones.

We currently use the android-api-16 profile on both android-api-16 and android-aarch64 builds. There were perf wins for aarch64 according to talos even though the bitness doesn't match.

My intention here was to simply replace the android-api-16 profile generation stage with android-x86 profile generation for both, but once we have that running it shouldn't be hard to experiment with android-x86_64 for aarch64 to see if there's any additional improvement there.

Bug 1582221 landed today, so Android PGO profiles will now be generated using the GeckoView Test Runner Activity (geckoview-androidTest.apk) instead of Fennec. That should simplify moving profile generation from android-api-16 (ARM) to android-x86_64.

AFAIK, we stopped running tests on android-x86 once the tests were all green on android-x86_64 (bug 1498298). So we should use android-x86_64, not x86, for profile generation.

Depends on: 1582221
OS: Unspecified → Android
Hardware: Unspecified → x86_64
Summary: Use android-x86 to generate the profile for Android PGO builds → Use android-x86_64 to generate the profile for Android PGO builds
You need to log in before you can comment on or make changes to this bug.