aboutsummaryrefslogtreecommitdiff
path: root/src/trace_processor/metrics/android/android_proxy_power.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace_processor/metrics/android/android_proxy_power.sql')
-rw-r--r--src/trace_processor/metrics/android/android_proxy_power.sql83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/trace_processor/metrics/android/android_proxy_power.sql b/src/trace_processor/metrics/android/android_proxy_power.sql
deleted file mode 100644
index c356edda4..000000000
--- a/src/trace_processor/metrics/android/android_proxy_power.sql
+++ /dev/null
@@ -1,83 +0,0 @@
---
--- Copyright 2020 The Android Open Source Project
---
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- https://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
-
--- This metric assigns a power drain rate in milliampers to each sched slice.
--- The power_profile table should be populated with device power profile data
--- before running the metric. It has the following scheme:
--- (device STRING, cpu INT, cluster INT, freq INT, power DOUBLE).
---
--- Metric usage examples:
--- 1) Compute the power cost of every thread in milliamper-seconds:
--- SELECT
--- utid,
--- SUM(dur * COALESCE(power_ma, 0) / 1e9) AS power_mas
--- FROM power_per_thread
--- GROUP BY utid;
--- 2) Compute the total power cost of all slices from a table 'my_slice':
--- CREATE VIEW my_slice_utid AS
--- SELECT ts, dur, utid
--- FROM my_slice
--- INNER JOIN thread_track ON track_id = thread_track.id;
---
--- CREATE VIRTUAL TABLE my_slice_power
--- USING SPAN_JOIN(power_per_thread PARTITIONED utid,
--- my_slice_utid PARTITIONED utid);
---
--- SELECT
--- SUM(dur * COALESCE(power_ma, 0) / 1e9) as power_mas
--- FROM my_slice_power;
-
-SELECT RUN_METRIC('android/android_cpu_agg.sql');
-SELECT RUN_METRIC('android/power_profile_data.sql');
-
-DROP VIEW IF EXISTS device;
-CREATE VIEW device AS
-WITH
- after_first_slash(str) AS (
- SELECT SUBSTR(str_value, INSTR(str_value, '/') + 1)
- FROM metadata
- WHERE name = 'android_build_fingerprint'
- ),
- before_second_slash(str) AS (
- SELECT SUBSTR(str, 0, INSTR(str, '/'))
- FROM after_first_slash
- )
-SELECT str AS name FROM before_second_slash;
-
-DROP VIEW IF EXISTS power_view;
-CREATE VIEW power_view AS
-SELECT
- cpu_freq_view.cpu AS cpu,
- ts,
- dur,
- power AS power_ma
-FROM cpu_freq_view
-JOIN power_profile ON (
- power_profile.device = (SELECT name FROM device)
- AND power_profile.cpu = cpu_freq_view.cpu
- AND power_profile.freq = cpu_freq_view.freq_khz
-);
-
--- utid = 0 is a reserved value used to mark sched slices where CPU was idle.
--- It doesn't correspond to any real thread.
-DROP VIEW IF EXISTS sched_real_threads;
-CREATE VIEW sched_real_threads AS
-SELECT *
-FROM sched
-WHERE utid != 0;
-
-DROP TABLE IF EXISTS power_per_thread;
-CREATE VIRTUAL TABLE power_per_thread
-USING SPAN_LEFT_JOIN(sched_real_threads PARTITIONED cpu, power_view PARTITIONED cpu);