Revert of Use the Chromium-side script to run the PGO benchmarks. (patchset #1 id:40001 of https://codereview.chromium.org/2421363002/ )

Reason for revert:
breaking win-pgo build

Original issue's description:
> Use the Chromium-side script to run the PGO benchmarks.
>
> BUG=309849
>
> Committed: https://chromium.googlesource.com/chromium/tools/build/+/7ae96413206814a587e3e5921017762be6257983

TBR=scottmg@chromium.org,sebmarchand@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=309849

Review-Url: https://codereview.chromium.org/2422373003
diff --git a/scripts/slave/recipe_modules/pgo/api.py b/scripts/slave/recipe_modules/pgo/api.py
index 8ff8de4..f938ab14 100644
--- a/scripts/slave/recipe_modules/pgo/api.py
+++ b/scripts/slave/recipe_modules/pgo/api.py
@@ -65,16 +65,24 @@
     """
     Run a suite of telemetry benchmarks to generate some profiling data.
     """
-    args = [
-        '--browser-type', self.m.chromium.c.build_config_fs.lower(),
-        '--target-cpu', self.m.chromium.c.gyp_env.GYP_DEFINES['target_arch'],
-        '--build-dir', self.m.chromium.output_dir,
-    ]
-    self.m.python(
-        'Profiling benchmarks.',
-        self.m.path['checkout'].join('build', 'win',
-                                     'run_pgo_profiling_benchmarks.py'),
-        args)
+    for benchmark in _BENCHMARKS_TO_RUN:
+      try:
+        args = [
+            '--checkout-dir', self.m.path['checkout'],
+            '--browser-type', self.m.chromium.c.build_config_fs.lower(),
+            '--target-bits', self.m.chromium.c.TARGET_BITS,
+            '--build-dir', self.m.chromium.output_dir,
+            '--benchmark', benchmark,
+        ]
+        self.m.python(
+          'Telemetry benchmark: %s' % benchmark,
+          self.resource('run_benchmark.py'),
+          args)
+      except self.m.step.StepFailure:
+        # Turn the failures into warning, we shouldn't stop the build for a
+        # benchmark.
+        step_result = self.m.step.active_result
+        step_result.presentation.status = self.m.step.WARNING
 
   def _compile_optimized_image(self, bot_config):
     """
diff --git a/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder.json b/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder.json
index 93fc414..4c77d62 100644
--- a/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder.json
+++ b/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder.json
@@ -220,15 +220,433 @@
     "cmd": [
       "python",
       "-u",
-      "[SLAVE_BUILD]\\src\\build\\win\\run_pgo_profiling_benchmarks.py",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
       "--browser-type",
       "release",
-      "--target-cpu",
-      "ia32",
+      "--target-bits",
+      "32",
       "--build-dir",
-      "[SLAVE_BUILD]\\src\\out\\Release"
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibstyleprototype"
     ],
-    "name": "Profiling benchmarks."
+    "name": "Telemetry benchmark: dromaeo.jslibstyleprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibeventprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibeventprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "speedometer"
+    ],
+    "name": "Telemetry benchmark: speedometer"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "smoothness.top_25_smooth"
+    ],
+    "name": "Telemetry benchmark: smoothness.top_25_smooth"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "octane"
+    ],
+    "name": "Telemetry benchmark: octane"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.svg"
+    ],
+    "name": "Telemetry benchmark: blink_perf.svg"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraverseprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraverseprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_style.top_25"
+    ],
+    "name": "Telemetry benchmark: blink_style.top_25"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoreattr"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoreattr"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.cssqueryjquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.cssqueryjquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibattrprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibattrprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "sunspider"
+    ],
+    "name": "Telemetry benchmark: sunspider"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoretraverse"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoretraverse"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoremodify"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoremodify"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.dom"
+    ],
+    "name": "Telemetry benchmark: blink_perf.dom"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "indexeddb_perf"
+    ],
+    "name": "Telemetry benchmark: indexeddb_perf"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.canvas"
+    ],
+    "name": "Telemetry benchmark: blink_perf.canvas"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcorequery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcorequery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.bindings"
+    ],
+    "name": "Telemetry benchmark: blink_perf.bindings"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraversejquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraversejquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibmodifyprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibmodifyprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "media.tough_video_cases"
+    ],
+    "name": "Telemetry benchmark: media.tough_video_cases"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.css"
+    ],
+    "name": "Telemetry benchmark: blink_perf.css"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.paint"
+    ],
+    "name": "Telemetry benchmark: blink_perf.paint"
   },
   {
     "cmd": [
diff --git a/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder_benchmark_failure.json b/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder_benchmark_failure.json
new file mode 100644
index 0000000..ecab859
--- /dev/null
+++ b/scripts/slave/recipe_modules/pgo/example.expected/full_chromium_pgo_test_Test_builder_benchmark_failure.json
@@ -0,0 +1,733 @@
+[
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_PACKAGE_REPO[build]\\scripts\\slave\\kill_processes.py"
+    ],
+    "name": "taskkill"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
+      "--spec",
+      "cache_dir = '[GIT_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src', 'url': 'https://chromium.googlesource.com/chromium/src.git'}]",
+      "--patch_root",
+      "src",
+      "--revision_mapping_file",
+      "{\"src\": \"got_revision\", \"src/buildtools\": \"got_buildtools_revision\", \"src/native_client\": \"got_nacl_revision\", \"src/third_party/angle\": \"got_angle_revision\", \"src/third_party/webrtc\": \"got_webrtc_revision\", \"src/tools/swarming_client\": \"got_swarming_client_revision\", \"src/v8\": \"got_v8_revision\"}",
+      "--git-cache-dir",
+      "[GIT_CACHE]",
+      "--output_json",
+      "/path/to/tmp/json",
+      "--revision",
+      "src@HEAD",
+      "--output_manifest"
+    ],
+    "env": {
+      "PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
+    },
+    "name": "bot_update",
+    "~followup_annotations": [
+      "@@@STEP_TEXT@Some step text@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"did_run\": true, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"fixed_revisions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src\": \"HEAD\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"f27fede2220bcd326aee3e86ddfd4ebd0fe58cb9\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/buildtools\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/buildtools.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"f0319a328b2809876916353cb994259692140934\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/native_client\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/native_client.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"d998e125e8253980d76e269b7982aeeefc1b9b50\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/third_party/angle\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/third_party/angle.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"fac9503c46405f77757b9a728eb85b8d7bc6080c\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/third_party/webrtc\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/third_party/webrtc.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"0f90628433546e61d9268596da93418c623137f4\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/tools/swarming_client\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/tools/swarming_client.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"a0ee5d99f1d4b38ddaa4c759c837980b63b99566\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/v8\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/src/v8.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"801ada225ddc271c132c3a35f03975671d43e399\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"patch_root\": \"src\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_angle_revision\": \"fac9503c46405f77757b9a728eb85b8d7bc6080c\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_angle_revision_cp\": \"refs/heads/master@{#297276}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_buildtools_revision\": \"f0319a328b2809876916353cb994259692140934\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_buildtools_revision_cp\": \"refs/heads/master@{#182578}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_nacl_revision\": \"d998e125e8253980d76e269b7982aeeefc1b9b50\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_nacl_revision_cp\": \"refs/heads/master@{#274981}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"f27fede2220bcd326aee3e86ddfd4ebd0fe58cb9\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/master@{#170242}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_swarming_client_revision\": \"a0ee5d99f1d4b38ddaa4c759c837980b63b99566\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_swarming_client_revision_cp\": \"refs/heads/master@{#276089}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_v8_revision\": \"801ada225ddc271c132c3a35f03975671d43e399\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_v8_revision_cp\": \"refs/heads/master@{#43426}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_webrtc_revision\": \"0f90628433546e61d9268596da93418c623137f4\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_webrtc_revision_cp\": \"refs/heads/master@{#120644}\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"root\": \"src\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"step_text\": \"Some step text\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@SET_BUILD_PROPERTY@got_nacl_revision@\"d998e125e8253980d76e269b7982aeeefc1b9b50\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_swarming_client_revision@\"a0ee5d99f1d4b38ddaa4c759c837980b63b99566\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_buildtools_revision_cp@\"refs/heads/master@{#182578}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_webrtc_revision@\"0f90628433546e61d9268596da93418c623137f4\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"f27fede2220bcd326aee3e86ddfd4ebd0fe58cb9\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_nacl_revision_cp@\"refs/heads/master@{#274981}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_angle_revision@\"fac9503c46405f77757b9a728eb85b8d7bc6080c\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_v8_revision@\"801ada225ddc271c132c3a35f03975671d43e399\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_v8_revision_cp@\"refs/heads/master@{#43426}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_swarming_client_revision_cp@\"refs/heads/master@{#276089}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_webrtc_revision_cp@\"refs/heads/master@{#120644}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#170242}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_angle_revision_cp@\"refs/heads/master@{#297276}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_buildtools_revision@\"f0319a328b2809876916353cb994259692140934\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n  chromium_utils.RemoveDirectory(sys.argv[1])\n",
+      "[SLAVE_BUILD]\\src\\out\\Release"
+    ],
+    "name": "rmtree clobber",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@python.inline@@@@",
+      "@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
+      "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
+      "@@@STEP_LOG_LINE@python.inline@@@@",
+      "@@@STEP_LOG_LINE@python.inline@@@@",
+      "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
+      "@@@STEP_LOG_LINE@python.inline@  chromium_utils.RemoveDirectory(sys.argv[1])@@@",
+      "@@@STEP_LOG_END@python.inline@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\gclient.py",
+      "runhooks"
+    ],
+    "cwd": "[SLAVE_BUILD]\\src",
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json",
+      "GYP_DEFINES": "buildtype=Official chrome_pgo_phase=1 component=static_library fastbuild=0 target_arch=ia32 use_goma=0",
+      "GYP_MSVS_VERSION": "2015",
+      "PATH": "[SLAVE_BUILD]\\src\\out\\Release;%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
+    },
+    "name": "gclient Runhooks: Instrumentation phase."
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[SLAVE_BUILD]\\src\\tools\\mb\\mb.py",
+      "gen",
+      "-m",
+      "chromium_pgo.test",
+      "-b",
+      "Test builder",
+      "--config-file",
+      "[SLAVE_BUILD]\\src\\tools\\mb\\mb_config.pyl",
+      "--phase",
+      "1",
+      "//out/Release"
+    ],
+    "cwd": "[SLAVE_BUILD]\\src",
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json",
+      "GYP_MSVS_VERSION": "2015"
+    },
+    "name": "generate_build_files"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\nchromium_utils.RemoveFilesWildcards(sys.argv[1], root=sys.argv[2])\n",
+      "*.pg[cd]",
+      "[SLAVE_BUILD]\\src\\out\\Release"
+    ],
+    "name": "rmwildcard *.pg[cd] in [SLAVE_BUILD]\\src\\out\\Release",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@python.inline@@@@",
+      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+      "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
+      "@@@STEP_LOG_LINE@python.inline@@@@",
+      "@@@STEP_LOG_LINE@python.inline@chromium_utils.RemoveFilesWildcards(sys.argv[1], root=sys.argv[2])@@@",
+      "@@@STEP_LOG_END@python.inline@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_PACKAGE_REPO[build]\\scripts\\tools\\runit.py",
+      "--show-path",
+      "python",
+      "RECIPE_PACKAGE_REPO[build]\\scripts\\slave\\compile.py",
+      "--gsutil-py-path",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\gsutil.py",
+      "--ninja-path",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\ninja.exe",
+      "--target",
+      "Release",
+      "--src-dir",
+      "[SLAVE_BUILD]\\src",
+      "--goma-cache-dir",
+      "[GOMA_CACHE]",
+      "--buildbot-buildername",
+      "Test builder",
+      "--buildbot-mastername",
+      "chromium_pgo.test",
+      "--buildbot-slavename",
+      "TestSlavename",
+      "--goma-deps-cache-file",
+      "Test_builder.gomadeps",
+      "--",
+      "chrome"
+    ],
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json",
+      "PATH": "[SLAVE_BUILD]\\src\\out\\Release;%(PATH)s"
+    },
+    "name": "Compile: Instrumentation phase."
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibstyleprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibstyleprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibeventprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibeventprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "speedometer"
+    ],
+    "name": "Telemetry benchmark: speedometer"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "smoothness.top_25_smooth"
+    ],
+    "name": "Telemetry benchmark: smoothness.top_25_smooth"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "octane"
+    ],
+    "name": "Telemetry benchmark: octane"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.svg"
+    ],
+    "name": "Telemetry benchmark: blink_perf.svg"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraverseprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraverseprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_style.top_25"
+    ],
+    "name": "Telemetry benchmark: blink_style.top_25"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoreattr"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoreattr"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.cssqueryjquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.cssqueryjquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibattrprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibattrprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "sunspider"
+    ],
+    "name": "Telemetry benchmark: sunspider",
+    "~followup_annotations": [
+      "step returned non-zero exit code: 1",
+      "@@@STEP_WARNINGS@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoretraverse"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoretraverse"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoremodify"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoremodify"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.dom"
+    ],
+    "name": "Telemetry benchmark: blink_perf.dom"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "indexeddb_perf"
+    ],
+    "name": "Telemetry benchmark: indexeddb_perf"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.canvas"
+    ],
+    "name": "Telemetry benchmark: blink_perf.canvas"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcorequery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcorequery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.bindings"
+    ],
+    "name": "Telemetry benchmark: blink_perf.bindings"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraversejquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraversejquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibmodifyprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibmodifyprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "media.tough_video_cases"
+    ],
+    "name": "Telemetry benchmark: media.tough_video_cases"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.css"
+    ],
+    "name": "Telemetry benchmark: blink_perf.css"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.paint"
+    ],
+    "name": "Telemetry benchmark: blink_perf.paint"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\gclient.py",
+      "runhooks"
+    ],
+    "cwd": "[SLAVE_BUILD]\\src",
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json",
+      "GYP_DEFINES": "buildtype=Official chrome_pgo_phase=2 component=static_library fastbuild=0 target_arch=ia32 use_goma=0",
+      "GYP_MSVS_VERSION": "2015",
+      "PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
+    },
+    "name": "gclient Runhooks: Optimization phase."
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[SLAVE_BUILD]\\src\\tools\\mb\\mb.py",
+      "gen",
+      "-m",
+      "chromium_pgo.test",
+      "-b",
+      "Test builder",
+      "--config-file",
+      "[SLAVE_BUILD]\\src\\tools\\mb\\mb_config.pyl",
+      "--phase",
+      "2",
+      "//out/Release"
+    ],
+    "cwd": "[SLAVE_BUILD]\\src",
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json",
+      "GYP_MSVS_VERSION": "2015"
+    },
+    "name": "generate_build_files (2)"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_PACKAGE_REPO[build]\\scripts\\tools\\runit.py",
+      "--show-path",
+      "python",
+      "RECIPE_PACKAGE_REPO[build]\\scripts\\slave\\compile.py",
+      "--gsutil-py-path",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\gsutil.py",
+      "--ninja-path",
+      "RECIPE_PACKAGE_REPO[depot_tools]\\ninja.exe",
+      "--target",
+      "Release",
+      "--src-dir",
+      "[SLAVE_BUILD]\\src",
+      "--goma-cache-dir",
+      "[GOMA_CACHE]",
+      "--buildbot-buildername",
+      "Test builder",
+      "--buildbot-mastername",
+      "chromium_pgo.test",
+      "--buildbot-slavename",
+      "TestSlavename",
+      "--goma-deps-cache-file",
+      "Test_builder.gomadeps",
+      "--",
+      "chrome"
+    ],
+    "env": {
+      "GOMA_SERVICE_ACCOUNT_JSON_FILE": "C:\\creds\\service_accounts\\service-account-goma-client.json"
+    },
+    "name": "Compile: Optimization phase."
+  },
+  {
+    "name": "$result",
+    "recipe_result": null,
+    "status_code": 0
+  }
+]
\ No newline at end of file
diff --git a/scripts/slave/recipe_modules/pgo/example.py b/scripts/slave/recipe_modules/pgo/example.py
index d8a1833..c661d9c 100644
--- a/scripts/slave/recipe_modules/pgo/example.py
+++ b/scripts/slave/recipe_modules/pgo/example.py
@@ -56,3 +56,12 @@
         api.platform('win', 64)
       )
 
+  yield (
+    api.test('full_%s_%s_benchmark_failure' %
+        (_sanitize_nonalpha('chromium_pgo.test'),
+         _sanitize_nonalpha('Test builder'))) +
+    api.properties.generic(mastername='chromium_pgo.test',
+                           buildername='Test builder') +
+    api.platform('win', 32) +
+    api.step_data('Telemetry benchmark: sunspider', retcode=1)
+  )
diff --git a/scripts/slave/recipe_modules/pgo/resources/run_benchmark.py b/scripts/slave/recipe_modules/pgo/resources/run_benchmark.py
new file mode 100644
index 0000000..35782f0
--- /dev/null
+++ b/scripts/slave/recipe_modules/pgo/resources/run_benchmark.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Run a profiling benchmark for a PGO build.
+
+This wrapper script is required so we can find the path to pgosweep.exe.
+"""
+
+import json
+import optparse
+import os
+import subprocess
+import sys
+
+
+def find_pgosweep(chrome_checkout_dir, target_bits):
+  """Find the directory containing pgosweep.exe."""
+  win_toolchain_json_file = os.path.join(chrome_checkout_dir, 'build',
+      'win_toolchain.json')
+  if not os.path.exists(win_toolchain_json_file):
+    print 'The toolchain JSON file is missing.'
+    return
+  with open(win_toolchain_json_file) as temp_f:
+    toolchain_data = json.load(temp_f)
+  if not os.path.isdir(toolchain_data['path']):
+    print 'The toolchain JSON file is invalid.'
+    return
+
+  pgo_sweep_dir = os.path.join(toolchain_data['path'], 'VC', 'bin')
+  if target_bits == 64:
+    pgo_sweep_dir = os.path.join(pgo_sweep_dir, 'amd64')
+
+  if not os.path.exists(os.path.join(pgo_sweep_dir, 'pgosweep.exe')):
+    print 'pgosweep.exe is missing from %s.' % pgo_sweep_dir
+    return
+
+  return pgo_sweep_dir
+
+
+def main():
+  parser = optparse.OptionParser(usage='%prog [options]')
+  parser.add_option(
+       '--checkout-dir', help='The Chrome checkout directory.')
+  parser.add_option(
+      '--browser-type', help='The browser type (to be passed to Telemetry\'s '
+                              'benchmark runner).')
+  parser.add_option('--target-bits', help='The target\'s bitness.', type=int)
+  parser.add_option('--benchmark', help='The benchmark to run.')
+  parser.add_option('--build-dir', help='Chrome build directory.')
+  options, _ = parser.parse_args()
+
+  if not options.checkout_dir:
+    parser.error('--checkout-dir is required')
+  if not options.browser_type:
+    parser.error('--browser-type is required')
+  if not options.target_bits:
+    parser.error('--target-bits is required')
+  if not options.benchmark:
+    parser.error('--benchmark is required')
+  if not options.build_dir:
+    parser.error('--build-dir is required')
+
+  # Starts by finding the directory containing pgosweep.exe
+  pgo_sweep_dir = find_pgosweep(options.checkout_dir, options.target_bits)
+  if not pgo_sweep_dir:
+    return 1
+
+  # Then find the run_benchmark script.
+  chrome_run_benchmark_script = os.path.join(options.checkout_dir, 'tools',
+                                             'perf', 'run_benchmark')
+  if not os.path.exists(chrome_run_benchmark_script):
+    print ('Unable to find the run_benchmark script (%s doesn\'t exist) ' %
+           chrome_run_benchmark_script)
+    return 1
+
+  # Augment the PATH to make sure that the benchmarking script can find
+  # pgosweep.exe and its runtime libraries.
+  env = os.environ.copy()
+  env['PATH'] = str(os.pathsep.join([pgo_sweep_dir, options.build_dir,
+                                     os.environ['PATH']]))
+  env['PogoSafeMode'] = '1'
+  # Apply a scaling factor of 0.5 to the PGO profiling buffers for the 32-bit
+  # builds, without this the buffers will be too large and the process will
+  # fail to start. See crbug.com/632864#c22.
+  if options.target_bits == 32:
+    env['VCPROFILE_ALLOC_SCALE'] = '0.5'
+
+  benchmark_command = [
+      sys.executable,
+      chrome_run_benchmark_script,
+      '--browser', options.browser_type,
+      '--profiler', 'win_pgo_profiler',
+      options.benchmark
+    ]
+  return subprocess.call(benchmark_command, env=env)
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_PGO_Builder.json b/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_PGO_Builder.json
index 5aad9b2..f01a151 100644
--- a/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_PGO_Builder.json
+++ b/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_PGO_Builder.json
@@ -220,15 +220,433 @@
     "cmd": [
       "python",
       "-u",
-      "[SLAVE_BUILD]\\src\\build\\win\\run_pgo_profiling_benchmarks.py",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
       "--browser-type",
       "release",
-      "--target-cpu",
-      "ia32",
+      "--target-bits",
+      "32",
       "--build-dir",
-      "[SLAVE_BUILD]\\src\\out\\Release"
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibstyleprototype"
     ],
-    "name": "Profiling benchmarks."
+    "name": "Telemetry benchmark: dromaeo.jslibstyleprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibeventprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibeventprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "speedometer"
+    ],
+    "name": "Telemetry benchmark: speedometer"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "smoothness.top_25_smooth"
+    ],
+    "name": "Telemetry benchmark: smoothness.top_25_smooth"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "octane"
+    ],
+    "name": "Telemetry benchmark: octane"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.svg"
+    ],
+    "name": "Telemetry benchmark: blink_perf.svg"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraverseprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraverseprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_style.top_25"
+    ],
+    "name": "Telemetry benchmark: blink_style.top_25"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoreattr"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoreattr"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.cssqueryjquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.cssqueryjquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibattrprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibattrprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "sunspider"
+    ],
+    "name": "Telemetry benchmark: sunspider"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoretraverse"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoretraverse"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoremodify"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoremodify"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.dom"
+    ],
+    "name": "Telemetry benchmark: blink_perf.dom"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "indexeddb_perf"
+    ],
+    "name": "Telemetry benchmark: indexeddb_perf"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.canvas"
+    ],
+    "name": "Telemetry benchmark: blink_perf.canvas"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcorequery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcorequery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.bindings"
+    ],
+    "name": "Telemetry benchmark: blink_perf.bindings"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraversejquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraversejquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibmodifyprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibmodifyprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "media.tough_video_cases"
+    ],
+    "name": "Telemetry benchmark: media.tough_video_cases"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.css"
+    ],
+    "name": "Telemetry benchmark: blink_perf.css"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.paint"
+    ],
+    "name": "Telemetry benchmark: blink_perf.paint"
   },
   {
     "cmd": [
diff --git a/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_x64_PGO_Builder.json b/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_x64_PGO_Builder.json
index 5b7645e..64fd2cc 100644
--- a/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_x64_PGO_Builder.json
+++ b/scripts/slave/recipes/chromium_pgo.expected/full_chromium_fyi_Chromium_Win_x64_PGO_Builder.json
@@ -220,15 +220,433 @@
     "cmd": [
       "python",
       "-u",
-      "[SLAVE_BUILD]\\src\\build\\win\\run_pgo_profiling_benchmarks.py",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
       "--browser-type",
       "release_x64",
-      "--target-cpu",
-      "x64",
+      "--target-bits",
+      "64",
       "--build-dir",
-      "[SLAVE_BUILD]\\src\\out\\Release_x64"
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibstyleprototype"
     ],
-    "name": "Profiling benchmarks."
+    "name": "Telemetry benchmark: dromaeo.jslibstyleprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibeventprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibeventprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "speedometer"
+    ],
+    "name": "Telemetry benchmark: speedometer"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "smoothness.top_25_smooth"
+    ],
+    "name": "Telemetry benchmark: smoothness.top_25_smooth"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "octane"
+    ],
+    "name": "Telemetry benchmark: octane"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.svg"
+    ],
+    "name": "Telemetry benchmark: blink_perf.svg"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibtraverseprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraverseprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_style.top_25"
+    ],
+    "name": "Telemetry benchmark: blink_style.top_25"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.domcoreattr"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoreattr"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.cssqueryjquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.cssqueryjquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibattrprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibattrprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "sunspider"
+    ],
+    "name": "Telemetry benchmark: sunspider"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.domcoretraverse"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoretraverse"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.domcoremodify"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoremodify"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.dom"
+    ],
+    "name": "Telemetry benchmark: blink_perf.dom"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "indexeddb_perf"
+    ],
+    "name": "Telemetry benchmark: indexeddb_perf"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.canvas"
+    ],
+    "name": "Telemetry benchmark: blink_perf.canvas"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.domcorequery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcorequery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.bindings"
+    ],
+    "name": "Telemetry benchmark: blink_perf.bindings"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibtraversejquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraversejquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "dromaeo.jslibmodifyprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibmodifyprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "media.tough_video_cases"
+    ],
+    "name": "Telemetry benchmark: media.tough_video_cases"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.css"
+    ],
+    "name": "Telemetry benchmark: blink_perf.css"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release_x64",
+      "--target-bits",
+      "64",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release_x64",
+      "--benchmark",
+      "blink_perf.paint"
+    ],
+    "name": "Telemetry benchmark: blink_perf.paint"
   },
   {
     "cmd": [
diff --git a/scripts/slave/recipes/chromium_pgo.expected/full_tryserver_chromium_win_win_pgo.json b/scripts/slave/recipes/chromium_pgo.expected/full_tryserver_chromium_win_win_pgo.json
index 67f261c..95cab3e 100644
--- a/scripts/slave/recipes/chromium_pgo.expected/full_tryserver_chromium_win_win_pgo.json
+++ b/scripts/slave/recipes/chromium_pgo.expected/full_tryserver_chromium_win_win_pgo.json
@@ -228,15 +228,433 @@
     "cmd": [
       "python",
       "-u",
-      "[SLAVE_BUILD]\\src\\build\\win\\run_pgo_profiling_benchmarks.py",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
       "--browser-type",
       "release",
-      "--target-cpu",
-      "ia32",
+      "--target-bits",
+      "32",
       "--build-dir",
-      "[SLAVE_BUILD]\\src\\out\\Release"
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibstyleprototype"
     ],
-    "name": "Profiling benchmarks."
+    "name": "Telemetry benchmark: dromaeo.jslibstyleprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibeventprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibeventprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "speedometer"
+    ],
+    "name": "Telemetry benchmark: speedometer"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "smoothness.top_25_smooth"
+    ],
+    "name": "Telemetry benchmark: smoothness.top_25_smooth"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "octane"
+    ],
+    "name": "Telemetry benchmark: octane"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.svg"
+    ],
+    "name": "Telemetry benchmark: blink_perf.svg"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraverseprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraverseprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_style.top_25"
+    ],
+    "name": "Telemetry benchmark: blink_style.top_25"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoreattr"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoreattr"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.cssqueryjquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.cssqueryjquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibattrprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibattrprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "sunspider"
+    ],
+    "name": "Telemetry benchmark: sunspider"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoretraverse"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoretraverse"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcoremodify"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcoremodify"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.dom"
+    ],
+    "name": "Telemetry benchmark: blink_perf.dom"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "indexeddb_perf"
+    ],
+    "name": "Telemetry benchmark: indexeddb_perf"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.canvas"
+    ],
+    "name": "Telemetry benchmark: blink_perf.canvas"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.domcorequery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.domcorequery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.bindings"
+    ],
+    "name": "Telemetry benchmark: blink_perf.bindings"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibtraversejquery"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibtraversejquery"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "dromaeo.jslibmodifyprototype"
+    ],
+    "name": "Telemetry benchmark: dromaeo.jslibmodifyprototype"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "media.tough_video_cases"
+    ],
+    "name": "Telemetry benchmark: media.tough_video_cases"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.css"
+    ],
+    "name": "Telemetry benchmark: blink_perf.css"
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[build::pgo]\\resources\\run_benchmark.py",
+      "--checkout-dir",
+      "[SLAVE_BUILD]\\src",
+      "--browser-type",
+      "release",
+      "--target-bits",
+      "32",
+      "--build-dir",
+      "[SLAVE_BUILD]\\src\\out\\Release",
+      "--benchmark",
+      "blink_perf.paint"
+    ],
+    "name": "Telemetry benchmark: blink_perf.paint"
   },
   {
     "cmd": [