blob: 91122eb176b484ce95cf27a1b9e230867fb02998 [file] [log] [blame]
/*
* Copyright (C) 2022 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;
// This metric provides information about the monitor contention graph in a
// trace
message AndroidMonitorContentionMetric {
message Node {
optional int64 node_parent_id = 1;
optional int64 node_id = 2;
optional int64 ts = 3;
optional int64 dur = 4;
optional string blocking_method = 5;
optional string blocked_method = 6;
optional string short_blocking_method = 7;
optional string short_blocked_method = 8;
optional string blocking_src = 9;
optional string blocked_src = 10;
optional uint32 waiter_count = 11;
optional string blocked_thread_name = 12;
optional string blocking_thread_name = 13;
optional string process_name = 14;
optional bool is_blocked_thread_main = 15;
optional bool is_blocking_thread_main = 16;
optional int64 binder_reply_ts = 17;
optional uint32 binder_reply_tid = 18;
repeated ThreadStateBreakdown thread_states = 19;
repeated BlockedFunctionBreakdown blocked_functions = 20;
}
message ThreadStateBreakdown {
optional string thread_state = 1;
optional int64 thread_state_dur = 2;
optional int64 thread_state_count = 3;
}
message BlockedFunctionBreakdown {
optional string blocked_function = 1;
optional int64 blocked_function_dur = 2;
optional int64 blocked_function_count = 3;
}
repeated Node node = 1;
}