metric: Add Wattson thread attribution for trace

Add metric that attributes estimated power to individual threads for the
duration of the entire trace.

wattson_tasks_attribution.proto defines the output format for all power
attribution to tasks. Possible tasks include threads (this patch), and
potentially processes and packages in the future. The
wattson_tasks_attribution.sql is a helper metric that can be re-used in
the future for attributing power to other tasks.

Test: tools/diff_test_trace_processor.py out/linux/trace_processor_shell --name-filter '.*wattson.*'
Bug: 355070694
Change-Id: Ic323015c88d153e0cd0684b0b7cc37297ac50097
Signed-off-by: Samuel Wu <wusamuel@google.com>
diff --git a/Android.bp b/Android.bp
index f1d91c9..f3f4a52 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5305,6 +5305,7 @@
         "protos/perfetto/metrics/android/trace_quality.proto",
         "protos/perfetto/metrics/android/unsymbolized_frames.proto",
         "protos/perfetto/metrics/android/wattson_in_time_period.proto",
+        "protos/perfetto/metrics/android/wattson_tasks_attribution.proto",
         "protos/perfetto/metrics/chrome/all_chrome_metrics.proto",
         "protos/perfetto/metrics/chrome/args_class_names.proto",
         "protos/perfetto/metrics/chrome/dropped_frames.proto",
@@ -5400,6 +5401,7 @@
         "protos/perfetto/metrics/android/trace_quality.proto",
         "protos/perfetto/metrics/android/unsymbolized_frames.proto",
         "protos/perfetto/metrics/android/wattson_in_time_period.proto",
+        "protos/perfetto/metrics/android/wattson_tasks_attribution.proto",
         "protos/perfetto/metrics/metrics.proto",
     ],
     tools: [
@@ -5479,6 +5481,7 @@
         "protos/perfetto/metrics/android/trace_quality.proto",
         "protos/perfetto/metrics/android/unsymbolized_frames.proto",
         "protos/perfetto/metrics/android/wattson_in_time_period.proto",
+        "protos/perfetto/metrics/android/wattson_tasks_attribution.proto",
         "protos/perfetto/metrics/metrics.proto",
         "protos/perfetto/metrics/webview/all_webview_metrics.proto",
         "protos/perfetto/metrics/webview/webview_jank_approximation.proto",
@@ -12955,7 +12958,9 @@
         "src/trace_processor/metrics/sql/android/unsymbolized_frames.sql",
         "src/trace_processor/metrics/sql/android/wattson_app_startup.sql",
         "src/trace_processor/metrics/sql/android/wattson_rail_relations.sql",
+        "src/trace_processor/metrics/sql/android/wattson_tasks_attribution.sql",
         "src/trace_processor/metrics/sql/android/wattson_trace_rails.sql",
+        "src/trace_processor/metrics/sql/android/wattson_trace_threads.sql",
         "src/trace_processor/metrics/sql/chrome/actual_power_by_category.sql",
         "src/trace_processor/metrics/sql/chrome/actual_power_by_rail_mode.sql",
         "src/trace_processor/metrics/sql/chrome/chrome_args_class_names.sql",
diff --git a/BUILD b/BUILD
index c5ec15a..18695c7 100644
--- a/BUILD
+++ b/BUILD
@@ -2207,7 +2207,9 @@
         "src/trace_processor/metrics/sql/android/unsymbolized_frames.sql",
         "src/trace_processor/metrics/sql/android/wattson_app_startup.sql",
         "src/trace_processor/metrics/sql/android/wattson_rail_relations.sql",
+        "src/trace_processor/metrics/sql/android/wattson_tasks_attribution.sql",
         "src/trace_processor/metrics/sql/android/wattson_trace_rails.sql",
+        "src/trace_processor/metrics/sql/android/wattson_trace_threads.sql",
     ],
 )
 
@@ -4806,6 +4808,7 @@
         "protos/perfetto/metrics/android/trace_quality.proto",
         "protos/perfetto/metrics/android/unsymbolized_frames.proto",
         "protos/perfetto/metrics/android/wattson_in_time_period.proto",
+        "protos/perfetto/metrics/android/wattson_tasks_attribution.proto",
     ],
     visibility = [
         PERFETTO_CONFIG.proto_library_visibility,
diff --git a/protos/perfetto/metrics/android/BUILD.gn b/protos/perfetto/metrics/android/BUILD.gn
index d20a6a6..fc3cfb4 100644
--- a/protos/perfetto/metrics/android/BUILD.gn
+++ b/protos/perfetto/metrics/android/BUILD.gn
@@ -83,5 +83,6 @@
     "trace_quality.proto",
     "unsymbolized_frames.proto",
     "wattson_in_time_period.proto",
+    "wattson_tasks_attribution.proto",
   ]
 }
diff --git a/protos/perfetto/metrics/android/wattson_tasks_attribution.proto b/protos/perfetto/metrics/android/wattson_tasks_attribution.proto
new file mode 100644
index 0000000..f505c04
--- /dev/null
+++ b/protos/perfetto/metrics/android/wattson_tasks_attribution.proto
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2024 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
+ *
+ *      http://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.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+message AndroidWattsonTasksAttributionMetric {
+  optional int32 metric_version = 1;
+  // Lists tasks (e.g. threads, process, package) and associated estimates
+  repeated AndroidWattsonTaskInfo task_info = 2;
+}
+
+message AndroidWattsonTaskInfo {
+  // Average estimated power for wall duration in mW
+  optional float estimate_mw = 1;
+  // Total energy over wall duration across CPUs in mWs
+  optional float estimate_mws = 2;
+  optional string thread_name = 3;
+  optional string process_name = 4;
+  optional string package_name = 5;
+  optional int32 thread_id = 6;
+  optional int32 process_id = 7;
+}
diff --git a/protos/perfetto/metrics/metrics.proto b/protos/perfetto/metrics/metrics.proto
index f6d53b8..9efe6fd 100644
--- a/protos/perfetto/metrics/metrics.proto
+++ b/protos/perfetto/metrics/metrics.proto
@@ -77,6 +77,7 @@
 import "protos/perfetto/metrics/android/android_broadcasts_metric.proto";
 import "protos/perfetto/metrics/android/wattson_in_time_period.proto";
 import "protos/perfetto/metrics/android/android_anomaly_metric.proto";
+import "protos/perfetto/metrics/android/wattson_tasks_attribution.proto";
 
 // Trace processor metadata
 message TraceMetadata {
@@ -123,7 +124,7 @@
 
 // Root message for all Perfetto-based metrics.
 //
-// Next id: 72
+// Next id: 73
 message TraceMetrics {
   reserved 4, 10, 13, 14, 16, 19;
 
@@ -327,6 +328,9 @@
   // Android Anomaly metric
   optional AndroidAnomalyMetric android_anomaly = 71;
 
+  // Android Wattson app startup metrics.
+  optional AndroidWattsonTasksAttributionMetric wattson_trace_threads = 72;
+
   // Android
   // Demo extensions.
   extensions 450 to 499;
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index 3d91e72..f620981 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -2929,6 +2929,28 @@
 
 // End of protos/perfetto/metrics/android/wattson_in_time_period.proto
 
+// Begin of protos/perfetto/metrics/android/wattson_tasks_attribution.proto
+
+message AndroidWattsonTasksAttributionMetric {
+  optional int32 metric_version = 1;
+  // Lists tasks (e.g. threads, process, package) and associated estimates
+  repeated AndroidWattsonTaskInfo task_info = 2;
+}
+
+message AndroidWattsonTaskInfo {
+  // Average estimated power for wall duration in mW
+  optional float estimate_mw = 1;
+  // Total energy over wall duration across CPUs in mWs
+  optional float estimate_mws = 2;
+  optional string thread_name = 3;
+  optional string process_name = 4;
+  optional string package_name = 5;
+  optional int32 thread_id = 6;
+  optional int32 process_id = 7;
+}
+
+// End of protos/perfetto/metrics/android/wattson_tasks_attribution.proto
+
 // Begin of protos/perfetto/metrics/metrics.proto
 
 // Trace processor metadata
@@ -2976,7 +2998,7 @@
 
 // Root message for all Perfetto-based metrics.
 //
-// Next id: 72
+// Next id: 73
 message TraceMetrics {
   reserved 4, 10, 13, 14, 16, 19;
 
@@ -3180,6 +3202,9 @@
   // Android Anomaly metric
   optional AndroidAnomalyMetric android_anomaly = 71;
 
+  // Android Wattson app startup metrics.
+  optional AndroidWattsonTasksAttributionMetric wattson_trace_threads = 72;
+
   // Android
   // Demo extensions.
   extensions 450 to 499;
diff --git a/python/perfetto/trace_processor/metrics.descriptor b/python/perfetto/trace_processor/metrics.descriptor
index 1e2da15..00bd98a 100644
--- a/python/perfetto/trace_processor/metrics.descriptor
+++ b/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/src/trace_processor/metrics/sql/android/BUILD.gn b/src/trace_processor/metrics/sql/android/BUILD.gn
index ba8666e..4cacdbf 100644
--- a/src/trace_processor/metrics/sql/android/BUILD.gn
+++ b/src/trace_processor/metrics/sql/android/BUILD.gn
@@ -145,6 +145,8 @@
     "unsymbolized_frames.sql",
     "wattson_app_startup.sql",
     "wattson_rail_relations.sql",
+    "wattson_tasks_attribution.sql",
     "wattson_trace_rails.sql",
+    "wattson_trace_threads.sql",
   ]
 }
diff --git a/src/trace_processor/metrics/sql/android/wattson_tasks_attribution.sql b/src/trace_processor/metrics/sql/android/wattson_tasks_attribution.sql
new file mode 100644
index 0000000..8f98714
--- /dev/null
+++ b/src/trace_processor/metrics/sql/android/wattson_tasks_attribution.sql
@@ -0,0 +1,70 @@
+
+-- Copyright 2024 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.
+
+INCLUDE PERFETTO MODULE wattson.curves.grouped;
+INCLUDE PERFETTO MODULE viz.summary.threads_w_processes;
+
+-- Take only the Wattson estimations that are in the window of interest
+DROP TABLE IF EXISTS _windowed_wattson;
+CREATE VIRTUAL TABLE _windowed_wattson
+USING
+  SPAN_JOIN({{window_table}}, _system_state_mw);
+
+-- "Unpivot" the table so that table can by PARTITIONED BY cpu
+DROP TABLE IF EXISTS _unioned_windowed_wattson;
+CREATE PERFETTO TABLE _unioned_windowed_wattson AS
+  SELECT ts, dur, 0 as cpu, cpu0_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 0 = cpu)
+  UNION ALL
+  SELECT ts, dur, 1 as cpu, cpu1_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 1 = cpu)
+  UNION ALL
+  SELECT ts, dur, 2 as cpu, cpu2_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 2 = cpu)
+  UNION ALL
+  SELECT ts, dur, 3 as cpu, cpu3_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 3 = cpu)
+  UNION ALL
+  SELECT ts, dur, 4 as cpu, cpu4_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 4 = cpu)
+  UNION ALL
+  SELECT ts, dur, 5 as cpu, cpu5_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 5 = cpu)
+  UNION ALL
+  SELECT ts, dur, 6 as cpu, cpu6_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 6 = cpu)
+  UNION ALL
+  SELECT ts, dur, 7 as cpu, cpu7_mw as estimate_mw
+  FROM _windowed_wattson
+  WHERE EXISTS (SELECT cpu FROM _dev_cpu_policy_map WHERE 7 = cpu)
+  UNION ALL
+  SELECT ts, dur, -1 as cpu, dsu_scu_mw as estimate_mw
+  FROM _windowed_wattson;
+
+DROP TABLE IF EXISTS _windowed_threads_system_state;
+CREATE VIRTUAL TABLE _windowed_threads_system_state
+USING
+  SPAN_JOIN(
+    _unioned_windowed_wattson partitioned cpu,
+    _sched_w_thread_process_package_summary partitioned cpu
+  );
+
diff --git a/src/trace_processor/metrics/sql/android/wattson_trace_threads.sql b/src/trace_processor/metrics/sql/android/wattson_trace_threads.sql
new file mode 100644
index 0000000..455b876
--- /dev/null
+++ b/src/trace_processor/metrics/sql/android/wattson_trace_threads.sql
@@ -0,0 +1,68 @@
+
+-- Copyright 2024 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.
+
+INCLUDE PERFETTO MODULE wattson.curves.grouped;
+INCLUDE PERFETTO MODULE viz.summary.threads_w_processes;
+
+DROP VIEW IF EXISTS _wattson_period_windows;
+CREATE PERFETTO VIEW _wattson_period_windows AS
+SELECT
+  MIN(ts) as ts,
+  MAX(ts) - MIN(ts) as dur,
+  1 as period_id
+FROM _system_state_mw;
+
+SELECT RUN_METRIC(
+  'android/wattson_tasks_attribution.sql',
+  'window_table',
+  '_wattson_period_windows'
+);
+
+-- Group by unique thread ID and disregard CPUs, summing of power over all CPUs
+-- and all instances of the thread
+DROP VIEW IF EXISTS _wattson_thread_attribution;
+CREATE PERFETTO VIEW _wattson_thread_attribution AS
+SELECT
+  -- active time of thread divided by total time of trace
+  SUM(estimate_mw * dur) / 1000000000 as estimate_mws,
+  (
+    SUM(estimate_mw * dur) / (SELECT SUM(dur) from _windowed_wattson)
+  ) as estimate_mw,
+  thread_name,
+  process_name,
+  tid,
+  pid
+FROM _windowed_threads_system_state
+GROUP BY utid
+ORDER BY estimate_mw DESC;
+
+DROP VIEW IF EXISTS wattson_trace_threads_output;
+CREATE PERFETTO VIEW wattson_trace_threads_output AS
+SELECT AndroidWattsonTasksAttributionMetric(
+  'metric_version', 1,
+  'task_info', (
+    SELECT RepeatedField(
+      AndroidWattsonTaskInfo(
+        'estimate_mws', ROUND(estimate_mws, 6),
+        'estimate_mw', ROUND(estimate_mw, 6),
+        'thread_name', thread_name,
+        'process_name', process_name,
+        'thread_id', tid,
+        'process_id', pid
+      )
+    )
+    FROM _wattson_thread_attribution
+  )
+);
diff --git a/test/trace_processor/diff_tests/metrics/android/tests.py b/test/trace_processor/diff_tests/metrics/android/tests.py
index 76508c2..c9ebdab 100644
--- a/test/trace_processor/diff_tests/metrics/android/tests.py
+++ b/test/trace_processor/diff_tests/metrics/android/tests.py
@@ -457,6 +457,12 @@
         }
         """))
 
+  def test_wattson_trace_threads_output(self):
+    return DiffTestBlueprint(
+        trace=DataPath('android_cpu_eos.pb'),
+        query=Metric("wattson_trace_threads"),
+        out=Path('wattson_trace_threads.out'))
+
   def test_anomaly_metric(self):
     return DiffTestBlueprint(
         trace=DataPath('android_binder_metric_trace.atr'),
diff --git a/test/trace_processor/diff_tests/metrics/android/wattson_trace_threads.out b/test/trace_processor/diff_tests/metrics/android/wattson_trace_threads.out
new file mode 100644
index 0000000..11d67a5
--- /dev/null
+++ b/test/trace_processor/diff_tests/metrics/android/wattson_trace_threads.out
@@ -0,0 +1,3838 @@
+wattson_trace_threads {
+  metric_version: 1
+  task_info {
+    estimate_mws: 34.338558
+    estimate_mw: 3.970208
+    thread_name: "swapper"
+    thread_id: 0
+    process_id: 0
+  }
+  task_info {
+    estimate_mws: 19.853722
+    estimate_mw: 2.295478
+    thread_name: "RenderThread"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1986
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 17.530441
+    estimate_mw: 2.026861
+    thread_name: "Jit thread pool"
+    process_name: "system_server"
+    thread_id: 1344
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 16.980276
+    estimate_mw: 1.963251
+    thread_name: "surfaceflinger"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 755
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 14.908094
+    estimate_mw: 1.723667
+    thread_name: ".wearable.sysui"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1926
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 13.373357
+    estimate_mw: 1.546221
+    thread_name: "binder:685_3"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.display.composer-service"
+    thread_id: 804
+    process_id: 685
+  }
+  task_info {
+    estimate_mws: 6.747261
+    estimate_mw: 0.780115
+    thread_name: "binder:1302_7"
+    process_name: "system_server"
+    thread_id: 1671
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 6.504194
+    estimate_mw: 0.752012
+    thread_name: "binder:1302_A"
+    process_name: "system_server"
+    thread_id: 2015
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 4.858775
+    estimate_mw: 0.561769
+    thread_name: "android.anim"
+    process_name: "system_server"
+    thread_id: 1419
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 4.769787
+    estimate_mw: 0.551480
+    thread_name: "RenderEngine"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 788
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 4.672233
+    estimate_mw: 0.540201
+    thread_name: "kswapd0"
+    process_name: "kswapd0"
+    thread_id: 63
+    process_id: 63
+  }
+  task_info {
+    estimate_mws: 4.314495
+    estimate_mw: 0.498840
+    thread_name: "lowpool[2]"
+    process_name: "com.google.android.gms"
+    thread_id: 3525
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 4.117814
+    estimate_mw: 0.476100
+    thread_name: "logd.writer"
+    process_name: "/system/bin/logd"
+    thread_id: 221
+    process_id: 211
+  }
+  task_info {
+    estimate_mws: 4.108276
+    estimate_mw: 0.474997
+    thread_name: "binder:1302_17"
+    process_name: "system_server"
+    thread_id: 5202
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 3.723955
+    estimate_mw: 0.430562
+    thread_name: "binder:1302_6"
+    process_name: "system_server"
+    thread_id: 1662
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 3.666289
+    estimate_mw: 0.423895
+    thread_name: "e.watchface.rwf"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 1999
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 3.524869
+    estimate_mw: 0.407544
+    thread_name: "killall"
+    process_name: "/system/bin/sh"
+    thread_id: 5620
+    process_id: 5620
+  }
+  task_info {
+    estimate_mws: 3.495762
+    estimate_mw: 0.404178
+    thread_name: "CachedAppOptimi"
+    process_name: "system_server"
+    thread_id: 1773
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 3.459922
+    estimate_mw: 0.400034
+    thread_name: "logcat"
+    process_name: "logcat"
+    thread_id: 1230
+    process_id: 1230
+  }
+  task_info {
+    estimate_mws: 3.429554
+    estimate_mw: 0.396523
+    thread_name: "system_server"
+    process_name: "system_server"
+    thread_id: 1302
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 3.300661
+    estimate_mw: 0.381621
+    thread_name: "crtc_commit:80"
+    process_name: "crtc_commit:80"
+    thread_id: 244
+    process_id: 244
+  }
+  task_info {
+    estimate_mws: 3.194881
+    estimate_mw: 0.369391
+    thread_name: "InputDispatcher"
+    process_name: "system_server"
+    thread_id: 1783
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 3.011913
+    estimate_mw: 0.348236
+    thread_name: "binder:755_1"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 782
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 3.006022
+    estimate_mw: 0.347555
+    thread_name: "android.display"
+    process_name: "system_server"
+    thread_id: 1418
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 2.856301
+    estimate_mw: 0.330244
+    thread_name: "binder:524_2"
+    process_name: "/vendor/bin/mcu_mgmtd"
+    thread_id: 524
+    process_id: 524
+  }
+  task_info {
+    estimate_mws: 2.712443
+    estimate_mw: 0.313611
+    thread_name: "traced_probes"
+    process_name: "/system/bin/traced_probes"
+    thread_id: 904
+    process_id: 904
+  }
+  task_info {
+    estimate_mws: 2.550922
+    estimate_mw: 0.294936
+    thread_name: "kworker/u8:0"
+    process_name: "kworker/u8:0"
+    thread_id: 8
+    process_id: 8
+  }
+  task_info {
+    estimate_mws: 2.487099
+    estimate_mw: 0.287557
+    thread_name: "surfaceflinger"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 883
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 2.386123
+    estimate_mw: 0.275882
+    thread_name: "binder:1302_15"
+    process_name: "system_server"
+    thread_id: 3754
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 2.258779
+    estimate_mw: 0.261159
+    thread_name: "logd.reader.per"
+    process_name: "/system/bin/logd"
+    thread_id: 1274
+    process_id: 211
+  }
+  task_info {
+    estimate_mws: 2.171289
+    estimate_mw: 0.251043
+    thread_name: "RenderThread"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 2301
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 2.143151
+    estimate_mw: 0.247790
+    thread_name: "InputReader"
+    process_name: "system_server"
+    thread_id: 1784
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 2.091428
+    estimate_mw: 0.241810
+    thread_name: "rcu_preempt"
+    process_name: "rcu_preempt"
+    thread_id: 14
+    process_id: 14
+  }
+  task_info {
+    estimate_mws: 2.048920
+    estimate_mw: 0.236895
+    thread_name: "binder:1926_4"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2262
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 1.914560
+    estimate_mw: 0.221360
+    thread_name: "arable.systemui"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2171
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 1.854433
+    estimate_mw: 0.214409
+    thread_name: "android.ui"
+    process_name: "system_server"
+    thread_id: 1416
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.777087
+    estimate_mw: 0.205466
+    thread_name: "kworker/u8:4"
+    process_name: "kworker/u8:4"
+    thread_id: 431
+    process_id: 431
+  }
+  task_info {
+    estimate_mws: 1.773777
+    estimate_mw: 0.205083
+    thread_name: "TimerDispatch"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 865
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 1.760400
+    estimate_mw: 0.203537
+    thread_name: "ActivityManager"
+    process_name: "system_server"
+    thread_id: 1431
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.733169
+    estimate_mw: 0.200388
+    thread_name: "PowerManagerSer"
+    process_name: "system_server"
+    thread_id: 1506
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.639501
+    estimate_mw: 0.189558
+    thread_name: "WifiHandlerThre"
+    process_name: "system_server"
+    thread_id: 1818
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.631037
+    estimate_mw: 0.188580
+    thread_name: "binder:755_5"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 1987
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 1.605931
+    estimate_mw: 0.185677
+    thread_name: "kgsl_dispatcher"
+    process_name: "kgsl_dispatcher"
+    thread_id: 111
+    process_id: 111
+  }
+  task_info {
+    estimate_mws: 1.564964
+    estimate_mw: 0.180940
+    thread_name: "binder:1302_8"
+    process_name: "system_server"
+    thread_id: 1679
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.476619
+    estimate_mw: 0.170726
+    thread_name: "lowpool[5]"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3489
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 1.470155
+    estimate_mw: 0.169979
+    thread_name: "-Executor] idle"
+    process_name: "com.google.android.gms"
+    thread_id: 5591
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 1.469958
+    estimate_mw: 0.169956
+    thread_name: "binder:1302_B"
+    process_name: "system_server"
+    thread_id: 2033
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.390635
+    estimate_mw: 0.160785
+    thread_name: "binder:755_4"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 1125
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 1.327049
+    estimate_mw: 0.153433
+    thread_name: "batterystats-ha"
+    process_name: "system_server"
+    thread_id: 1484
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.312721
+    estimate_mw: 0.151776
+    thread_name: "statsd.writer"
+    process_name: "/apex/com.android.os.statsd/bin/statsd"
+    thread_id: 980
+    process_id: 545
+  }
+  task_info {
+    estimate_mws: 1.252738
+    estimate_mw: 0.144841
+    thread_name: "kworker/u8:2"
+    process_name: "kworker/u8:2"
+    thread_id: 62
+    process_id: 62
+  }
+  task_info {
+    estimate_mws: 1.251944
+    estimate_mw: 0.144749
+    thread_name: "app"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 867
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 1.233674
+    estimate_mw: 0.142637
+    thread_name: "system_server"
+    process_name: "system_server"
+    thread_id: 1343
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 1.228813
+    estimate_mw: 0.142075
+    thread_name: "irq/33-4520300."
+    process_name: "irq/33-4520300.qcom,bwmon-ddr"
+    thread_id: 95
+    process_id: 95
+  }
+  task_info {
+    estimate_mws: 1.068197
+    estimate_mw: 0.123504
+    thread_name: "logd.klogd"
+    process_name: "/system/bin/logd"
+    thread_id: 234
+    process_id: 211
+  }
+  task_info {
+    estimate_mws: 1.007066
+    estimate_mw: 0.116436
+    thread_name: "android.fg"
+    process_name: "system_server"
+    thread_id: 1415
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.969983
+    estimate_mw: 0.112149
+    thread_name: "rcuog/0"
+    process_name: "rcuog/0"
+    thread_id: 15
+    process_id: 15
+  }
+  task_info {
+    estimate_mws: 0.952084
+    estimate_mw: 0.110079
+    thread_name: "binder:1926_3"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1940
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.946746
+    estimate_mw: 0.109462
+    thread_name: "gle.android.gms"
+    process_name: "com.google.android.gms"
+    thread_id: 2856
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.930774
+    estimate_mw: 0.107616
+    thread_name: "crtc_event:80"
+    process_name: "crtc_event:80"
+    thread_id: 245
+    process_id: 245
+  }
+  task_info {
+    estimate_mws: 0.907425
+    estimate_mw: 0.104916
+    thread_name: "binder:755_3"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 1124
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.897620
+    estimate_mw: 0.103782
+    thread_name: "init"
+    process_name: "/system/bin/init"
+    thread_id: 143
+    process_id: 1
+  }
+  task_info {
+    estimate_mws: 0.880853
+    estimate_mw: 0.101844
+    thread_name: "wmshell.main"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2260
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.870598
+    estimate_mw: 0.100658
+    thread_name: "Primes-1"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1944
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.847641
+    estimate_mw: 0.098004
+    thread_name: "init"
+    process_name: "/system/bin/init"
+    thread_id: 1
+    process_id: 1
+  }
+  task_info {
+    estimate_mws: 0.846054
+    estimate_mw: 0.097820
+    thread_name: "binder:1302_D"
+    process_name: "system_server"
+    thread_id: 2043
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.844958
+    estimate_mw: 0.097694
+    thread_name: "surfaceflinger"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 786
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.833920
+    estimate_mw: 0.096417
+    thread_name: "kworker/u8:5"
+    process_name: "kworker/u8:5"
+    thread_id: 5304
+    process_id: 5304
+  }
+  task_info {
+    estimate_mws: 0.780835
+    estimate_mw: 0.090280
+    thread_name: "kworker/2:4"
+    process_name: "kworker/2:4"
+    thread_id: 4995
+    process_id: 4995
+  }
+  task_info {
+    estimate_mws: 0.747755
+    estimate_mw: 0.086455
+    thread_name: "binder:2171_4"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2374
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.746488
+    estimate_mw: 0.086309
+    thread_name: "binder:1999_5"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 3678
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.744167
+    estimate_mw: 0.086040
+    thread_name: "servicemanager"
+    process_name: "/system/bin/servicemanager"
+    thread_id: 213
+    process_id: 213
+  }
+  task_info {
+    estimate_mws: 0.717520
+    estimate_mw: 0.082959
+    thread_name: "wmshell.anim"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2269
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.699681
+    estimate_mw: 0.080897
+    thread_name: "GoogleApiHandle"
+    process_name: "com.google.android.gms"
+    thread_id: 3208
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.675997
+    estimate_mw: 0.078158
+    thread_name: "binder:1302_4"
+    process_name: "system_server"
+    thread_id: 1592
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.647999
+    estimate_mw: 0.074921
+    thread_name: "batterystats-wo"
+    process_name: "system_server"
+    thread_id: 1487
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.640576
+    estimate_mw: 0.074063
+    thread_name: ".gms.persistent"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 1949
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.631830
+    estimate_mw: 0.073052
+    thread_name: "binder:1926_6"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 5211
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.627672
+    estimate_mw: 0.072571
+    thread_name: "DisplayOffloadB"
+    process_name: "system_server"
+    thread_id: 1512
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.627487
+    estimate_mw: 0.072550
+    thread_name: "binder:682_2"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.display.allocator-service"
+    thread_id: 682
+    process_id: 682
+  }
+  task_info {
+    estimate_mws: 0.624294
+    estimate_mw: 0.072181
+    thread_name: "rcuog/2"
+    process_name: "rcuog/2"
+    thread_id: 37
+    process_id: 37
+  }
+  task_info {
+    estimate_mws: 0.623909
+    estimate_mw: 0.072136
+    thread_name: "kworker/0:6"
+    process_name: "kworker/0:6"
+    thread_id: 586
+    process_id: 586
+  }
+  task_info {
+    estimate_mws: 0.597177
+    estimate_mw: 0.069045
+    thread_name: "diag-router"
+    process_name: "/vendor/bin/diag-router"
+    thread_id: 634
+    process_id: 634
+  }
+  task_info {
+    estimate_mws: 0.582498
+    estimate_mw: 0.067348
+    thread_name: "HeapTaskDaemon"
+    process_name: "com.google.android.gms"
+    thread_id: 2882
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.579675
+    estimate_mw: 0.067022
+    thread_name: "FileWatcherThre"
+    process_name: "/vendor/bin/hw/android.hardware.thermal-service.pixel"
+    thread_id: 1411
+    process_id: 1404
+  }
+  task_info {
+    estimate_mws: 0.568415
+    estimate_mw: 0.065720
+    thread_name: "TaskSnapshotPer"
+    process_name: "system_server"
+    thread_id: 1913
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.565566
+    estimate_mw: 0.065390
+    thread_name: "lmkd"
+    process_name: "/system/bin/lmkd"
+    thread_id: 212
+    process_id: 212
+  }
+  task_info {
+    estimate_mws: 0.554734
+    estimate_mw: 0.064138
+    thread_name: "binder:1949_8"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3269
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.517529
+    estimate_mw: 0.059836
+    thread_name: "appSf"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 868
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.514221
+    estimate_mw: 0.059454
+    thread_name: "kworker/1:1"
+    process_name: "kworker/1:1"
+    thread_id: 47
+    process_id: 47
+  }
+  task_info {
+    estimate_mws: 0.507581
+    estimate_mw: 0.058686
+    thread_name: "android.hardwar"
+    process_name: "/vendor/bin/hw/android.hardware.usb-service.qti"
+    thread_id: 1861
+    process_id: 665
+  }
+  task_info {
+    estimate_mws: 0.504068
+    estimate_mw: 0.058280
+    thread_name: "Primes-Jank"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2389
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.493578
+    estimate_mw: 0.057067
+    thread_name: "binder:2171_3"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2235
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.490345
+    estimate_mw: 0.056693
+    thread_name: "traced"
+    process_name: "/system/bin/traced"
+    thread_id: 905
+    process_id: 905
+  }
+  task_info {
+    estimate_mws: 0.468415
+    estimate_mw: 0.054158
+    thread_name: "eduling.default"
+    process_name: "system_server"
+    thread_id: 1761
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.462913
+    estimate_mw: 0.053522
+    thread_name: "binder:545_2"
+    process_name: "/apex/com.android.os.statsd/bin/statsd"
+    thread_id: 553
+    process_id: 545
+  }
+  task_info {
+    estimate_mws: 0.462537
+    estimate_mw: 0.053478
+    thread_name: "User"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2234
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.454063
+    estimate_mw: 0.052498
+    thread_name: "putmethod.latin"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 4997
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.450612
+    estimate_mw: 0.052100
+    thread_name: "ueventd"
+    process_name: "/system/bin/ueventd"
+    thread_id: 145
+    process_id: 145
+  }
+  task_info {
+    estimate_mws: 0.448044
+    estimate_mw: 0.051803
+    thread_name: "wpa_supplicant"
+    process_name: "/vendor/bin/hw/wpa_supplicant"
+    thread_id: 5214
+    process_id: 5214
+  }
+  task_info {
+    estimate_mws: 0.431304
+    estimate_mw: 0.049867
+    thread_name: "rcuop/0"
+    process_name: "rcuop/0"
+    thread_id: 16
+    process_id: 16
+  }
+  task_info {
+    estimate_mws: 0.416635
+    estimate_mw: 0.048171
+    thread_name: "Jit thread pool"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1933
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.404592
+    estimate_mw: 0.046779
+    thread_name: "pixelstats-vend"
+    process_name: "/vendor/bin/pixelstats-vendor"
+    thread_id: 267
+    process_id: 255
+  }
+  task_info {
+    estimate_mws: 0.396838
+    estimate_mw: 0.045882
+    thread_name: "irq/236-NVT-ts"
+    process_name: "irq/236-NVT-ts"
+    thread_id: 505
+    process_id: 505
+  }
+  task_info {
+    estimate_mws: 0.393249
+    estimate_mw: 0.045467
+    thread_name: "nanohub"
+    process_name: "nanohub"
+    thread_id: 297
+    process_id: 297
+  }
+  task_info {
+    estimate_mws: 0.376686
+    estimate_mw: 0.043552
+    thread_name: "android.bg"
+    process_name: "system_server"
+    thread_id: 1430
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.375869
+    estimate_mw: 0.043458
+    thread_name: "chre"
+    process_name: "/vendor/bin/chre"
+    thread_id: 1041
+    process_id: 1041
+  }
+  task_info {
+    estimate_mws: 0.373520
+    estimate_mw: 0.043186
+    thread_name: "lowpool[1]"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2279
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.366001
+    estimate_mw: 0.042317
+    thread_name: "TracingMuxer"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 783
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.359494
+    estimate_mw: 0.041565
+    thread_name: "kgsl-events"
+    process_name: "kgsl-events"
+    thread_id: 109
+    process_id: 109
+  }
+  task_info {
+    estimate_mws: 0.359130
+    estimate_mw: 0.041522
+    thread_name: "IpClient.wlan0"
+    process_name: "com.android.networkstack.process"
+    thread_id: 5216
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.346517
+    estimate_mw: 0.040064
+    thread_name: "binder:257_5"
+    process_name: "/system/bin/hw/android.system.suspend-service"
+    thread_id: 1491
+    process_id: 257
+  }
+  task_info {
+    estimate_mws: 0.341200
+    estimate_mw: 0.039449
+    thread_name: "binder:1901_3"
+    process_name: "/vendor/bin/hw/android.hardware.wifi-service-lazy"
+    thread_id: 1905
+    process_id: 1901
+  }
+  task_info {
+    estimate_mws: 0.335534
+    estimate_mw: 0.038794
+    thread_name: "binder:740_1"
+    process_name: "/system/bin/audioserver"
+    thread_id: 821
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.331405
+    estimate_mw: 0.038317
+    thread_name: "BG"
+    process_name: "com.google.wear.services"
+    thread_id: 2023
+    process_id: 1948
+  }
+  task_info {
+    estimate_mws: 0.326344
+    estimate_mw: 0.037732
+    thread_name: "kworker/0:5H"
+    process_name: "kworker/0:5H"
+    thread_id: 1337
+    process_id: 1337
+  }
+  task_info {
+    estimate_mws: 0.322384
+    estimate_mw: 0.037274
+    thread_name: "binder:755_2"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 784
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.319511
+    estimate_mw: 0.036942
+    thread_name: "audioserver"
+    process_name: "/system/bin/audioserver"
+    thread_id: 740
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.310996
+    estimate_mw: 0.035957
+    thread_name: "binder:1949_2"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 1978
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.302115
+    estimate_mw: 0.034930
+    thread_name: "-Executor] idle"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 5602
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.301578
+    estimate_mw: 0.034868
+    thread_name: "pool-11-thread-"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3329
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.299169
+    estimate_mw: 0.034590
+    thread_name: "android.io"
+    process_name: "system_server"
+    thread_id: 1417
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.296825
+    estimate_mw: 0.034319
+    thread_name: "binder:1901_3"
+    process_name: "/vendor/bin/hw/android.hardware.wifi-service-lazy"
+    thread_id: 5205
+    process_id: 1901
+  }
+  task_info {
+    estimate_mws: 0.294242
+    estimate_mw: 0.034020
+    thread_name: "rcuop/1"
+    process_name: "rcuop/1"
+    thread_id: 30
+    process_id: 30
+  }
+  task_info {
+    estimate_mws: 0.286642
+    estimate_mw: 0.033141
+    thread_name: "binder:1948_6"
+    process_name: "com.google.wear.services"
+    thread_id: 5315
+    process_id: 1948
+  }
+  task_info {
+    estimate_mws: 0.285983
+    estimate_mw: 0.033065
+    thread_name: "AssistantHandle"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4081
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.283378
+    estimate_mw: 0.032764
+    thread_name: "binder:1999_1"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 2016
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.279959
+    estimate_mw: 0.032369
+    thread_name: "binder:2182_7"
+    process_name: "com.android.phone"
+    thread_id: 2694
+    process_id: 2182
+  }
+  task_info {
+    estimate_mws: 0.279816
+    estimate_mw: 0.032352
+    thread_name: "kworker/3:2H"
+    process_name: "kworker/3:2H"
+    thread_id: 226
+    process_id: 226
+  }
+  task_info {
+    estimate_mws: 0.277230
+    estimate_mw: 0.032053
+    thread_name: "BG"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 3005
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.274735
+    estimate_mw: 0.031765
+    thread_name: "lowpool[3]"
+    process_name: "com.google.android.gms"
+    thread_id: 3527
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.267749
+    estimate_mw: 0.030957
+    thread_name: "hvdcp_opti"
+    process_name: "/vendor/bin/hvdcp_opti"
+    thread_id: 1276
+    process_id: 1270
+  }
+  task_info {
+    estimate_mws: 0.262081
+    estimate_mw: 0.030302
+    thread_name: "binder:1926_3"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2022
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.259248
+    estimate_mw: 0.029974
+    thread_name: "kworker/3:5"
+    process_name: "kworker/3:5"
+    thread_id: 104
+    process_id: 104
+  }
+  task_info {
+    estimate_mws: 0.256714
+    estimate_mw: 0.029681
+    thread_name: "binder:257_2"
+    process_name: "/system/bin/hw/android.system.suspend-service"
+    thread_id: 264
+    process_id: 257
+  }
+  task_info {
+    estimate_mws: 0.247046
+    estimate_mw: 0.028563
+    thread_name: "SDM_EventThread"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.display.composer-service"
+    thread_id: 727
+    process_id: 685
+  }
+  task_info {
+    estimate_mws: 0.244112
+    estimate_mw: 0.028224
+    thread_name: "POSIX timer 2"
+    process_name: "/vendor/bin/hw/android.hardware.sensors-service.multihal"
+    thread_id: 1600
+    process_id: 664
+  }
+  task_info {
+    estimate_mws: 0.242754
+    estimate_mw: 0.028067
+    thread_name: "binder:2856_4"
+    process_name: "com.google.android.gms"
+    thread_id: 3679
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.241348
+    estimate_mw: 0.027905
+    thread_name: "pool-2-thread-1"
+    process_name: "com.android.networkstack.process"
+    thread_id: 2416
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.231145
+    estimate_mw: 0.026725
+    thread_name: "rcuop/3"
+    process_name: "rcuop/3"
+    thread_id: 45
+    process_id: 45
+  }
+  task_info {
+    estimate_mws: 0.230341
+    estimate_mw: 0.026632
+    thread_name: "f2fs_ckpt-254:4"
+    process_name: "f2fs_ckpt-254:43"
+    thread_id: 347
+    process_id: 347
+  }
+  task_info {
+    estimate_mws: 0.229722
+    estimate_mw: 0.026560
+    thread_name: "OomAdjuster"
+    process_name: "system_server"
+    thread_id: 1482
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.226417
+    estimate_mw: 0.026178
+    thread_name: "binder:740_6"
+    process_name: "/system/bin/audioserver"
+    thread_id: 2639
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.226007
+    estimate_mw: 0.026131
+    thread_name: "rcuop/2"
+    process_name: "rcuop/2"
+    thread_id: 38
+    process_id: 38
+  }
+  task_info {
+    estimate_mws: 0.225133
+    estimate_mw: 0.026030
+    thread_name: "kworker/0:7"
+    process_name: "kworker/0:7"
+    thread_id: 598
+    process_id: 598
+  }
+  task_info {
+    estimate_mws: 0.212788
+    estimate_mw: 0.024602
+    thread_name: "queued-work-loo"
+    process_name: "system_server"
+    thread_id: 1886
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.202562
+    estimate_mw: 0.023420
+    thread_name: "pool-13-thread-"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3327
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.201687
+    estimate_mw: 0.023319
+    thread_name: "WearSdkThread"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2207
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.201119
+    estimate_mw: 0.023253
+    thread_name: "qrtr_ns"
+    process_name: "qrtr_ns"
+    thread_id: 88
+    process_id: 88
+  }
+  task_info {
+    estimate_mws: 0.200639
+    estimate_mw: 0.023198
+    thread_name: "binder:740_7"
+    process_name: "/system/bin/audioserver"
+    thread_id: 5206
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.196587
+    estimate_mw: 0.022729
+    thread_name: "binder:4997_4"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5122
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.194754
+    estimate_mw: 0.022517
+    thread_name: "m.android.phone"
+    process_name: "com.android.phone"
+    thread_id: 2182
+    process_id: 2182
+  }
+  task_info {
+    estimate_mws: 0.192336
+    estimate_mw: 0.022238
+    thread_name: "HwcAsyncWorker"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 835
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.190522
+    estimate_mw: 0.022028
+    thread_name: "binder:636_2"
+    process_name: "/vendor/bin/hw/android.hardware.audio.service"
+    thread_id: 636
+    process_id: 636
+  }
+  task_info {
+    estimate_mws: 0.188908
+    estimate_mw: 0.021841
+    thread_name: "SettingsProvide"
+    process_name: "system_server"
+    thread_id: 1771
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.181172
+    estimate_mw: 0.020947
+    thread_name: "binder:1302_2"
+    process_name: "system_server"
+    thread_id: 1350
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.177579
+    estimate_mw: 0.020532
+    thread_name: "RegSampIdle"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 872
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.168738
+    estimate_mw: 0.019509
+    thread_name: "ice] processing"
+    process_name: "com.google.android.gms"
+    thread_id: 3238
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.162808
+    estimate_mw: 0.018824
+    thread_name: "binder:682_3"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.display.allocator-service"
+    thread_id: 2308
+    process_id: 682
+  }
+  task_info {
+    estimate_mws: 0.158857
+    estimate_mw: 0.018367
+    thread_name: "binder:678_3"
+    process_name: "/apex/com.google.wearable.wac.whshal/bin/hw/vendor.google.wearable.wac.whshal@2.0-service"
+    thread_id: 1884
+    process_id: 678
+  }
+  task_info {
+    estimate_mws: 0.158685
+    estimate_mw: 0.018347
+    thread_name: "binder:650_4"
+    process_name: "/vendor/bin/hw/android.hardware.gnss-aidl-service-qti"
+    thread_id: 5498
+    process_id: 650
+  }
+  task_info {
+    estimate_mws: 0.157956
+    estimate_mw: 0.018263
+    thread_name: "vndservicemanag"
+    process_name: "/vendor/bin/vndservicemanager"
+    thread_id: 215
+    process_id: 215
+  }
+  task_info {
+    estimate_mws: 0.153600
+    estimate_mw: 0.017759
+    thread_name: "GoogleLocationS"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3355
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.153038
+    estimate_mw: 0.017694
+    thread_name: "TransportThread"
+    process_name: "/vendor/bin/chre"
+    thread_id: 1078
+    process_id: 1041
+  }
+  task_info {
+    estimate_mws: 0.152058
+    estimate_mw: 0.017581
+    thread_name: "kworker/2:1H"
+    process_name: "kworker/2:1H"
+    thread_id: 123
+    process_id: 123
+  }
+  task_info {
+    estimate_mws: 0.148559
+    estimate_mw: 0.017176
+    thread_name: "BG"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2120
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.148352
+    estimate_mw: 0.017152
+    thread_name: "vendor.google.w"
+    process_name: "/apex/com.google.wearable.wac.whshal/bin/hw/vendor.google.wearable.wac.whshal@2.0-service"
+    thread_id: 1881
+    process_id: 678
+  }
+  task_info {
+    estimate_mws: 0.140864
+    estimate_mw: 0.016287
+    thread_name: "NetworkStats"
+    process_name: "system_server"
+    thread_id: 1814
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.138579
+    estimate_mw: 0.016022
+    thread_name: "binder:969_2"
+    process_name: "/system/vendor/bin/cnd"
+    thread_id: 1011
+    process_id: 969
+  }
+  task_info {
+    estimate_mws: 0.134607
+    estimate_mw: 0.015563
+    thread_name: "dmabuf-deferred"
+    process_name: "dmabuf-deferred-free-worker"
+    thread_id: 69
+    process_id: 69
+  }
+  task_info {
+    estimate_mws: 0.129449
+    estimate_mw: 0.014967
+    thread_name: "highpool[5]"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3354
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.126973
+    estimate_mw: 0.014681
+    thread_name: "ice] processing"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2363
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.126830
+    estimate_mw: 0.014664
+    thread_name: "ediator.Toggler"
+    process_name: "system_server"
+    thread_id: 1910
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.125742
+    estimate_mw: 0.014538
+    thread_name: "surfaceflinger"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 875
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.123833
+    estimate_mw: 0.014317
+    thread_name: "wificond"
+    process_name: "/system/bin/wificond"
+    thread_id: 964
+    process_id: 964
+  }
+  task_info {
+    estimate_mws: 0.123248
+    estimate_mw: 0.014250
+    thread_name: "MobileDataStats"
+    process_name: "system_server"
+    thread_id: 1912
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.119885
+    estimate_mw: 0.013861
+    thread_name: "GlobalScheduler"
+    process_name: "com.google.android.gms"
+    thread_id: 3156
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.119479
+    estimate_mw: 0.013814
+    thread_name: "RenderThread"
+    thread_id: 5599
+  }
+  task_info {
+    estimate_mws: 0.119243
+    estimate_mw: 0.013787
+    thread_name: "TouchTimer"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 866
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.114249
+    estimate_mw: 0.013209
+    thread_name: "binder:4038_1"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4050
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.112705
+    estimate_mw: 0.013031
+    thread_name: "displayoffload@"
+    process_name: "/vendor/bin/hw/vendor.google_clockwork.displayoffload@2.0-service.1p"
+    thread_id: 937
+    process_id: 937
+  }
+  task_info {
+    estimate_mws: 0.111279
+    estimate_mw: 0.012866
+    thread_name: "adbd"
+    process_name: "/apex/com.android.adbd/bin/adbd"
+    thread_id: 5544
+    process_id: 5544
+  }
+  task_info {
+    estimate_mws: 0.108114
+    estimate_mw: 0.012500
+    thread_name: "kworker/1:2H"
+    process_name: "kworker/1:2H"
+    thread_id: 300
+    process_id: 300
+  }
+  task_info {
+    estimate_mws: 0.107442
+    estimate_mw: 0.012422
+    thread_name: "RenderThread"
+    thread_id: 5584
+  }
+  task_info {
+    estimate_mws: 0.105863
+    estimate_mw: 0.012240
+    thread_name: "Primes-2"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1946
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.104306
+    estimate_mw: 0.012060
+    thread_name: "iptables-restor"
+    process_name: "/system/bin/iptables-restore"
+    thread_id: 558
+    process_id: 558
+  }
+  task_info {
+    estimate_mws: 0.104093
+    estimate_mw: 0.012035
+    thread_name: "RenderThread"
+    process_name: "system_server"
+    thread_id: 5223
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.102912
+    estimate_mw: 0.011899
+    thread_name: "irq/168-nanohub"
+    process_name: "irq/168-nanohub-irq1"
+    thread_id: 296
+    process_id: 296
+  }
+  task_info {
+    estimate_mws: 0.102167
+    estimate_mw: 0.011812
+    thread_name: "RenderThread"
+    thread_id: 5604
+  }
+  task_info {
+    estimate_mws: 0.101945
+    estimate_mw: 0.011787
+    thread_name: "ksoftirqd/2"
+    process_name: "ksoftirqd/2"
+    thread_id: 34
+    process_id: 34
+  }
+  task_info {
+    estimate_mws: 0.101282
+    estimate_mw: 0.011710
+    thread_name: "PhotonicModulat"
+    process_name: "system_server"
+    thread_id: 1899
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.100285
+    estimate_mw: 0.011595
+    thread_name: "ip6tables-resto"
+    process_name: "/system/bin/ip6tables-restore"
+    thread_id: 559
+    process_id: 559
+  }
+  task_info {
+    estimate_mws: 0.099432
+    estimate_mw: 0.011496
+    thread_name: "init"
+    process_name: "/system/bin/init"
+    thread_id: 144
+    process_id: 144
+  }
+  task_info {
+    estimate_mws: 0.096314
+    estimate_mw: 0.011136
+    thread_name: "FrameworkReceiv"
+    process_name: ".qtidataservices"
+    thread_id: 2793
+    process_id: 2118
+  }
+  task_info {
+    estimate_mws: 0.095442
+    estimate_mw: 0.011035
+    thread_name: "Jit thread pool"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 1969
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.094448
+    estimate_mw: 0.010920
+    thread_name: "pool-14-thread-"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3314
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.093937
+    estimate_mw: 0.010861
+    thread_name: "binder:1926_2"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1939
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.093621
+    estimate_mw: 0.010824
+    thread_name: "ChreMsgHandler"
+    process_name: "/vendor/bin/chre"
+    thread_id: 1080
+    process_id: 1041
+  }
+  task_info {
+    estimate_mws: 0.091738
+    estimate_mw: 0.010607
+    thread_name: "DispatcherModul"
+    process_name: "/vendor/bin/hw/qcrilNrd"
+    thread_id: 1673
+    process_id: 1062
+  }
+  task_info {
+    estimate_mws: 0.091698
+    estimate_mw: 0.010602
+    thread_name: "irq/234-pixart_"
+    process_name: "irq/234-pixart_pat9126_irq"
+    thread_id: 500
+    process_id: 500
+  }
+  task_info {
+    estimate_mws: 0.090883
+    estimate_mw: 0.010508
+    thread_name: "scheduler_threa"
+    process_name: "scheduler_thread"
+    thread_id: 5198
+    process_id: 5198
+  }
+  task_info {
+    estimate_mws: 0.089001
+    estimate_mw: 0.010290
+    thread_name: "binder:2085_4"
+    process_name: "com.google.android.bluetooth"
+    thread_id: 2713
+    process_id: 2085
+  }
+  task_info {
+    estimate_mws: 0.086934
+    estimate_mw: 0.010051
+    thread_name: "binder:3028_5"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 5434
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.085941
+    estimate_mw: 0.009936
+    thread_name: "binder:2670_6"
+    process_name: "com.android.nfc"
+    thread_id: 3159
+    process_id: 2670
+  }
+  task_info {
+    estimate_mws: 0.083859
+    estimate_mw: 0.009696
+    thread_name: "psimon"
+    process_name: "psimon"
+    thread_id: 1480
+    process_id: 1480
+  }
+  task_info {
+    estimate_mws: 0.083773
+    estimate_mw: 0.009686
+    thread_name: "binder:233_2"
+    process_name: "/system/bin/vold"
+    thread_id: 252
+    process_id: 233
+  }
+  task_info {
+    estimate_mws: 0.080959
+    estimate_mw: 0.009360
+    thread_name: "binder:2049_2"
+    process_name: "com.android.networkstack.process"
+    thread_id: 2068
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.080298
+    estimate_mw: 0.009284
+    thread_name: "netd"
+    process_name: "/system/bin/netd"
+    thread_id: 568
+    process_id: 546
+  }
+  task_info {
+    estimate_mws: 0.080265
+    estimate_mw: 0.009280
+    thread_name: "UEventObserver"
+    process_name: "system_server"
+    thread_id: 1857
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.079337
+    estimate_mw: 0.009173
+    thread_name: "RenderThread"
+    thread_id: 5619
+  }
+  task_info {
+    estimate_mws: 0.078696
+    estimate_mw: 0.009099
+    thread_name: "pool-8-thread-1"
+    process_name: "com.google.android.gms"
+    thread_id: 3102
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.077362
+    estimate_mw: 0.008945
+    thread_name: "mcu_mgmtd"
+    process_name: "/vendor/bin/mcu_mgmtd"
+    thread_id: 594
+    process_id: 524
+  }
+  task_info {
+    estimate_mws: 0.074501
+    estimate_mw: 0.008614
+    thread_name: "spi0"
+    process_name: "spi0"
+    thread_id: 295
+    process_id: 295
+  }
+  task_info {
+    estimate_mws: 0.073914
+    estimate_mw: 0.008546
+    thread_name: "com.android.nfc"
+    process_name: "com.android.nfc"
+    thread_id: 2670
+    process_id: 2670
+  }
+  task_info {
+    estimate_mws: 0.072671
+    estimate_mw: 0.008402
+    thread_name: "rcu_exp_gp_kthr"
+    process_name: "rcu_exp_gp_kthread_worker"
+    thread_id: 19
+    process_id: 19
+  }
+  task_info {
+    estimate_mws: 0.070587
+    estimate_mw: 0.008161
+    thread_name: "adbd"
+    process_name: "/apex/com.android.adbd/bin/adbd"
+    thread_id: 5546
+    process_id: 5544
+  }
+  task_info {
+    estimate_mws: 0.070105
+    estimate_mw: 0.008105
+    thread_name: "servicemanager"
+    thread_id: 5598
+  }
+  task_info {
+    estimate_mws: 0.069214
+    estimate_mw: 0.008002
+    thread_name: "android.imms"
+    process_name: "system_server"
+    thread_id: 1791
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.068600
+    estimate_mw: 0.007931
+    thread_name: "lowpool[2]"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2321
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.068467
+    estimate_mw: 0.007916
+    thread_name: "FileObserver"
+    process_name: "com.google.android.gms"
+    thread_id: 3035
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.068316
+    estimate_mw: 0.007899
+    thread_name: "binder:546_3"
+    process_name: "/system/bin/netd"
+    thread_id: 546
+    process_id: 546
+  }
+  task_info {
+    estimate_mws: 0.066410
+    estimate_mw: 0.007678
+    thread_name: "pool-51-thread-"
+    process_name: "com.google.android.gms"
+    thread_id: 4215
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.064761
+    estimate_mw: 0.007488
+    thread_name: "AudioService"
+    process_name: "system_server"
+    thread_id: 1844
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.064339
+    estimate_mw: 0.007439
+    thread_name: "adbd"
+    process_name: "/apex/com.android.adbd/bin/adbd"
+    thread_id: 5545
+    process_id: 5544
+  }
+  task_info {
+    estimate_mws: 0.063188
+    estimate_mw: 0.007306
+    thread_name: "droid.bluetooth"
+    process_name: "com.google.android.bluetooth"
+    thread_id: 2085
+    process_id: 2085
+  }
+  task_info {
+    estimate_mws: 0.061069
+    estimate_mw: 0.007061
+    thread_name: "msm_irqbalance"
+    process_name: "/vendor/bin/msm_irqbalance"
+    thread_id: 2466
+    process_id: 2466
+  }
+  task_info {
+    estimate_mws: 0.060920
+    estimate_mw: 0.007044
+    thread_name: "BackgroundInsta"
+    process_name: "system_server"
+    thread_id: 1875
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.059901
+    estimate_mw: 0.006926
+    thread_name: "ConnectivitySer"
+    process_name: "system_server"
+    thread_id: 1827
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.059295
+    estimate_mw: 0.006856
+    thread_name: "pool-1-thread-1"
+    process_name: "system_server"
+    thread_id: 1873
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.059196
+    estimate_mw: 0.006844
+    thread_name: "binder:3028_1"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3049
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.058807
+    estimate_mw: 0.006799
+    thread_name: "roid.apps.scone"
+    process_name: "com.google.android.apps.scone"
+    thread_id: 5245
+    process_id: 5245
+  }
+  task_info {
+    estimate_mws: 0.057400
+    estimate_mw: 0.006637
+    thread_name: "android.hardwar"
+    process_name: "/vendor/bin/hw/android.hardware.health-service.eos"
+    thread_id: 1271
+    process_id: 1271
+  }
+  task_info {
+    estimate_mws: 0.056947
+    estimate_mw: 0.006584
+    thread_name: "bgres-controlle"
+    process_name: "system_server"
+    thread_id: 1495
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.056879
+    estimate_mw: 0.006576
+    thread_name: "netd"
+    process_name: "/system/bin/netd"
+    thread_id: 569
+    process_id: 546
+  }
+  task_info {
+    estimate_mws: 0.055771
+    estimate_mw: 0.006448
+    thread_name: "UsbFfs-worker"
+    process_name: "/apex/com.android.adbd/bin/adbd"
+    thread_id: 5560
+    process_id: 5544
+  }
+  task_info {
+    estimate_mws: 0.055642
+    estimate_mw: 0.006433
+    thread_name: "system_server"
+    thread_id: 5590
+  }
+  task_info {
+    estimate_mws: 0.054764
+    estimate_mw: 0.006332
+    thread_name: "binder:2049_4"
+    process_name: "com.android.networkstack.process"
+    thread_id: 2083
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.053127
+    estimate_mw: 0.006142
+    thread_name: "binder:1949_4"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2302
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.052984
+    estimate_mw: 0.006126
+    thread_name: "oid.grilservice"
+    process_name: "com.google.android.grilservice"
+    thread_id: 2129
+    process_id: 2129
+  }
+  task_info {
+    estimate_mws: 0.052980
+    estimate_mw: 0.006126
+    thread_name: "binder:2856_9"
+    process_name: "com.google.android.gms"
+    thread_id: 5585
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.052715
+    estimate_mw: 0.006095
+    thread_name: "StateService"
+    process_name: "com.google.android.apps.scone"
+    thread_id: 5269
+    process_id: 5245
+  }
+  task_info {
+    estimate_mws: 0.052232
+    estimate_mw: 0.006039
+    thread_name: "vndservicemanag"
+    thread_id: 5597
+  }
+  task_info {
+    estimate_mws: 0.052027
+    estimate_mw: 0.006015
+    thread_name: "binder:1949_9"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3359
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.051717
+    estimate_mw: 0.005979
+    thread_name: "Ipc-5004:1"
+    process_name: "/vendor/bin/hw/android.hardware.gnss-aidl-service-qti"
+    thread_id: 5483
+    process_id: 650
+  }
+  task_info {
+    estimate_mws: 0.049546
+    estimate_mw: 0.005729
+    thread_name: "PackageManager"
+    process_name: "system_server"
+    thread_id: 1530
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.048227
+    estimate_mw: 0.005576
+    thread_name: "android.hardwar"
+    process_name: "/vendor/bin/hw/android.hardware.power-service"
+    thread_id: 660
+    process_id: 660
+  }
+  task_info {
+    estimate_mws: 0.047454
+    estimate_mw: 0.005487
+    thread_name: "BluetoothScanMa"
+    process_name: "com.google.android.bluetooth"
+    thread_id: 2609
+    process_id: 2085
+  }
+  task_info {
+    estimate_mws: 0.046472
+    estimate_mw: 0.005373
+    thread_name: "subsystem_ramdu"
+    process_name: "/system/vendor/bin/subsystem_ramdump"
+    thread_id: 816
+    process_id: 799
+  }
+  task_info {
+    estimate_mws: 0.046295
+    estimate_mw: 0.005353
+    thread_name: "Ipc-5004:2"
+    process_name: "/vendor/bin/hw/android.hardware.gnss-aidl-service-qti"
+    thread_id: 5484
+    process_id: 650
+  }
+  task_info {
+    estimate_mws: 0.045805
+    estimate_mw: 0.005296
+    thread_name: "binder:975_2"
+    process_name: "/vendor/bin/imsdaemon"
+    thread_id: 1047
+    process_id: 975
+  }
+  task_info {
+    estimate_mws: 0.045282
+    estimate_mw: 0.005235
+    thread_name: ".healthservices"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3028
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.045087
+    estimate_mw: 0.005213
+    thread_name: "queued-work-loo"
+    process_name: "com.google.android.gms"
+    thread_id: 3236
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.043921
+    estimate_mw: 0.005078
+    thread_name: "powerstateservi"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.powerstateservice@1.0-service"
+    thread_id: 276
+    process_id: 269
+  }
+  task_info {
+    estimate_mws: 0.043653
+    estimate_mw: 0.005047
+    thread_name: "wlan_logging_th"
+    process_name: "wlan_logging_thread"
+    thread_id: 368
+    process_id: 368
+  }
+  task_info {
+    estimate_mws: 0.043574
+    estimate_mw: 0.005038
+    thread_name: "FlpThread"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3279
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.043436
+    estimate_mw: 0.005022
+    thread_name: "Light-P0-2"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5071
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.042985
+    estimate_mw: 0.004970
+    thread_name: "binder:5245_4"
+    process_name: "com.google.android.apps.scone"
+    thread_id: 5270
+    process_id: 5245
+  }
+  task_info {
+    estimate_mws: 0.042946
+    estimate_mw: 0.004965
+    thread_name: "HWC_UeventThrea"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.display.composer-service"
+    thread_id: 717
+    process_id: 685
+  }
+  task_info {
+    estimate_mws: 0.042762
+    estimate_mw: 0.004944
+    thread_name: "pool-12-thread-"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2371
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.042752
+    estimate_mw: 0.004943
+    thread_name: "android.hardwar"
+    process_name: "/vendor/bin/hw/android.hardware.contexthub-service.wac"
+    thread_id: 668
+    process_id: 644
+  }
+  task_info {
+    estimate_mws: 0.042468
+    estimate_mw: 0.004910
+    thread_name: "binder:1948_3"
+    process_name: "com.google.wear.services"
+    thread_id: 1976
+    process_id: 1948
+  }
+  task_info {
+    estimate_mws: 0.042220
+    estimate_mw: 0.004881
+    thread_name: "netlink socket"
+    process_name: "/system/vendor/bin/ipacm"
+    thread_id: 538
+    process_id: 523
+  }
+  task_info {
+    estimate_mws: 0.040507
+    estimate_mw: 0.004683
+    thread_name: "RegionSampling"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 871
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.040385
+    estimate_mw: 0.004669
+    thread_name: "TransportThread"
+    process_name: "/vendor/bin/hw/android.hardware.sensors-service.multihal"
+    thread_id: 794
+    process_id: 664
+  }
+  task_info {
+    estimate_mws: 0.040349
+    estimate_mw: 0.004665
+    thread_name: "binder:2856_1"
+    process_name: "com.google.android.gms"
+    thread_id: 2898
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.040180
+    estimate_mw: 0.004646
+    thread_name: "servicemanager"
+    thread_id: 5595
+  }
+  task_info {
+    estimate_mws: 0.039525
+    estimate_mw: 0.004570
+    thread_name: "pd-mapper"
+    process_name: "/vendor/bin/pd-mapper"
+    thread_id: 752
+    process_id: 725
+  }
+  task_info {
+    estimate_mws: 0.039196
+    estimate_mw: 0.004532
+    thread_name: "vndservicemanag"
+    thread_id: 5618
+  }
+  task_info {
+    estimate_mws: 0.039101
+    estimate_mw: 0.004521
+    thread_name: "vndservicemanag"
+    thread_id: 5605
+  }
+  task_info {
+    estimate_mws: 0.038960
+    estimate_mw: 0.004505
+    thread_name: "WifiScanningSer"
+    process_name: "system_server"
+    thread_id: 1823
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.038580
+    estimate_mw: 0.004461
+    thread_name: "cnss-daemon"
+    process_name: "/system/vendor/bin/cnss-daemon"
+    thread_id: 5204
+    process_id: 1009
+  }
+  task_info {
+    estimate_mws: 0.038053
+    estimate_mw: 0.004400
+    thread_name: "shell svc 5620"
+    process_name: "/apex/com.android.adbd/bin/adbd"
+    thread_id: 5622
+    process_id: 5544
+  }
+  task_info {
+    estimate_mws: 0.037116
+    estimate_mw: 0.004291
+    thread_name: "rmt_storage"
+    process_name: "/vendor/bin/rmt_storage"
+    thread_id: 758
+    process_id: 758
+  }
+  task_info {
+    estimate_mws: 0.036357
+    estimate_mw: 0.004204
+    thread_name: "halt_drain_rqs"
+    process_name: "halt_drain_rqs"
+    thread_id: 105
+    process_id: 105
+  }
+  task_info {
+    estimate_mws: 0.035907
+    estimate_mw: 0.004152
+    thread_name: "BG Thread #2"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4106
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.035876
+    estimate_mw: 0.004148
+    thread_name: "-Executor] idle"
+    process_name: "com.google.android.gms"
+    thread_id: 5592
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.035444
+    estimate_mw: 0.004098
+    thread_name: "tftp_server"
+    process_name: "/vendor/bin/tftp_server"
+    thread_id: 759
+    process_id: 759
+  }
+  task_info {
+    estimate_mws: 0.035386
+    estimate_mw: 0.004091
+    thread_name: "FinalizerWatchd"
+    process_name: "com.google.android.gms"
+    thread_id: 2887
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.035171
+    estimate_mw: 0.004066
+    thread_name: "servicemanager"
+    thread_id: 5606
+  }
+  task_info {
+    estimate_mws: 0.035157
+    estimate_mw: 0.004065
+    thread_name: "Blocking Thread"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 5587
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.035034
+    estimate_mw: 0.004051
+    thread_name: "vndservicemanag"
+    thread_id: 5611
+  }
+  task_info {
+    estimate_mws: 0.034307
+    estimate_mw: 0.003967
+    thread_name: "vndservicemanag"
+    thread_id: 5593
+  }
+  task_info {
+    estimate_mws: 0.034030
+    estimate_mw: 0.003935
+    thread_name: "servicemanager"
+    thread_id: 5621
+  }
+  task_info {
+    estimate_mws: 0.032631
+    estimate_mw: 0.003773
+    thread_name: "binder:685_3"
+    thread_id: 5586
+  }
+  task_info {
+    estimate_mws: 0.031847
+    estimate_mw: 0.003682
+    thread_name: "radioext@1.0-se"
+    process_name: "/vendor/bin/hw/vendor.google.radioext@1.0-service"
+    thread_id: 676
+    process_id: 676
+  }
+  task_info {
+    estimate_mws: 0.031818
+    estimate_mw: 0.003679
+    thread_name: "BgBroadcastRegi"
+    process_name: "com.google.wear.services"
+    thread_id: 2017
+    process_id: 1948
+  }
+  task_info {
+    estimate_mws: 0.031204
+    estimate_mw: 0.003608
+    thread_name: "DefaultExecutor"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 5600
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.030138
+    estimate_mw: 0.003484
+    thread_name: "Light-P0-1"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5064
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.029778
+    estimate_mw: 0.003443
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1368
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.029627
+    estimate_mw: 0.003425
+    thread_name: "atchdog.monitor"
+    process_name: "system_server"
+    thread_id: 1414
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.029590
+    estimate_mw: 0.003421
+    thread_name: "UsfHalWorker"
+    process_name: "/vendor/bin/hw/android.hardware.sensors-service.multihal"
+    thread_id: 792
+    process_id: 664
+  }
+  task_info {
+    estimate_mws: 0.028316
+    estimate_mw: 0.003274
+    thread_name: "binder:1999_5"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 4985
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.028097
+    estimate_mw: 0.003249
+    thread_name: "SatelliteContro"
+    process_name: "com.android.phone"
+    thread_id: 2382
+    process_id: 2182
+  }
+  task_info {
+    estimate_mws: 0.027797
+    estimate_mw: 0.003214
+    thread_name: "pm-service"
+    process_name: "/vendor/bin/pm-service"
+    thread_id: 745
+    process_id: 730
+  }
+  task_info {
+    estimate_mws: 0.027301
+    estimate_mw: 0.003157
+    thread_name: "-Executor] idle"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 5603
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.027287
+    estimate_mw: 0.003155
+    thread_name: "perfetto"
+    process_name: "perfetto"
+    thread_id: 5581
+    process_id: 5581
+  }
+  task_info {
+    estimate_mws: 0.026942
+    estimate_mw: 0.003115
+    thread_name: "ExeSeq-P10-1"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5074
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.026776
+    estimate_mw: 0.003096
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1364
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.026328
+    estimate_mw: 0.003044
+    thread_name: "HwBinder:2129_1"
+    process_name: "com.google.android.grilservice"
+    thread_id: 3649
+    process_id: 2129
+  }
+  task_info {
+    estimate_mws: 0.026013
+    estimate_mw: 0.003008
+    thread_name: "DefaultExecutor"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 5588
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.025701
+    estimate_mw: 0.002972
+    thread_name: "rkstack.process"
+    process_name: "com.android.networkstack.process"
+    thread_id: 2049
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.024843
+    estimate_mw: 0.002872
+    thread_name: "hwuiTask1"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1997
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.024811
+    estimate_mw: 0.002869
+    thread_name: "pool-1-thread-1"
+    process_name: "com.google.android.apps.scone"
+    thread_id: 5271
+    process_id: 5245
+  }
+  task_info {
+    estimate_mws: 0.024633
+    estimate_mw: 0.002848
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1360
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.023564
+    estimate_mw: 0.002724
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1366
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.023405
+    estimate_mw: 0.002706
+    thread_name: "cnss-daemon"
+    process_name: "/system/vendor/bin/cnss-daemon"
+    thread_id: 5613
+    process_id: 1009
+  }
+  task_info {
+    estimate_mws: 0.023393
+    estimate_mw: 0.002705
+    thread_name: "servicemanager"
+    thread_id: 5608
+  }
+  task_info {
+    estimate_mws: 0.022813
+    estimate_mw: 0.002638
+    thread_name: "android.hardwar"
+    process_name: "/vendor/bin/hw/android.hardware.contexthub-service.wac"
+    thread_id: 644
+    process_id: 644
+  }
+  task_info {
+    estimate_mws: 0.022774
+    estimate_mw: 0.002633
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1362
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.022714
+    estimate_mw: 0.002626
+    thread_name: "binder:685_3"
+    thread_id: 5594
+  }
+  task_info {
+    estimate_mws: 0.022642
+    estimate_mw: 0.002618
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1358
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.022617
+    estimate_mw: 0.002615
+    thread_name: "vndservicemanag"
+    thread_id: 5607
+  }
+  task_info {
+    estimate_mws: 0.021814
+    estimate_mw: 0.002522
+    thread_name: "it.FitbitMobile"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5377
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.021313
+    estimate_mw: 0.002464
+    thread_name: "irq/199-dwc3"
+    process_name: "irq/199-dwc3"
+    thread_id: 5559
+    process_id: 5559
+  }
+  task_info {
+    estimate_mws: 0.021307
+    estimate_mw: 0.002463
+    thread_name: "SysUiBg"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2294
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.020941
+    estimate_mw: 0.002421
+    thread_name: "-Executor] idle"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 5623
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.020393
+    estimate_mw: 0.002358
+    thread_name: "vndservicemanag"
+    thread_id: 5582
+  }
+  task_info {
+    estimate_mws: 0.019946
+    estimate_mw: 0.002306
+    thread_name: "qcom,system-poo"
+    process_name: "qcom,system-pool-refill-thread"
+    thread_id: 81
+    process_id: 81
+  }
+  task_info {
+    estimate_mws: 0.019901
+    estimate_mw: 0.002301
+    thread_name: "binder:2129_9"
+    process_name: "com.google.android.grilservice"
+    thread_id: 5203
+    process_id: 2129
+  }
+  task_info {
+    estimate_mws: 0.019723
+    estimate_mw: 0.002280
+    thread_name: "servicemanager"
+    thread_id: 5610
+  }
+  task_info {
+    estimate_mws: 0.019537
+    estimate_mw: 0.002259
+    thread_name: "cnss-daemon"
+    process_name: "/system/vendor/bin/cnss-daemon"
+    thread_id: 1009
+    process_id: 1009
+  }
+  task_info {
+    estimate_mws: 0.019390
+    estimate_mw: 0.002242
+    thread_name: "pool-9-thread-1"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 2073
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.019219
+    estimate_mw: 0.002222
+    thread_name: "binder:1302_3"
+    process_name: "system_server"
+    thread_id: 1433
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.019059
+    estimate_mw: 0.002204
+    thread_name: "mcu_mgmtd"
+    process_name: "/vendor/bin/mcu_mgmtd"
+    thread_id: 587
+    process_id: 524
+  }
+  task_info {
+    estimate_mws: 0.018619
+    estimate_mw: 0.002153
+    thread_name: "WCMTelemetryLog"
+    process_name: "system_server"
+    thread_id: 1906
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.018508
+    estimate_mw: 0.002140
+    thread_name: "droid.tethering"
+    process_name: "com.android.networkstack.process"
+    thread_id: 2158
+    process_id: 2049
+  }
+  task_info {
+    estimate_mws: 0.018055
+    estimate_mw: 0.002087
+    thread_name: "DefaultWallpape"
+    process_name: "com.google.android.wearable.watchface.rwf"
+    thread_id: 2082
+    process_id: 1999
+  }
+  task_info {
+    estimate_mws: 0.017725
+    estimate_mw: 0.002049
+    thread_name: "HeapTaskDaemon"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5386
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.017125
+    estimate_mw: 0.001980
+    thread_name: "WearConnectionT"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2172
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.016887
+    estimate_mw: 0.001952
+    thread_name: "wear-services-w"
+    process_name: "com.google.wear.services"
+    thread_id: 2029
+    process_id: 1948
+  }
+  task_info {
+    estimate_mws: 0.016252
+    estimate_mw: 0.001879
+    thread_name: "BG Thread #1"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4080
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.016215
+    estimate_mw: 0.001875
+    thread_name: "GlobalScheduler"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2276
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.016141
+    estimate_mw: 0.001866
+    thread_name: "pool-31-thread-"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 5617
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.016069
+    estimate_mw: 0.001858
+    thread_name: "servicemanager"
+    thread_id: 5583
+  }
+  task_info {
+    estimate_mws: 0.015376
+    estimate_mw: 0.001778
+    thread_name: "RenderEngine"
+    process_name: "/system/bin/surfaceflinger"
+    thread_id: 5601
+    process_id: 755
+  }
+  task_info {
+    estimate_mws: 0.015374
+    estimate_mw: 0.001777
+    thread_name: "pool-11-thread-"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 5596
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.015097
+    estimate_mw: 0.001745
+    thread_name: "dsi_err_workq"
+    process_name: "dsi_err_workq"
+    thread_id: 5589
+    process_id: 5589
+  }
+  task_info {
+    estimate_mws: 0.015062
+    estimate_mw: 0.001741
+    thread_name: "InteractionJank"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2300
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.015034
+    estimate_mw: 0.001738
+    thread_name: "vndservicemanag"
+    thread_id: 5609
+  }
+  task_info {
+    estimate_mws: 0.014592
+    estimate_mw: 0.001687
+    thread_name: "hwuiTask0"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1996
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.014520
+    estimate_mw: 0.001679
+    thread_name: "tworkPolicy.uid"
+    process_name: "system_server"
+    thread_id: 1817
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.014278
+    estimate_mw: 0.001651
+    thread_name: "highpool[10]"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3417
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.014123
+    estimate_mw: 0.001633
+    thread_name: "LowMemThread"
+    process_name: "system_server"
+    thread_id: 1481
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.014026
+    estimate_mw: 0.001622
+    thread_name: "pixelstats-vend"
+    process_name: "/vendor/bin/pixelstats-vendor"
+    thread_id: 266
+    process_id: 255
+  }
+  task_info {
+    estimate_mws: 0.013579
+    estimate_mw: 0.001570
+    thread_name: "kworker/u9:0"
+    process_name: "kworker/u9:0"
+    thread_id: 64
+    process_id: 64
+  }
+  task_info {
+    estimate_mws: 0.013322
+    estimate_mw: 0.001540
+    thread_name: "migration/1"
+    process_name: "migration/1"
+    thread_id: 25
+    process_id: 25
+  }
+  task_info {
+    estimate_mws: 0.013321
+    estimate_mw: 0.001540
+    thread_name: "GlobalDispatchi"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 2290
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.013127
+    estimate_mw: 0.001518
+    thread_name: "main"
+    process_name: "/vendor/bin/hw/qcrilNrd"
+    thread_id: 1568
+    process_id: 1062
+  }
+  task_info {
+    estimate_mws: 0.012863
+    estimate_mw: 0.001487
+    thread_name: "servicemanager"
+    thread_id: 5612
+  }
+  task_info {
+    estimate_mws: 0.012835
+    estimate_mw: 0.001484
+    thread_name: "qtidataservices"
+    process_name: ".qtidataservices"
+    thread_id: 2846
+    process_id: 2118
+  }
+  task_info {
+    estimate_mws: 0.012734
+    estimate_mw: 0.001472
+    thread_name: "shortcut"
+    process_name: "system_server"
+    thread_id: 1874
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.012433
+    estimate_mw: 0.001438
+    thread_name: "irq/25-mmc0"
+    process_name: "irq/25-mmc0"
+    thread_id: 120
+    process_id: 120
+  }
+  task_info {
+    estimate_mws: 0.012244
+    estimate_mw: 0.001416
+    thread_name: "GlobalDispatchi"
+    process_name: "com.google.android.gms"
+    thread_id: 3155
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.012130
+    estimate_mw: 0.001402
+    thread_name: "ConnectivityThr"
+    process_name: "com.google.android.gms"
+    thread_id: 4172
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.011932
+    estimate_mw: 0.001380
+    thread_name: "RenderThread"
+    thread_id: 5616
+  }
+  task_info {
+    estimate_mws: 0.011783
+    estimate_mw: 0.001362
+    thread_name: "AGMIPC@1.0-serv"
+    process_name: "/vendor/bin/hw/vendor.qti.hardware.AGMIPC@1.0-service"
+    thread_id: 1454
+    process_id: 1446
+  }
+  task_info {
+    estimate_mws: 0.011706
+    estimate_mw: 0.001353
+    thread_name: "binder:2171_2"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2209
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.011675
+    estimate_mw: 0.001350
+    thread_name: "radioext@1.0-se"
+    process_name: "/vendor/bin/hw/vendor.google.radioext@1.0-service"
+    thread_id: 714
+    process_id: 676
+  }
+  task_info {
+    estimate_mws: 0.011615
+    estimate_mw: 0.001343
+    thread_name: "servicemanager"
+    thread_id: 5615
+  }
+  task_info {
+    estimate_mws: 0.011467
+    estimate_mw: 0.001326
+    thread_name: "LocApiMsgTask"
+    process_name: "/vendor/bin/hw/android.hardware.gnss-aidl-service-qti"
+    thread_id: 694
+    process_id: 650
+  }
+  task_info {
+    estimate_mws: 0.011318
+    estimate_mw: 0.001309
+    thread_name: "LocApiMsgTask"
+    process_name: "xtra-daemon"
+    thread_id: 1090
+    process_id: 1031
+  }
+  task_info {
+    estimate_mws: 0.011273
+    estimate_mw: 0.001303
+    thread_name: "vndservicemanag"
+    thread_id: 5614
+  }
+  task_info {
+    estimate_mws: 0.011024
+    estimate_mw: 0.001275
+    thread_name: "TimerThread"
+    process_name: "/system/bin/audioserver"
+    thread_id: 1486
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.010869
+    estimate_mw: 0.001257
+    thread_name: "irq/26-4744000."
+    process_name: "irq/26-4744000.sdhci"
+    thread_id: 117
+    process_id: 117
+  }
+  task_info {
+    estimate_mws: 0.010764
+    estimate_mw: 0.001245
+    thread_name: "SurfaceSyncGrou"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1994
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.010731
+    estimate_mw: 0.001241
+    thread_name: "migration/3"
+    process_name: "migration/3"
+    thread_id: 40
+    process_id: 40
+  }
+  task_info {
+    estimate_mws: 0.010156
+    estimate_mw: 0.001174
+    thread_name: "id.wearable.app"
+    process_name: "com.google.android.wearable.app"
+    thread_id: 3857
+    process_id: 3857
+  }
+  task_info {
+    estimate_mws: 0.009691
+    estimate_mw: 0.001121
+    thread_name: "ksoftirqd/0"
+    process_name: "ksoftirqd/0"
+    thread_id: 13
+    process_id: 13
+  }
+  task_info {
+    estimate_mws: 0.009668
+    estimate_mw: 0.001118
+    thread_name: "cnss-daemon"
+    process_name: "/system/vendor/bin/cnss-daemon"
+    thread_id: 1052
+    process_id: 1009
+  }
+  task_info {
+    estimate_mws: 0.009639
+    estimate_mw: 0.001114
+    thread_name: "kworker/u9:2"
+    process_name: "kworker/u9:2"
+    thread_id: 338
+    process_id: 338
+  }
+  task_info {
+    estimate_mws: 0.009404
+    estimate_mw: 0.001087
+    thread_name: "binder:2856_3"
+    process_name: "com.google.android.gms"
+    thread_id: 3157
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.009364
+    estimate_mw: 0.001083
+    thread_name: "binder:969_3"
+    process_name: "/system/vendor/bin/cnd"
+    thread_id: 1013
+    process_id: 969
+  }
+  task_info {
+    estimate_mws: 0.008837
+    estimate_mw: 0.001022
+    thread_name: "binder:2118_2"
+    process_name: ".qtidataservices"
+    thread_id: 2142
+    process_id: 2118
+  }
+  task_info {
+    estimate_mws: 0.008775
+    estimate_mw: 0.001015
+    thread_name: "thermal-engine-"
+    process_name: "/vendor/bin/thermal-engine-v2"
+    thread_id: 2520
+    process_id: 2493
+  }
+  task_info {
+    estimate_mws: 0.008724
+    estimate_mw: 0.001009
+    thread_name: "binder:2856_7"
+    process_name: "com.google.android.gms"
+    thread_id: 4825
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.008275
+    estimate_mw: 0.000957
+    thread_name: "binder:2856_6"
+    process_name: "com.google.android.gms"
+    thread_id: 4824
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.008136
+    estimate_mw: 0.000941
+    thread_name: "binder:3857_3"
+    process_name: "com.google.android.wearable.app"
+    thread_id: 3872
+    process_id: 3857
+  }
+  task_info {
+    estimate_mws: 0.007913
+    estimate_mw: 0.000915
+    thread_name: "binder:975_3"
+    process_name: "/vendor/bin/imsdaemon"
+    thread_id: 1630
+    process_id: 975
+  }
+  task_info {
+    estimate_mws: 0.007892
+    estimate_mw: 0.000913
+    thread_name: "time_daemon"
+    process_name: "/vendor/bin/time_daemon"
+    thread_id: 525
+    process_id: 522
+  }
+  task_info {
+    estimate_mws: 0.007750
+    estimate_mw: 0.000896
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1044
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.007591
+    estimate_mw: 0.000878
+    thread_name: "binder:2856_5"
+    process_name: "com.google.android.gms"
+    thread_id: 3681
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.007392
+    estimate_mw: 0.000855
+    thread_name: "binder:2182_1"
+    process_name: "com.android.phone"
+    thread_id: 2231
+    process_id: 2182
+  }
+  task_info {
+    estimate_mws: 0.007384
+    estimate_mw: 0.000854
+    thread_name: "binder:2171_5"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2638
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.007245
+    estimate_mw: 0.000838
+    thread_name: "qrtr_rx"
+    process_name: "qrtr_rx"
+    thread_id: 1556
+    process_id: 1556
+  }
+  task_info {
+    estimate_mws: 0.007086
+    estimate_mw: 0.000819
+    thread_name: "radioext@1.0-se"
+    process_name: "/vendor/bin/hw/vendor.google.radioext@1.0-service"
+    thread_id: 1605
+    process_id: 676
+  }
+  task_info {
+    estimate_mws: 0.006850
+    estimate_mw: 0.000792
+    thread_name: "hwservicemanage"
+    process_name: "/system/system_ext/bin/hwservicemanager"
+    thread_id: 214
+    process_id: 214
+  }
+  task_info {
+    estimate_mws: 0.006731
+    estimate_mw: 0.000778
+    thread_name: "rcub/0"
+    process_name: "rcub/0"
+    thread_id: 17
+    process_id: 17
+  }
+  task_info {
+    estimate_mws: 0.006663
+    estimate_mw: 0.000770
+    thread_name: "binder:2856_8"
+    process_name: "com.google.android.gms"
+    thread_id: 4826
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.006650
+    estimate_mw: 0.000769
+    thread_name: "kthreadd"
+    process_name: "kthreadd"
+    thread_id: 2
+    process_id: 2
+  }
+  task_info {
+    estimate_mws: 0.006574
+    estimate_mw: 0.000760
+    thread_name: "binder:233_2"
+    process_name: "/system/bin/vold"
+    thread_id: 233
+    process_id: 233
+  }
+  task_info {
+    estimate_mws: 0.006115
+    estimate_mw: 0.000707
+    thread_name: "cds_ol_rx_threa"
+    process_name: "cds_ol_rx_thread"
+    thread_id: 5199
+    process_id: 5199
+  }
+  task_info {
+    estimate_mws: 0.005829
+    estimate_mw: 0.000674
+    thread_name: "NsdService"
+    process_name: "system_server"
+    thread_id: 1831
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.005734
+    estimate_mw: 0.000663
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1367
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.005699
+    estimate_mw: 0.000659
+    thread_name: "Scheduled BG"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2895
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.005530
+    estimate_mw: 0.000639
+    thread_name: "binder:2856_2"
+    process_name: "com.google.android.gms"
+    thread_id: 2903
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.005484
+    estimate_mw: 0.000634
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1361
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.005366
+    estimate_mw: 0.000620
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1357
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.005364
+    estimate_mw: 0.000620
+    thread_name: "FileObserver"
+    process_name: "system_server"
+    thread_id: 1498
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.005278
+    estimate_mw: 0.000610
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1359
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.005261
+    estimate_mw: 0.000608
+    thread_name: "Lite Thread #0"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4109
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.005011
+    estimate_mw: 0.000579
+    thread_name: "kworker/3:1H"
+    process_name: "kworker/3:1H"
+    thread_id: 122
+    process_id: 122
+  }
+  task_info {
+    estimate_mws: 0.004996
+    estimate_mw: 0.000578
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1365
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.004986
+    estimate_mw: 0.000576
+    thread_name: "Scheduled BG"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2890
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.004877
+    estimate_mw: 0.000564
+    thread_name: "perfetto_hprof_"
+    process_name: "com.google.android.gms"
+    thread_id: 2880
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.004761
+    estimate_mw: 0.000550
+    thread_name: "backup-0"
+    process_name: "system_server"
+    thread_id: 2660
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.004757
+    estimate_mw: 0.000550
+    thread_name: "tts-player-0"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4209
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.004444
+    estimate_mw: 0.000514
+    thread_name: "Signal Catcher"
+    process_name: "com.google.android.gms"
+    thread_id: 2878
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.004331
+    estimate_mw: 0.000501
+    thread_name: "binder:978_2"
+    process_name: "/system/vendor/bin/nicmd"
+    thread_id: 1363
+    process_id: 978
+  }
+  task_info {
+    estimate_mws: 0.004292
+    estimate_mw: 0.000496
+    thread_name: "f2fs_discard-25"
+    process_name: "f2fs_discard-254:43"
+    thread_id: 349
+    process_id: 349
+  }
+  task_info {
+    estimate_mws: 0.004283
+    estimate_mw: 0.000495
+    thread_name: "irq/24-glink-na"
+    process_name: "irq/24-glink-native-rpm-glink"
+    thread_id: 86
+    process_id: 86
+  }
+  task_info {
+    estimate_mws: 0.004252
+    estimate_mw: 0.000492
+    thread_name: "pool-4-thread-1"
+    process_name: "system_server"
+    thread_id: 1774
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.004010
+    estimate_mw: 0.000464
+    thread_name: "PasspointProvis"
+    process_name: "system_server"
+    thread_id: 1821
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.003934
+    estimate_mw: 0.000455
+    thread_name: "binder:5377_5"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5573
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.003880
+    estimate_mw: 0.000449
+    thread_name: "BG Thread #3"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4107
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.003872
+    estimate_mw: 0.000448
+    thread_name: "TransportThread"
+    process_name: "/vendor/bin/mcu_mgmtd"
+    thread_id: 3540
+    process_id: 524
+  }
+  task_info {
+    estimate_mws: 0.003835
+    estimate_mw: 0.000443
+    thread_name: "kworker/1:1H"
+    process_name: "kworker/1:1H"
+    thread_id: 127
+    process_id: 127
+  }
+  task_info {
+    estimate_mws: 0.003754
+    estimate_mw: 0.000434
+    thread_name: "watchdog"
+    process_name: "system_server"
+    thread_id: 1421
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.003628
+    estimate_mw: 0.000419
+    thread_name: "PackageInstalle"
+    process_name: "system_server"
+    thread_id: 1744
+    process_id: 1302
+  }
+  task_info {
+    estimate_mws: 0.003469
+    estimate_mw: 0.000401
+    thread_name: "Lite Thread #1"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4118
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.003393
+    estimate_mw: 0.000392
+    thread_name: "FinalizerWatchd"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5389
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.003365
+    estimate_mw: 0.000389
+    thread_name: "DFacilitator-1"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5128
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.003243
+    estimate_mw: 0.000375
+    thread_name: "pool-8-thread-1"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 3308
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.002873
+    estimate_mw: 0.000332
+    thread_name: "lowpool[1]"
+    process_name: "com.google.android.gms"
+    thread_id: 3503
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002842
+    estimate_mw: 0.000329
+    thread_name: "ReferenceQueueD"
+    process_name: "com.google.android.gms"
+    thread_id: 2883
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002778
+    estimate_mw: 0.000321
+    thread_name: "ipacm-diag"
+    process_name: "/system/vendor/bin/ipacm-diag"
+    thread_id: 976
+    process_id: 976
+  }
+  task_info {
+    estimate_mws: 0.002739
+    estimate_mw: 0.000317
+    thread_name: "migration/2"
+    process_name: "migration/2"
+    thread_id: 32
+    process_id: 32
+  }
+  task_info {
+    estimate_mws: 0.002654
+    estimate_mw: 0.000307
+    thread_name: "qrtr_rx"
+    process_name: "qrtr_rx"
+    thread_id: 564
+    process_id: 564
+  }
+  task_info {
+    estimate_mws: 0.002601
+    estimate_mw: 0.000301
+    thread_name: "card0-crtc0"
+    process_name: "card0-crtc0"
+    thread_id: 247
+    process_id: 247
+  }
+  task_info {
+    estimate_mws: 0.002574
+    estimate_mw: 0.000298
+    thread_name: "pool-7-thread-3"
+    process_name: "com.google.android.wearable.healthservices"
+    thread_id: 5435
+    process_id: 3028
+  }
+  task_info {
+    estimate_mws: 0.002458
+    estimate_mw: 0.000284
+    thread_name: "RenderThread"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2319
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.002443
+    estimate_mw: 0.000283
+    thread_name: "highpool[0]"
+    process_name: "com.google.android.gms"
+    thread_id: 3154
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002437
+    estimate_mw: 0.000282
+    thread_name: "lowpool[0]"
+    process_name: "com.google.android.gms"
+    thread_id: 3478
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002241
+    estimate_mw: 0.000259
+    thread_name: "queued-work-loo"
+    process_name: "com.google.android.gms.persistent"
+    thread_id: 3533
+    process_id: 1949
+  }
+  task_info {
+    estimate_mws: 0.002222
+    estimate_mw: 0.000257
+    thread_name: "arch_disk_io_2"
+    process_name: "com.google.android.gms"
+    thread_id: 4174
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002160
+    estimate_mw: 0.000250
+    thread_name: "binder:523_2"
+    process_name: "/system/vendor/bin/ipacm"
+    thread_id: 537
+    process_id: 523
+  }
+  task_info {
+    estimate_mws: 0.002129
+    estimate_mw: 0.000246
+    thread_name: "Jit thread pool"
+    process_name: "com.google.android.gms"
+    thread_id: 2881
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002082
+    estimate_mw: 0.000241
+    thread_name: "pool-48-thread-"
+    process_name: "com.google.android.gms"
+    thread_id: 4110
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.002071
+    estimate_mw: 0.000239
+    thread_name: "RenderThread"
+    process_name: "com.google.android.inputmethod.latin"
+    thread_id: 5120
+    process_id: 4997
+  }
+  task_info {
+    estimate_mws: 0.002020
+    estimate_mw: 0.000234
+    thread_name: "arch_disk_io_0"
+    process_name: "com.google.android.gms"
+    thread_id: 4031
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.001985
+    estimate_mw: 0.000229
+    thread_name: "arch_disk_io_1"
+    process_name: "com.google.android.gms"
+    thread_id: 4034
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.001856
+    estimate_mw: 0.000215
+    thread_name: "BG Thread #0"
+    process_name: "com.google.android.wearable.assistant"
+    thread_id: 4061
+    process_id: 4038
+  }
+  task_info {
+    estimate_mws: 0.001782
+    estimate_mw: 0.000206
+    thread_name: "binder:1926_1"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 1938
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.001776
+    estimate_mw: 0.000205
+    thread_name: "highpool[3]"
+    process_name: "com.google.android.gms"
+    thread_id: 3470
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.001776
+    estimate_mw: 0.000205
+    thread_name: "migration/0"
+    process_name: "migration/0"
+    thread_id: 21
+    process_id: 21
+  }
+  task_info {
+    estimate_mws: 0.001772
+    estimate_mw: 0.000205
+    thread_name: "AsyncTask #2"
+    process_name: "com.google.android.gms"
+    thread_id: 4164
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.001720
+    estimate_mw: 0.000199
+    thread_name: "arch_disk_io_3"
+    process_name: "com.google.android.gms"
+    thread_id: 4175
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.001562
+    estimate_mw: 0.000181
+    thread_name: "POSIX timer 0"
+    process_name: "/vendor/bin/hw/android.hardware.sensors-service.multihal"
+    thread_id: 850
+    process_id: 664
+  }
+  task_info {
+    estimate_mws: 0.001520
+    estimate_mw: 0.000176
+    thread_name: "ksoftirqd/3"
+    process_name: "ksoftirqd/3"
+    thread_id: 42
+    process_id: 42
+  }
+  task_info {
+    estimate_mws: 0.001401
+    estimate_mw: 0.000162
+    thread_name: "Primes-1"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5394
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001320
+    estimate_mw: 0.000153
+    thread_name: "binder:5377_3"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5392
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001316
+    estimate_mw: 0.000152
+    thread_name: "msm-watchdog"
+    process_name: "msm-watchdog"
+    thread_id: 76
+    process_id: 76
+  }
+  task_info {
+    estimate_mws: 0.001222
+    estimate_mw: 0.000141
+    thread_name: "Lite Thread #1"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5421
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001220
+    estimate_mw: 0.000141
+    thread_name: "Signal Catcher"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5382
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001179
+    estimate_mw: 0.000136
+    thread_name: "GoogleApiHandle"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5398
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001127
+    estimate_mw: 0.000130
+    thread_name: "binder:2171_6"
+    process_name: "com.google.android.apps.wearable.systemui"
+    thread_id: 2678
+    process_id: 2171
+  }
+  task_info {
+    estimate_mws: 0.001103
+    estimate_mw: 0.000128
+    thread_name: "Blocking Thread"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5574
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.001055
+    estimate_mw: 0.000122
+    thread_name: "WM.task-3"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5430
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000990
+    estimate_mw: 0.000114
+    thread_name: "highpool[1]"
+    process_name: "com.google.android.gms"
+    thread_id: 3373
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.000984
+    estimate_mw: 0.000114
+    thread_name: "Primes-nativecr"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5397
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000961
+    estimate_mw: 0.000111
+    thread_name: "binder:740_4"
+    process_name: "/system/bin/audioserver"
+    thread_id: 2183
+    process_id: 740
+  }
+  task_info {
+    estimate_mws: 0.000954
+    estimate_mw: 0.000110
+    thread_name: "Lite Thread #0"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5404
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000927
+    estimate_mw: 0.000107
+    thread_name: "BG Thread #0"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5395
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000926
+    estimate_mw: 0.000107
+    thread_name: "FinalizerDaemon"
+    process_name: "com.google.android.gms"
+    thread_id: 2885
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.000887
+    estimate_mw: 0.000103
+    thread_name: "BG Thread #1"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5396
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000865
+    estimate_mw: 0.000100
+    thread_name: "Jit thread pool"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5385
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000858
+    estimate_mw: 0.000099
+    thread_name: "highpool[2]"
+    process_name: "com.google.android.gms"
+    thread_id: 3375
+    process_id: 2856
+  }
+  task_info {
+    estimate_mws: 0.000855
+    estimate_mw: 0.000099
+    thread_name: "ConnectivityThr"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5423
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000828
+    estimate_mw: 0.000096
+    thread_name: "Profile Saver"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5393
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000808
+    estimate_mw: 0.000093
+    thread_name: "ReferenceQueueD"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5387
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000803
+    estimate_mw: 0.000093
+    thread_name: "binder:5377_4"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5433
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000783
+    estimate_mw: 0.000091
+    thread_name: "ksoftirqd/1"
+    process_name: "ksoftirqd/1"
+    thread_id: 27
+    process_id: 27
+  }
+  task_info {
+    estimate_mws: 0.000782
+    estimate_mw: 0.000090
+    thread_name: "HsConnectionMan"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5422
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000769
+    estimate_mw: 0.000089
+    thread_name: "ADB-JDWP Connec"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5384
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000742
+    estimate_mw: 0.000086
+    thread_name: "Scheduler Threa"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5428
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000733
+    estimate_mw: 0.000085
+    thread_name: "WM.task-2"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5429
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000730
+    estimate_mw: 0.000084
+    thread_name: "Scheduled BG"
+    process_name: "com.google.android.wearable.sysui"
+    thread_id: 2896
+    process_id: 1926
+  }
+  task_info {
+    estimate_mws: 0.000727
+    estimate_mw: 0.000084
+    thread_name: "DefaultDispatch"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5431
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000726
+    estimate_mw: 0.000084
+    thread_name: "BG Thread #3"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5400
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000724
+    estimate_mw: 0.000084
+    thread_name: "WM.task-1"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5427
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000718
+    estimate_mw: 0.000083
+    thread_name: "binder:5377_1"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5390
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000689
+    estimate_mw: 0.000080
+    thread_name: "DefaultDispatch"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5432
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000669
+    estimate_mw: 0.000077
+    thread_name: "BG Thread #2"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5399
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000630
+    estimate_mw: 0.000073
+    thread_name: "binder:5377_2"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5391
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000583
+    estimate_mw: 0.000067
+    thread_name: "perfetto_hprof_"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5383
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000507
+    estimate_mw: 0.000059
+    thread_name: "Primes-2"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5444
+    process_id: 5377
+  }
+  task_info {
+    estimate_mws: 0.000403
+    estimate_mw: 0.000047
+    thread_name: "FinalizerDaemon"
+    process_name: "com.fitbit.FitbitMobile"
+    thread_id: 5388
+    process_id: 5377
+  }
+}