Bug 1543212 - Create a PGO-optimized android-aarch64 build; r=firefox-build-system-reviewers,chmanchester
authorMike Shal <mshal@mozilla.com>
Thu, 02 May 2019 21:36:46 +0000
changeset 531772 c35863f496b662167c8c0c93e6f4b26670e70387
parent 531771 c3ea428d6b2a4ab026fea0e1dc5c0776720d1b2d
child 531773 fc10352cccac54e2c30a7c096d30f8cd69353b10
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfirefox-build-system-reviewers, chmanchester
bugs1543212
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1543212 - Create a PGO-optimized android-aarch64 build; r=firefox-build-system-reviewers,chmanchester Differential Revision: https://phabricator.services.mozilla.com/D29588
mobile/android/config/mozconfigs/android-aarch64/profile-use
taskcluster/ci/build/android.yml
testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_pgo.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/profile-use
@@ -0,0 +1,10 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/nightly"
+
+export LLVM_PROFDATA="$topsrcdir/clang/bin/llvm-profdata"
+
+ac_add_options --enable-profile-use
+
+# This is disabled because jarlog re-ordering breaks apk publishing tasks,
+# see bug 1539933.
+# ac_add_options --with-pgo-jarlog=/builds/worker/fetches/en-US.log
+ac_add_options --with-pgo-profile-path=/builds/worker/fetches/default.profraw
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -492,16 +492,71 @@ android-aarch64/opt:
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
         - linux64-nasm
         - linux64-node
 
+android-aarch64/pgo:
+    description: "Android 5.0 AArch64 PGO"
+    use-pgo: android-api-16/pgo
+    index:
+        product: mobile
+        job-name: android-aarch64-pgo
+    attributes:
+        enable-full-crashsymbols: true
+    treeherder:
+        platform: android-5-0-aarch64/pgo
+        symbol: Bpgo(B)
+    worker-type: b-linux
+    worker:
+        docker-image: {in-tree: android-build}
+        max-run-time: 7200
+        env:
+            GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+        artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+            - name: public/build/geckoview-androidTest.apk
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
+              type: file
+            - name: public/build/geckoview_example.apk
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
+              type: file
+            - name: public/build
+              path: /builds/worker/artifacts/
+              type: directory
+    run:
+        using: mozharness
+        actions: [get-secrets, build]
+        config:
+            - builds/releng_base_android_64_builds.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: aarch64-pgo
+        tooltool-downloads: internal
+    toolchains:
+        - android-gradle-dependencies
+        - android-ndk-linux
+        - android-sdk-linux
+        - linux64-clang
+        - linux64-rust-android
+        - linux64-rust-size
+        - linux64-cbindgen
+        - linux64-nasm
+        - linux64-node
+
 android-aarch64/debug:
     description: "Android 5.0 AArch64 Debug"
     index:
         product: mobile
         job-name: android-aarch64-debug
     attributes:
         enable-full-crashsymbols: true
     treeherder:
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_pgo.py
@@ -0,0 +1,5 @@
+config = {
+    'stage_platform': 'android-aarch64-pgo',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/profile-use',
+    'multi_locale_config_platform': 'android',
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -373,16 +373,17 @@ class BuildOptionParser(object):
         'x86_64': 'builds/releng_sub_%s_configs/%s_x86_64.py',
         'x86_64-beta': 'builds/releng_sub_%s_configs/%s_x86_64_beta.py',
         'x86_64-beta-debug': 'builds/releng_sub_%s_configs/%s_x86_64_beta_debug.py',
         'x86_64-debug': 'builds/releng_sub_%s_configs/%s_x86_64_debug.py',
         'api-16-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_16_partner_sample1.py',
         'aarch64': 'builds/releng_sub_%s_configs/%s_aarch64.py',
         'aarch64-beta': 'builds/releng_sub_%s_configs/%s_aarch64_beta.py',
         'aarch64-beta-debug': 'builds/releng_sub_%s_configs/%s_aarch64_beta_debug.py',
+        'aarch64-pgo': 'builds/releng_sub_%s_configs/%s_aarch64_pgo.py',
         'aarch64-debug': 'builds/releng_sub_%s_configs/%s_aarch64_debug.py',
         'android-test': 'builds/releng_sub_%s_configs/%s_test.py',
         'android-test-ccov': 'builds/releng_sub_%s_configs/%s_test_ccov.py',
         'android-checkstyle': 'builds/releng_sub_%s_configs/%s_checkstyle.py',
         'android-api-lint': 'builds/releng_sub_%s_configs/%s_api_lint.py',
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'android-findbugs': 'builds/releng_sub_%s_configs/%s_findbugs.py',
         'android-geckoview-docs': 'builds/releng_sub_%s_configs/%s_geckoview_docs.py',