diff --git a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreAttr b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreAttr
index e071e75..4ad63c2 100644
--- a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreAttr
+++ b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreAttr
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", verify=False, host=host,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="dromaeo.domcoreattr",
                  tag="dromaeo.domcoreattr")
 
-    job.run_test("power_RPMTest", verify=False, host=host,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreModify b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreModify
index 4997f55..e9e671f 100644
--- a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreModify
+++ b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreModify
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="dromaeo.domcoremodify",
                  tag="dromaeo.domcoremodify")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreQuery b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreQuery
index 62057e2..d9115f4 100644
--- a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreQuery
+++ b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreQuery
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="dromaeo.domcorequery",
                  tag="dromaeo.domcorequery")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreTraverse b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreTraverse
index c15f4d0..9198a14 100644
--- a/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreTraverse
+++ b/server/site_tests/telemetry_Benchmarks/control.DromaeoDomCoreTraverse
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="dromaeo.domcoretraverse",
                  tag="dromaeo.domcoretraverse")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Kraken b/server/site_tests/telemetry_Benchmarks/control.Kraken
index 4412539..731a671 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Kraken
+++ b/server/site_tests/telemetry_Benchmarks/control.Kraken
@@ -17,19 +17,7 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="kraken", tag="kraken")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Media b/server/site_tests/telemetry_Benchmarks/control.Media
index ea4a926..5701b69 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Media
+++ b/server/site_tests/telemetry_Benchmarks/control.Media
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="media.chromeOS.tough_video_cases",
                  tag="media.chromeOS.tough_video_cases")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Media4k b/server/site_tests/telemetry_Benchmarks/control.Media4k
index f18a800..cf0d771 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Media4k
+++ b/server/site_tests/telemetry_Benchmarks/control.Media4k
@@ -18,20 +18,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="media.chromeOS4kOnly.tough_video_cases",
                  tag="media.chromeOS4kOnly.tough_video_cases")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Memory b/server/site_tests/telemetry_Benchmarks/control.Memory
index 60c1984..147eb1c 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Memory
+++ b/server/site_tests/telemetry_Benchmarks/control.Memory
@@ -17,11 +17,6 @@
 def run_benchmark(machine):
     host = hosts.create_host(machine)
 
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
     # The benchmark doesn't need the power off to run successfully, so there
     # is no dependency on rpm, as an RPM failure could cause the job to fail
     # before running the benchmark.
@@ -29,7 +24,4 @@
                  benchmark="memory.top_25",
                  tag="memory.top_25")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Octane b/server/site_tests/telemetry_Benchmarks/control.Octane
index bc6122f..1258887 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Octane
+++ b/server/site_tests/telemetry_Benchmarks/control.Octane
@@ -17,19 +17,7 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="octane", tag="octane")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.PageCycler b/server/site_tests/telemetry_Benchmarks/control.PageCycler
index 19d5a42..9b704bb 100644
--- a/server/site_tests/telemetry_Benchmarks/control.PageCycler
+++ b/server/site_tests/telemetry_Benchmarks/control.PageCycler
@@ -17,20 +17,8 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="page_cycler.typical_25",
                  tag="page_cycler.typical_25")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.RoboHornetPro b/server/site_tests/telemetry_Benchmarks/control.RoboHornetPro
index 95bfd41..848cc0a 100644
--- a/server/site_tests/telemetry_Benchmarks/control.RoboHornetPro
+++ b/server/site_tests/telemetry_Benchmarks/control.RoboHornetPro
@@ -17,19 +17,7 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="robohornet_pro", tag="robohornet_pro")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.Smoothness b/server/site_tests/telemetry_Benchmarks/control.Smoothness
index 8bbd5a7..a9103a6 100644
--- a/server/site_tests/telemetry_Benchmarks/control.Smoothness
+++ b/server/site_tests/telemetry_Benchmarks/control.Smoothness
@@ -17,19 +17,7 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="smoothness.top_25", tag="smoothness.top_25")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.SunSpider b/server/site_tests/telemetry_Benchmarks/control.SunSpider
index bab7b63..a0d369f 100644
--- a/server/site_tests/telemetry_Benchmarks/control.SunSpider
+++ b/server/site_tests/telemetry_Benchmarks/control.SunSpider
@@ -17,19 +17,7 @@
 
 def run_benchmark(machine):
     host = hosts.create_host(machine)
-
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
-    # The benchmark doesn't need the power off to run successfully, so there
-    # is no dependency on rpm, as an RPM failure could cause the job to fail
-    # before running the benchmark.
     job.run_test("telemetry_Benchmarks", host=host,
                  benchmark="sunspider", tag="sunspider")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
diff --git a/server/site_tests/telemetry_Benchmarks/control.TabSwitching b/server/site_tests/telemetry_Benchmarks/control.TabSwitching
index 20152e2..8e27bc8 100644
--- a/server/site_tests/telemetry_Benchmarks/control.TabSwitching
+++ b/server/site_tests/telemetry_Benchmarks/control.TabSwitching
@@ -18,11 +18,6 @@
 def run_benchmark(machine):
     host = hosts.create_host(machine)
 
-    # The benchmark reports power data when the DUT is on battery power, so
-    # attempt to turn the power off for the duration.
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=False, tag="off")
-
     # The benchmark doesn't need the power off to run successfully, so there
     # is no dependency on rpm, as an RPM failure could cause the job to fail
     # before running the benchmark.
@@ -30,7 +25,4 @@
                  benchmark="tab_switching.tough_energy_cases",
                  tag="tab_switching.tough_energy_cases")
 
-    job.run_test("power_RPMTest", host=host, verify=False,
-                 power_on=True, tag="on")
-
 parallel_simple(run_benchmark, machines)
