• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2024 The Android Open Source Project
3 *
4 * Licensed under the Apache License; Version 2.0 (the "License")= ;
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing; software
11 * distributed under the License is distributed on an "AS IS" BASIS;
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND; either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package perfetto.protos;
20
21message AndroidWattsonTasksAttributionMetric {
22  // Each version increment means updated structure format or field
23  optional int32 metric_version = 1;
24  // Each version increment means power model has been updated and estimates
25  // might change for the exact same input. Don't compare estimates across
26  // different power model versions.
27  optional int32 power_model_version = 2;
28  // Lists tasks (e.g. threads, process, package) and associated estimates
29  repeated AndroidWattsonTaskPeriodInfo period_info = 3;
30}
31
32// Groups of power per task for each period
33message AndroidWattsonTaskPeriodInfo {
34  optional int32 period_id = 1;
35  optional string period_name = 2;
36  repeated AndroidWattsonTaskInfo task_info = 3;
37}
38
39message AndroidWattsonTaskInfo {
40  // Average estimated power for wall duration in mW
41  optional float estimated_mw = 1;
42  // Total energy over wall duration across CPUs in mWs
43  optional float estimated_mws = 2;
44  // Energy attributed to a thread for causing CPU idle exit
45  optional float idle_transitions_mws = 3;
46  // Sum of estimated_mws and idle_transition_mws, which represents the energy
47  // during the active time and the energy to transition into active,
48  // respectively
49  optional float total_mws = 4;
50  optional string thread_name = 5;
51  optional string process_name = 6;
52  optional string package_name = 7;
53  optional int32 thread_id = 8;
54  optional int32 process_id = 9;
55}
56