Bug 1490616 - Support xperf on windows 10. r=rwood
authorJoel Maher <jmaher@mozilla.com>
Wed, 12 Sep 2018 13:18:22 +0000
changeset 436042 f7324ecaefe53809e804290e5e6fc4d5fb2fd05b
parent 436041 55d804ef829ac501f6d68907e41febc0c71adc8a
child 436043 cf6d981db639aaf6833e8b5f33cc00c84bca9b30
push id34625
push userdvarga@mozilla.com
push dateThu, 13 Sep 2018 02:31:40 +0000
treeherdermozilla-central@51e9e9660b3e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersrwood
bugs1490616
milestone64.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 1490616 - Support xperf on windows 10. r=rwood run xperf on windows10 using new run-as-administrator feature Differential Revision: https://phabricator.services.mozilla.com/D5658
taskcluster/ci/test/talos.yml
testing/talos/talos.json
testing/talos/talos/config.py
testing/talos/talos/xtalos/xperf_whitelist.json
--- a/taskcluster/ci/test/talos.yml
+++ b/taskcluster/ci/test/talos.yml
@@ -598,24 +598,32 @@ talos-tps-profiling:
             - --geckoProfile
 
 talos-xperf:
     description: "Talos xperf"
     try-name: xperf
     treeherder-symbol: T(x)
     virtualization: virtual
     os-groups: ['Administrators']
+    run-as-administrator:
+        by-test-platform:
+            windows7-32.*: false
+            windows10-64.*: true
     run-on-projects:
         by-test-platform:
             windows7-32-msvc/.*: ['mozilla-beta', 'mozilla-central', 'try']
             windows7-32(-pgo)?/.*: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
+            windows10-64(-pgo)?/opt: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
+            .*-qr/.*: []  # this test is not useful with webrender
             default: []
     tier:
         by-test-platform:
             windows7-32.*: default
+            windows10-64(-pgo)?/.*: default
+            windows10-64-ccov/debug: 3
             default: 3  # this should be disabled but might run via try syntax anyway, so explicitly downgrade to tier-3
     mozharness:
         extra-options:
             - --suite=xperf
         config:
             by-test-platform:
                 windows.*:
                     - talos/windows_vm_config.py
--- a/testing/talos/talos.json
+++ b/testing/talos/talos.json
@@ -60,17 +60,17 @@
             "tests": ["tp5o"],
             "pagesets_name": "tp5n.zip"
         },
         "xperf-e10s": {
             "tests": ["tp5n"],
             "pagesets_name": "tp5n.zip",
             "talos_options": [
                 "--xperf_path",
-                "\"c:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe\""
+                "\"c:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/xperf.exe\""
             ]
         },
         "tp6-e10s": {
             "tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
             "mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
             "mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
             "mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
             "talos_options": [
--- a/testing/talos/talos/config.py
+++ b/testing/talos/talos/config.py
@@ -107,26 +107,30 @@ def convert_url(config, url):
     return url
 
 
 @validator
 def fix_xperf(config):
     # BBB: remove doubly-quoted xperf values from command line
     # (needed for buildbot)
     # https://bugzilla.mozilla.org/show_bug.cgi?id=704654#c43
+    win7_path = 'c:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe'
     if config['xperf_path']:
         xperf_path = config['xperf_path']
         quotes = ('"', "'")
         for quote in quotes:
             if xperf_path.startswith(quote) and xperf_path.endswith(quote):
                 config['xperf_path'] = xperf_path[1:-1]
                 break
         if not os.path.exists(config['xperf_path']):
-            raise ConfigurationError(
-                "xperf.exe cannot be found at the path specified")
+            # look for old win7 path
+            if not os.path.exists(win7_path):
+                raise ConfigurationError(
+                    "xperf.exe cannot be found at the path specified")
+            config['xperf_path'] = win7_path
 
 
 @validator
 def set_webserver(config):
     # pick a free port
     import socket
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     sock.bind(('', 0))
--- a/testing/talos/talos/xtalos/xperf_whitelist.json
+++ b/testing/talos/talos/xtalos/xperf_whitelist.json
@@ -69,16 +69,40 @@
     "mincount": 2,
     "maxcount": 2,
     "minbytes": 120,
     "maxbytes": 120
   },
   "c:\\windows\\prefetch\\{prefetch}.pf": {
     "ignore": true
   },
+  "c:\\windows\\system32\\windows.storage.dll": {
+    "mincount": 2,
+    "maxcount": 2,
+    "minbytes": 0,
+    "maxbytes": 24576
+  },
+  "c:\\windows\\system32\\ole32.dll": {
+    "mincount": 4,
+    "maxcount": 4,
+    "minbytes": 0,
+    "maxbytes": 65536
+  },
+  "c:\\windows\\system32\\ucrtbase.dll": {
+    "mincount": 4,
+    "maxcount": 4,
+    "minbytes": 16384,
+    "maxbytes": 32768
+  },
+  "c:\\windows\\system32\\user32.dll": {
+    "mincount": 4,
+    "maxcount": 4,
+    "minbytes": 0,
+    "maxbytes": 65536
+  },
   "c:\\windows\\system32\\audioses.dll": {
     "mincount": 4,
     "maxcount": 4,
     "minbytes": 16384,
     "maxbytes": 32768
   },
   "c:\\windows\\system32\\dwrite.dll": {
     "mincount": 4,