e3b013047d
Perf was nice and flat after https://skia-review.googlesource.com/c/skia/+/83240 but there was a 4-5x slowdown on the benchmarks themselves, indicating that perhaps we were running nanobench on the LITTLE cores (now on powersave) instead of the big cores we thought (which were recently scaled down). This experiment will show us FOR CERTAIN that we are running on core 0 or 1 which is at .6 max frequency. We expect to see a speedup from the previous results. This is leading to turning of CPUs we don't need to make sure nanobench is running on the ones we expect. Bug: skia: NOTRY=true Change-Id: Ida65181e4d90e778e65e3f22d761288b9ade64f6 Reviewed-on: https://skia-review.googlesource.com/84201 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Kevin Lubick <kjlubick@google.com>
890 lines
42 KiB
JSON
890 lines
42 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/resources"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
|
"[START_DIR]/skia/resources",
|
|
"/sdcard/revenge_of_the_skiabot/resources"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded SKP VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SKP_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"cat",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
|
"stdout": "/path/to/tmp/"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-f",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-rf",
|
|
"/sdcard/revenge_of_the_skiabot/skps"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/skps"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
|
"[START_DIR]/skp",
|
|
"/sdcard/revenge_of_the_skiabot/skps"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/tmp/SKP_VERSION",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded skimage VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SK_IMAGE_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"cat",
|
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
|
"stdout": "/path/to/tmp/"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-f",
|
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-rf",
|
|
"/sdcard/revenge_of_the_skiabot/images"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/images"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
|
"[START_DIR]/skimage",
|
|
"/sdcard/revenge_of_the_skiabot/images"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded SVG VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SVG_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SVG_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"cat",
|
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
|
"stdout": "/path/to/tmp/"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-f",
|
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"rm",
|
|
"-rf",
|
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
|
"[START_DIR]/svg",
|
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/tmp/SVG_VERSION",
|
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
|
],
|
|
"name": "get swarming bot id",
|
|
"stdout": "/path/to/tmp/",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
|
],
|
|
"name": "get swarming task id",
|
|
"stdout": "/path/to/tmp/",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"0",
|
|
"userspace"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "Set CPU 0's governor to userspace",
|
|
"timeout": 30,
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print log@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"0.6",
|
|
"0"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "Scale CPU 0 to 0.600000",
|
|
"timeout": 30,
|
|
"~followup_annotations": [
|
|
"step returned non-zero exit code: 1",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print log@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@else:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@",
|
|
"@@@STEP_EXCEPTION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"0.6",
|
|
"0"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "Scale CPU 0 to 0.600000 (attempt 2)",
|
|
"timeout": 30,
|
|
"~followup_annotations": [
|
|
"step returned non-zero exit code: 1",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print log@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@else:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@",
|
|
"@@@STEP_EXCEPTION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"0.6",
|
|
"0"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "Scale CPU 0 to 0.600000 (attempt 3)",
|
|
"timeout": 30,
|
|
"~followup_annotations": [
|
|
"step returned non-zero exit code: 1",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print log@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@else:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@",
|
|
"@@@STEP_EXCEPTION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
|
"[START_DIR]/out/Debug"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "dump log",
|
|
"timeout": 300,
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"reboot",
|
|
"-p"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "shut down device to quarantine bot"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"kill-server"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "kill adb server"
|
|
},
|
|
{
|
|
"name": "$result",
|
|
"reason": "Failed build steps: Scale CPU 0 to 0.600000, Scale CPU 0 to 0.600000 (attempt 2), Scale CPU 0 to 0.600000 (attempt 3), Scale CPU 0 to 0.600000 (attempt 3)",
|
|
"recipe_result": null,
|
|
"status_code": 1
|
|
}
|
|
] |