From de2f1dfebd9d28787cdfd77496f365ed3eb6894d Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 30 Nov 2017 09:23:17 -0500 Subject: Turn up Nexus10 CPU frequencies The previous list was created from scaling_min_freq and scaling_max_freq instead of cpuinfo_min_freq and cpuinfo_max_freq which are the actual mins and maxes, not the current (transient) settings of the governor. Before: Test-Release: 61 minutes Perf-Debug: 41 minutes After: Test-Release: 32 minutes Perf-Debug: 16 minutes NOTRY=true Bug: skia: Change-Id: I9b431e92d2abcecb4fe643389daddc912a1399e1 Reviewed-on: https://skia-review.googlesource.com/78141 Reviewed-by: Eric Boren Commit-Queue: Kevin Lubick --- .../flavor/examples/full.expected/retry_adb_command.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json') diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json index 8f4b392011..2278f50725 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json @@ -696,7 +696,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nmodel = sys.argv[2]\ntarget_percent = float(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nif model == 'Nexus10':\n available_freqs = [200000, 300000, 400000, 500000, 600000, 700000, 800000]\nelif model == 'Nexus7':\n # Nexus7 claims to support 1300000, but only really allows 1200000\n available_freqs = [51000, 102000, 204000, 340000, 475000, 640000, 760000,\n 860000, 1000000, 1100000, 1200000]\nelse:\n # Most devices give a list of their available frequencies.\n available_freqs = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'])\n\n # Check for message like '/system/bin/sh: file not found'\n if available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\n else:\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\nsubprocess.check_output([ADB, 'shell', 'echo \"userspace\" > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'])\n# If scaling_max_freq is lower than our attempted setting, it won't take.\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq' % freq])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq' % freq])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed' % freq])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq']).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nmodel = sys.argv[2]\ntarget_percent = float(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nif model == 'Nexus10':\n # Nexus10 doesn't list available frequencies, but it does give a\n # min and a max and seems to round to the nearest 100khz, so a\n # subset of those available are here.\n available_freqs = [200000, 400000, 600000, 800000, 1000000, 1200000,\n 1400000, 1700000]\nelif model == 'Nexus7':\n # Nexus7 claims to support 1300000, but only really allows 1200000\n available_freqs = [51000, 102000, 204000, 340000, 475000, 640000, 760000,\n 860000, 1000000, 1100000, 1200000]\nelse:\n # Most devices give a list of their available frequencies.\n available_freqs = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'])\n\n # Check for message like '/system/bin/sh: file not found'\n if available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\n else:\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\nsubprocess.check_output([ADB, 'shell', 'echo \"userspace\" > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'])\n# If scaling_max_freq is lower than our attempted setting, it won't take.\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq' % freq])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq' % freq])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed' % freq])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq']).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "adb.1.0.35", "NexusPlayer", "0.6" @@ -725,7 +725,11 @@ "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@if model == 'Nexus10':@@@", - "@@@STEP_LOG_LINE@python.inline@ available_freqs = [200000, 300000, 400000, 500000, 600000, 700000, 800000]@@@", + "@@@STEP_LOG_LINE@python.inline@ # Nexus10 doesn't list available frequencies, but it does give a@@@", + "@@@STEP_LOG_LINE@python.inline@ # min and a max and seems to round to the nearest 100khz, so a@@@", + "@@@STEP_LOG_LINE@python.inline@ # subset of those available are here.@@@", + "@@@STEP_LOG_LINE@python.inline@ available_freqs = [200000, 400000, 600000, 800000, 1000000, 1200000,@@@", + "@@@STEP_LOG_LINE@python.inline@ 1400000, 1700000]@@@", "@@@STEP_LOG_LINE@python.inline@elif model == 'Nexus7':@@@", "@@@STEP_LOG_LINE@python.inline@ # Nexus7 claims to support 1300000, but only really allows 1200000@@@", "@@@STEP_LOG_LINE@python.inline@ available_freqs = [51000, 102000, 204000, 340000, 475000, 640000, 760000,@@@", -- cgit v1.2.3