Bug 1597711 - Add conditioned profile support for GV & Fenix in Raptor r=stephendonner,rwood
authorTarek Ziadé <tarek@mozilla.com>
Wed, 18 Dec 2019 22:20:18 +0000
changeset 507632 cb86af33e59fca3cf69e8de1646ef91330c8004d
parent 507631 bb6c737e982ac81cc3a3cc6dd60ba0ea4ba46bce
child 507633 b5af13dbdda6502b99947cdce21b699b0acb24b0
push id103577
push usertziade@mozilla.com
push dateWed, 18 Dec 2019 22:33:23 +0000
treeherderautoland@cb86af33e59f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersstephendonner, rwood
bugs1597711
milestone73.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 1597711 - Add conditioned profile support for GV & Fenix in Raptor r=stephendonner,rwood Enable using the 'settled' conditioned profile for geckoview and fenix apps. Differential Revision: https://phabricator.services.mozilla.com/D55408
taskcluster/ci/test/raptor-fenix.yml
taskcluster/taskgraph/transforms/raptor.py
testing/mozharness/mozharness/mozilla/testing/raptor.py
testing/raptor/mach_commands.py
testing/raptor/raptor/cmdline.py
testing/raptor/raptor/raptor.py
testing/raptor/test/conftest.py
--- a/taskcluster/ci/test/raptor-fenix.yml
+++ b/taskcluster/ci/test/raptor-fenix.yml
@@ -170,394 +170,422 @@ raptor-tp6m-10-fenix:
 
 raptor-tp6m-1-fenix-cold:
     description: "Raptor tp6m-1 cold page-load on Fenix"
     try-name: raptor-tp6m-1-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-1)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-1-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-2-fenix-cold:
     description: "Raptor tp6m-2 cold page-load on Fenix"
     try-name: raptor-tp6m-2-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-2)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-2-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-3-fenix-cold:
     description: "Raptor tp6m-3 cold page-load on Fenix"
     try-name: raptor-tp6m-3-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-3)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-3-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-4-fenix-cold:
     description: "Raptor tp6m-4 cold page-load on Fenix"
     try-name: raptor-tp6m-4-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-4)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-4-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-5-fenix-cold:
     description: "Raptor tp6m-5 cold page-load on Fenix"
     try-name: raptor-tp6m-5-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-5)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-5-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-6-fenix-cold:
     description: "Raptor tp6m-6 cold page-load on Fenix"
     try-name: raptor-tp6m-6-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-6)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-6-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-7-fenix-cold:
     description: "Raptor tp6m-7 cold page-load on Fenix"
     try-name: raptor-tp6m-7-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-7)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-7-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-8-fenix-cold:
     description: "Raptor tp6m-8 cold page-load on Fenix"
     try-name: raptor-tp6m-8-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-8)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-8-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-9-fenix-cold:
     description: "Raptor tp6m-9 cold page-load on Fenix"
     try-name: raptor-tp6m-9-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-9)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-9-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-10-fenix-cold:
     description: "Raptor tp6m-10 cold page-load on Fenix"
     try-name: raptor-tp6m-10-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-10)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-10-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-11-fenix-cold:
     description: "Raptor tp6m-11 cold page-load on Fenix"
     try-name: raptor-tp6m-11-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-11)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-11-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-12-fenix-cold:
     description: "Raptor tp6m-12 cold page-load on Fenix"
     try-name: raptor-tp6m-12-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-12)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-12-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-13-fenix-cold:
     description: "Raptor tp6m-13 cold page-load on Fenix"
     try-name: raptor-tp6m-13-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-13)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-13-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-14-fenix-cold:
     description: "Raptor tp6m-14 cold page-load on Fenix"
     try-name: raptor-tp6m-14-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-14)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-14-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-15-fenix-cold:
     description: "Raptor tp6m-15 cold page-load on Fenix"
     try-name: raptor-tp6m-15-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-15)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-15-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-16-fenix-cold:
     description: "Raptor tp6m-16 cold page-load on Fenix"
     try-name: raptor-tp6m-16-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-16)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-16-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-17-fenix-cold:
     description: "Raptor tp6m-17 cold page-load on Fenix"
     try-name: raptor-tp6m-17-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-17)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-17-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-18-fenix-cold:
     description: "Raptor tp6m-18 cold page-load on Fenix"
     try-name: raptor-tp6m-18-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-18)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-18-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-19-fenix-cold:
     description: "Raptor tp6m-19 cold page-load on Fenix"
     try-name: raptor-tp6m-19-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-19)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-19-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-20-fenix-cold:
     description: "Raptor tp6m-20 cold page-load on Fenix"
     try-name: raptor-tp6m-20-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-20)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-20-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-21-fenix-cold:
     description: "Raptor tp6m-21 cold page-load on Fenix"
     try-name: raptor-tp6m-21-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-21)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-21-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-22-fenix-cold:
     description: "Raptor tp6m-22 cold page-load on Fenix"
     try-name: raptor-tp6m-22-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-22)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-22-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-23-fenix-cold:
     description: "Raptor tp6m-23 cold page-load on Fenix"
     try-name: raptor-tp6m-23-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-23)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-23-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-24-fenix-cold:
     description: "Raptor tp6m-24 cold page-load on Fenix"
     try-name: raptor-tp6m-24-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-24)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-24-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-25-fenix-cold:
     description: "Raptor tp6m-25 cold page-load on Fenix"
     try-name: raptor-tp6m-25-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-25)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-25-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-26-fenix-cold:
     description: "Raptor tp6m-26 cold page-load on Fenix"
     try-name: raptor-tp6m-26-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-26)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-26-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-27-fenix-cold:
     description: "Raptor tp6m-27 cold page-load on Fenix"
     try-name: raptor-tp6m-27-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-27)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-27-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-tp6m-28-fenix-cold:
     description: "Raptor tp6m-28 cold page-load on Fenix"
     try-name: raptor-tp6m-28-fenix-cold
     treeherder-symbol: Rap-fenix(tp6m-c-28)
     run-on-projects: []
     e10s: true
     tier: 2
+    max-run-time: 2400
     mozharness:
         extra-options:
             - --test=raptor-tp6m-28-cold
             - --app=fenix
             - --binary-path=org.mozilla.fenix.performancetest
             - --activity=org.mozilla.fenix.IntentReceiverActivity
 
 raptor-scn-power-idle-fenix:
--- a/taskcluster/taskgraph/transforms/raptor.py
+++ b/taskcluster/taskgraph/transforms/raptor.py
@@ -207,16 +207,23 @@ def split_browsertime_page_load_by_url(c
             yield chunked
 
 
 @transforms.add
 def add_extra_options(config, tests):
     for test in tests:
         extra_options = test.setdefault('mozharness', {}).setdefault('extra-options', [])
 
+        # Adding device name if we're on android
+        test_platform = test['test-platform']
+        if test_platform.startswith('android-hw-g5'):
+            extra_options.append('--device-name=g5')
+        elif test_platform.startswith('android-hw-p2'):
+            extra_options.append('--device-name=p2_aarch64')
+
         if test.pop('run-visual-metrics', False):
             extra_options.append('--browsertime-video')
             test['attributes']['run-visual-metrics'] = True
 
         if 'app' in test:
             extra_options.append('--app={}'.format(test.pop('app')))
 
         # for browsertime tp6 cold page-load jobs we need to set the '--cold' cmd line arg
--- a/testing/mozharness/mozharness/mozilla/testing/raptor.py
+++ b/testing/mozharness/mozharness/mozilla/testing/raptor.py
@@ -134,16 +134,21 @@ class Raptor(TestingMixin, MercurialScri
             "help": "Enable the WebRender compositor in Gecko.",
         }],
         [["--no-conditioned-profile"], {
             "action": "store_true",
             "dest": "no_conditioned_profile",
             "default": False,
             "help": "Run without the conditioned profile.",
         }],
+        [["--device-name"], {
+            "dest": "device_name",
+            "default": None,
+            "help": "Device name of mobile device.",
+        }],
         [["--geckoProfile"], {
             "dest": "gecko_profile",
             "action": "store_true",
             "default": False,
             "help": argparse.SUPPRESS
         }],
         [["--geckoProfileInterval"], {
             "dest": "gecko_profile_interval",
@@ -485,16 +490,18 @@ class Raptor(TestingMixin, MercurialScri
         if 'test' in self.config:
             kw_options['test'] = self.config['test']
         if self.symbols_path:
             kw_options['symbolsPath'] = self.symbols_path
         if self.config.get('obj_path', None) is not None:
             kw_options['obj-path'] = self.config['obj_path']
         if self.test_url_params:
             kw_options['test-url-params'] = self.test_url_params
+        if self.config.get('device_name') is not None:
+            kw_options['device-name'] = self.config['device_name']
 
         kw_options.update(kw)
         if self.host:
             kw_options['host'] = self.host
         # Configure profiling options
         options.extend(self.query_gecko_profile_options())
         # Extra arguments
         if args is not None:
--- a/testing/raptor/mach_commands.py
+++ b/testing/raptor/mach_commands.py
@@ -53,16 +53,17 @@ class RaptorRunner(MozbuildObject):
 
         if kwargs.get('host') == 'HOST_IP':
             kwargs['host'] = os.environ['HOST_IP']
         self.host = kwargs['host']
         self.is_release_build = kwargs['is_release_build']
         self.memory_test = kwargs['memory_test']
         self.power_test = kwargs['power_test']
         self.cpu_test = kwargs['cpu_test']
+        self.device_name = kwargs['device_name']
 
         if Conditions.is_android(self) or kwargs["app"] in FIREFOX_ANDROID_BROWSERS:
             self.binary_path = None
         else:
             self.binary_path = kwargs.get("binary") or self.get_binary_path()
 
         self.python = sys.executable
 
@@ -151,16 +152,17 @@ class RaptorRunner(MozbuildObject):
             'title': socket.gethostname(),
             'default_actions': default_actions,
             'raptor_cmd_line_args': self.raptor_args,
             'host': self.host,
             'power_test': self.power_test,
             'memory_test': self.memory_test,
             'cpu_test': self.cpu_test,
             'is_release_build': self.is_release_build,
+            'device_name': self.device_name,
         }
 
         sys.path.insert(0, os.path.join(self.topsrcdir, 'tools', 'browsertime'))
         try:
             import mach_commands as browsertime
             # We don't set `browsertime_{chromedriver,geckodriver} -- those will be found by
             # browsertime in its `node_modules` directory, which is appropriate for local builds.
             # We don't set `browsertime_ffmpeg` yet: it will need to be on the path.  There is code
--- a/testing/raptor/raptor/cmdline.py
+++ b/testing/raptor/raptor/cmdline.py
@@ -137,16 +137,18 @@ def create_parser(mach_interface=False):
     add_arg('--debug-mode', dest="debug_mode", action="store_true",
             help="Run Raptor in debug mode (open browser console, limited page-cycles, etc.)")
     add_arg('--disable-e10s', dest="e10s", action="store_false", default=True,
             help="Run without multiple processes (e10s).")
     add_arg('--enable-webrender', dest="enable_webrender", action="store_true", default=False,
             help="Enable the WebRender compositor in Gecko.")
     add_arg('--no-conditioned-profile', dest="no_conditioned_profile", action="store_true",
             default=False, help="Run Raptor tests without a conditioned profile.")
+    add_arg('--device-name', dest="device_name", default=None,
+            type=str, help="Device name of mobile device.")
     add_arg('--enable-fission', dest="enable_fission", action="store_true", default=False,
             help="Enable Fission (site isolation) in Gecko.")
     add_arg('--setpref', dest="extra_prefs", action="append", default=[],
             help="A preference to set. Must be a key-value pair separated by a ':'.")
     if not mach_interface:
         add_arg('--run-local', dest="run_local", default=False, action="store_true",
                 help="Flag which indicates if Raptor is running locally or in production")
         add_arg('--obj-path', dest="obj_path", default=None,
--- a/testing/raptor/raptor/raptor.py
+++ b/testing/raptor/raptor/raptor.py
@@ -22,17 +22,17 @@ import tarfile
 
 import requests
 
 import mozcrash
 import mozinfo
 import mozprocess
 import mozproxy.utils as mpu
 import mozversion
-from condprof.client import get_profile
+from condprof.client import get_profile, ProfileNotFoundError
 from condprof.util import get_current_platform
 from logger.logger import RaptorLogger
 from mozdevice import ADBDevice
 from mozlog import commandline
 from mozpower import MozPower
 from mozprofile import create_profile
 from mozprofile.cli import parse_preferences
 from mozproxy import get_playback
@@ -103,17 +103,17 @@ either Raptor or browsertime."""
 
     def __init__(self, app, binary, run_local=False, noinstall=False,
                  obj_path=None, profile_class=None, installerpath=None,
                  gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
                  symbols_path=None, host=None, power_test=False, cpu_test=False, memory_test=False,
                  is_release_build=False, debug_mode=False, post_startup_delay=None,
                  interrupt_handler=None, e10s=True, enable_webrender=False,
                  results_handler_class=RaptorResultsHandler, no_conditioned_profile=False,
-                 extra_prefs={}, **kwargs):
+                 device_name=None, extra_prefs={}, **kwargs):
 
         # Override the magic --host HOST_IP with the value of the environment variable.
         if host == 'HOST_IP':
             host = os.environ['HOST_IP']
 
         self.config = {
             'app': app,
             'binary': binary,
@@ -129,28 +129,26 @@ either Raptor or browsertime."""
             'power_test': power_test,
             'memory_test': memory_test,
             'cpu_test': cpu_test,
             'is_release_build': is_release_build,
             'enable_control_server_wait': memory_test or cpu_test,
             'e10s': e10s,
             'enable_webrender': enable_webrender,
             'no_conditioned_profile': no_conditioned_profile,
+            'device_name': device_name,
             'enable_fission': extra_prefs.get('fission.autostart', False),
             'extra_prefs': extra_prefs
         }
 
         self.firefox_android_apps = FIREFOX_ANDROID_APPS
         # See bug 1582757; until we support aarch64 conditioned-profile builds, fall back
         # to mozrunner-created profiles
-        # only use conditioned profiles on Firefox desktop for now;
-        # see bug 1597711 for GeckoView/Android support
         self.no_condprof = ((self.config['platform'] == 'win'
                              and self.config['processor'] == 'aarch64') or
-                            (self.config['app'] in self.firefox_android_apps) or
                             self.config['no_conditioned_profile'])
 
         # We can never use e10s on fennec
         if self.config['app'] == 'fennec':
             self.config['e10s'] = False
 
         self.browser_name = None
         self.browser_version = None
@@ -194,18 +192,30 @@ either Raptor or browsertime."""
         condprofile client API; returns a self.conditioned_profile_dir"""
 
         # create a temp file to help ensure uniqueness
         temp_download_dir = tempfile.mkdtemp()
         LOG.info("Making temp_download_dir from inside get_conditioned_profile {}"
                  .format(temp_download_dir))
         # call condprof's client API to yield our platform-specific
         # conditioned-profile binary
-        platform = get_current_platform()
-        cond_prof_target_dir = get_profile(temp_download_dir, platform, "settled")
+        if isinstance(self, PerftestAndroid):
+            android_app = self.config["binary"].split("org.mozilla.")[-1]
+            device_name = self.config.get("device_name")
+            if device_name is None:
+                device_name = "g5"
+            platform = "%s-%s" % (device_name, android_app)
+        else:
+            platform = get_current_platform()
+        try:
+            cond_prof_target_dir = get_profile(temp_download_dir, platform, "settled")
+        except ProfileNotFoundError:
+            # If we can't find the profile on mozilla-central, we look on try
+            cond_prof_target_dir = get_profile(temp_download_dir, platform,
+                                               "settled", repo="try")
         # now get the full directory path to our fetched conditioned profile
         self.conditioned_profile_dir = os.path.join(temp_download_dir, cond_prof_target_dir)
         if not os.path.exists(cond_prof_target_dir):
             LOG.critical("Can't find target_dir {}, from get_profile()"
                          "temp_download_dir {}, platform {}, settled"
                          .format(cond_prof_target_dir, temp_download_dir, platform))
             raise OSError
 
@@ -1861,17 +1871,18 @@ def main(args=sys.argv[1:]):
                           memory_test=args.memory_test,
                           is_release_build=args.is_release_build,
                           debug_mode=args.debug_mode,
                           post_startup_delay=args.post_startup_delay,
                           activity=args.activity,
                           intent=args.intent,
                           interrupt_handler=SignalHandler(),
                           enable_webrender=args.enable_webrender,
-                          extra_prefs=args.extra_prefs or {}
+                          extra_prefs=args.extra_prefs or {},
+                          device_name=args.device_name
                           )
 
     success = raptor.run_tests(raptor_test_list, raptor_test_names)
 
     if not success:
         # didn't get test results; test timed out or crashed, etc. we want job to fail
         LOG.critical("TEST-UNEXPECTED-FAIL: no raptor test results were found for %s" %
                      ', '.join(raptor_test_names))
--- a/testing/raptor/test/conftest.py
+++ b/testing/raptor/test/conftest.py
@@ -13,16 +13,17 @@ here = os.path.abspath(os.path.dirname(_
 from raptor.raptor import Perftest, RaptorDesktopFirefox, Browsertime
 
 
 @pytest.fixture
 def options(request):
     opts = {
         'app': 'firefox',
         'binary': 'path/to/dummy/browser',
+        'no_conditioned_profile': True
     }
 
     if hasattr(request.module, 'OPTIONS'):
         opts.update(request.module.OPTIONS)
     return opts
 
 
 @pytest.fixture