TracePacket

TracePacket is the root object of a Perfetto trace. A Perfetto trace is a linear sequence of TracePacket(s).

The tracing service guarantees that all TracePacket(s) written by a given TraceWriter are seen in-order, without gaps or duplicates. If, for any reason, a TraceWriter sequence becomes invalid, no more packets are returned to the Consumer (or written into the trace file). TracePacket(s) written by different TraceWriter(s), hence even different data sources, can be seen in arbitrary order. The consumer can re-establish a total order, if interested, using the packet timestamps, after having synchronized the different clocks onto a global clock.

The tracing service is agnostic of the content of TracePacket, with the exception of few fields (e.g.. trusted_*, trace_config) that are written by the service itself.

See the Buffers and Dataflow doc for details.

Defined in trace_packet.proto

Fields:

Field Type Description
timestamp uint64 The timestamp of the TracePacket.
By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on Android). It can be overridden using a different timestamp_clock_id.
The clock domain definition in ClockSnapshot can also override:
- The unit (default: 1ns).
- The absolute vs delta encoding (default: absolute timestamp).
timestamp_clock_id uint32 Specifies the ID of the clock used for the TracePacket timestamp. Can be one of the built-in types from ClockSnapshot::BuiltinClocks, or a producer-defined clock id.
If unspecified and if no default per-sequence value has been provided via TracePacketDefaults, it defaults to BuiltinClocks::BOOTTIME.
process_tree ProcessTree
process_stats ProcessStats
inode_file_map InodeFileMap
chrome_events ChromeEventBundle
clock_snapshot ClockSnapshot
sys_stats SysStats
track_event TrackEvent
trace_uuid TraceUuid
trace_config TraceConfig
ftrace_stats FtraceStats
trace_stats TraceStats
profile_packet ProfilePacket
streaming_allocation StreamingAllocation
streaming_free StreamingFree
battery BatteryCounters
power_rails PowerRails
android_log AndroidLogPacket
system_info SystemInfo
trigger Trigger
packages_list PackagesList
chrome_benchmark_metadata ChromeBenchmarkMetadata
perfetto_metatrace PerfettoMetatrace
chrome_metadata ChromeMetadataPacket
gpu_counter_event GpuCounterEvent
gpu_render_stage_event GpuRenderStageEvent
streaming_profile_packet StreamingProfilePacket
heap_graph HeapGraph
graphics_frame_event GraphicsFrameEvent
vulkan_memory_event VulkanMemoryEvent
gpu_log GpuLog
vulkan_api_event VulkanApiEvent
perf_sample PerfSample
cpu_info CpuInfo
smaps_packet SmapsPacket
service_event TracingServiceEvent
initial_display_state InitialDisplayState
gpu_mem_total_event GpuMemTotalEvent
memory_tracker_snapshot MemoryTrackerSnapshot
frame_timeline_event FrameTimelineEvent
android_energy_estimation_breakdown AndroidEnergyEstimationBreakdown
ui_state UiState
android_camera_frame_event AndroidCameraFrameEvent
android_camera_session_stats AndroidCameraSessionStats
translation_table TranslationTable
android_game_intervention_list AndroidGameInterventionList
statsd_atom StatsdAtom
android_system_property AndroidSystemProperty
entity_state_residency EntityStateResidency
profiled_frame_symbols ProfiledFrameSymbols Only used in profile packets.
module_symbols ModuleSymbols
deobfuscation_mapping DeobfuscationMapping
track_descriptor TrackDescriptor Only used by TrackEvent.
process_descriptor ProcessDescriptor Deprecated, use TrackDescriptor instead.
thread_descriptor ThreadDescriptor Deprecated, use TrackDescriptor instead.
ftrace_events FtraceEventBundle Events from the Linux kernel ftrace infrastructure.
synchronization_marker bytes This field is emitted at periodic intervals (~10s) and contains always the binary representation of the UUID {82477a76-b28d-42ba-81dc-33326d57a079}. This is used to be able to efficiently partition long traces without having to fully parse them.
compressed_packets bytes Zero or more proto encoded trace packets compressed using deflate.
Each compressed_packets TracePacket (including the two field ids and sizes) should be less than 512KB.
extension_descriptor ExtensionDescriptor Data sources can extend the trace proto with custom extension protos (see docs/design-docs/extensions.md). When they do that, the descriptor of their extension proto descriptor is serialized in this packet. This allows trace_processor to deserialize extended messages using reflection even if the extension proto is not checked in the Perfetto repo.
network_packet NetworkPacketEvent Represents a single packet sent or received by the network.
network_packet_bundle NetworkPacketBundle Represents one or more packets sent or received by the network.
track_event_range_of_interest TrackEventRangeOfInterest The "range of interest" for track events. See the message definition comments for more details.
surfaceflinger_layers_snapshot LayersSnapshotProto Winscope traces
surfaceflinger_transactions TransactionTraceEntry
shell_transition ShellTransition
shell_handler_mappings ShellHandlerMappings
protolog_message ProtoLogMessage
protolog_viewer_config ProtoLogViewerConfig
etw_events EtwTraceEventBundle Events from the Windows etw infrastructure.
v8_js_code V8JsCode
v8_internal_code V8InternalCode
v8_wasm_code V8WasmCode
v8_reg_exp_code V8RegExpCode
v8_code_move V8CodeMove
android_input_event AndroidInputEvent InputFlinger traces
remote_clock_sync RemoteClockSync Clock synchronization with remote machines.
for_testing TestEvent This field is only used for testing.
In previous versions of this proto this field had the id 268435455 This caused many problems:
- protozero decoder does not handle field ids larger than 999.
- old versions of protoc produce Java bindings with syntax errors when the field id is large enough.
trusted_uid int32 Trusted user id of the producer which generated this packet. Keep in sync with TrustedPacket.trusted_uid.
instead.
trusted_packet_sequence_id uint32
trusted_pid int32 Trusted process id of the producer which generated this packet, written by the service.
interned_data InternedData Incrementally emitted interned data, valid only on the packet's sequence (packets with the same trusted_packet_sequence_id). The writer will usually emit new interned data in the same TracePacket that first refers to it (since the last reset of interning state). It may also be emitted proactively in advance of referring to them in later packets.
sequence_flags uint32
incremental_state_cleared bool DEPRECATED. Moved to SequenceFlags::SEQ_INCREMENTAL_STATE_CLEARED.
trace_packet_defaults TracePacketDefaults Default values for fields of later TracePackets emitted on this packet's sequence (TracePackets with the same trusted_packet_sequence_id).
It must be reemitted when incremental state is cleared (see incremental_state_cleared).
Requires that any future packet emitted on the same sequence specifies the SEQ_NEEDS_INCREMENTAL_STATE flag.
TracePacketDefaults always override the global defaults for any future packet on this sequence (regardless of SEQ_NEEDS_INCREMENTAL_STATE).
previous_packet_dropped bool Flag set by the service if, for the current packet sequence (see trusted_packet_sequence_id), either:
* this is the first packet, or * one or multiple packets were dropped since the last packet that the consumer read from the sequence. This can happen if chunks in the trace buffer are overridden before the consumer could read them when the trace is configured in ring buffer mode.
When packet loss occurs, incrementally emitted data (including interned data) on the sequence should be considered invalid up until the next packet with SEQ_INCREMENTAL_STATE_CLEARED set.
first_packet_on_sequence bool Flag set by a producer (starting from SDK v29) if, for the current packet sequence (see trusted_packet_sequence_id), this is the first packet.
This flag can be used for distinguishing the two situations when processing the trace:
1. There are no prior events for the sequence because of data loss, e.g.
due to ring buffer wrapping.
2. There are no prior events for the sequence because it didn't start before this packet (= there's definitely no preceding data loss).
Given that older SDK versions do not support this flag, this flag not being present for a particular sequence does not necessarily imply data loss.
machine_id uint32 The machine ID for identifying trace packets in a multi-machine tracing session. Is emitted by the tracing service for producers running on a remote host (e.g. a VM guest). For more context: go/crosetto-vm-tracing.

ProcessTree

Metadata about the processes and threads in the trace. Note: this proto was designed to be filled in by traced_probes and should only be populated with accurate information coming from the system. Other trace writers should prefer to fill ThreadDescriptor and ProcessDescriptor in TrackDescriptor.

Defined in process_tree.proto

Fields:

Field Type Description
processes Process[] List of processes and threads in the client. These lists are incremental and not exhaustive. A process and its threads might show up separately in different ProcessTree messages. A thread might event not show up at all, if no sched_switch activity was detected, for instance:
#0 { processes: [{pid: 10, ...}], threads: [{pid: 11, tgid: 10}] } #1 { threads: [{pid: 12, tgid: 10}] } #2 { processes: [{pid: 20, ...}], threads: [{pid: 13, tgid: 10}] }
threads Thread[]
collection_end_timestamp uint64 The time at which we finish collecting this process tree; the top-level packet timestamp is the time at which we begin collection.

ProcessTree.Process

Representation of a process.

Defined in process_tree.proto

Fields:

Field Type Description
pid int32 The UNIX process ID, aka thread group ID (as per getpid()) in the root PID namespace.
ppid int32 The parent process ID, as per getppid().
cmdline string[] The command line for the process, as per /proc/pid/cmdline.
If it is a kernel thread there will only be one cmdline field and it will contain /proc/pid/comm.
uid int32 The uid for the process, as per /proc/pid/status.
nspid int32[] The non-root-level process IDs if the process runs in a PID namespace.
Read from the NSpid entry of /proc//status, with the first element (root-level process ID) omitted.
process_start_from_boot uint64 Timestamp of when the process was created, in nanoseconds from boot. Parsed from starttime in /proc/pid/stat.
Recorded if record_process_age config option is set.
Resolution of "clock ticks", usually 10ms.

ProcessTree.Thread

Representation of a thread.

Defined in process_tree.proto

Fields:

Field Type Description
tid int32 The thread ID (as per gettid()) in the root PID namespace.
tgid int32 Thread group id (i.e. the PID of the process, == TID of the main thread)
name string The name of the thread.
nstid int32[] The non-root-level thread IDs if the thread runs in a PID namespace. Read from the NSpid entry of /proc//status, with the first element (root- level thread ID) omitted.

ProcessStats

Per-process periodically sampled stats. These samples are wrapped in a dedicated message (as opposite to be fields in process_tree.proto) because they are dumped at a different rate than cmdline and thread list. Note: not all of these stats will be present in every ProcessStats message and sometimes processes may be missing. This is because counters are cached to reduce emission of counters which do not change.

Defined in process_stats.proto

Fields:

Field Type Description
processes Process[]
collection_end_timestamp uint64 The time at which we finish collecting this batch of samples; the top-level packet timestamp is the time at which we begin collection.

ProcessStats.Process

Defined in process_stats.proto

Fields:

Field Type Description
pid int32
threads Thread[]
vm_size_kb uint64 See /proc/[pid]/status in man 5 proc for a description of these fields.
vm_rss_kb uint64
rss_anon_kb uint64
rss_file_kb uint64
rss_shmem_kb uint64
vm_swap_kb uint64
vm_locked_kb uint64
vm_hwm_kb uint64
oom_score_adj int64
is_peak_rss_resettable bool The peak resident set size is resettable in newer Posix kernels.
This field specifies if reset is supported and if the writer had reset the peaks after each process stats recording.
chrome_private_footprint_kb uint32 Private, shared and swap footprint of the process as measured by Chrome. To know more about these metrics refer to:
https://docs.google.com/document/d/1_WmgE1F5WUrhwkPqJis3dWyOiUmQKvpXp5cd4w86TvA
chrome_peak_resident_set_kb uint32
fds FDInfo[]
smr_rss_kb uint64 These fields are set only when scan_smaps_rollup=true
smr_pss_kb uint64
smr_pss_anon_kb uint64
smr_pss_file_kb uint64
smr_pss_shmem_kb uint64
runtime_user_mode uint64 Time spent scheduled in user mode in nanoseconds. Parsed from utime in /proc/pid/stat. Recorded if record_process_runtime config option is set.
Resolution of "clock ticks", usually 10ms.
runtime_kernel_mode uint64 Time spent scheduled in kernel mode in nanoseconds. Parsed from stime in /proc/pid/stat. Recorded if record_process_runtime config option is set.
Resolution of "clock ticks", usually 10ms.

ProcessStats.Thread

Per-thread periodically sampled stats. Note: not all of these stats will be present in every message. See the note for ProcessStats.

Defined in process_stats.proto

Fields:

Field Type Description
tid int32

ProcessStats.FDInfo

Defined in process_stats.proto

Fields:

Field Type Description
fd uint64
path string

InodeFileMap

Represents the mapping between inode numbers in a block device and their path on the filesystem

Defined in inode_file_map.proto

Fields:

Field Type Description
block_device_id uint64
mount_points string[] The mount points of the block device, e.g. ["system"].
entries Entry[] The list of all the entries from the block device

InodeFileMap.Entry

Representation of Entry

Defined in inode_file_map.proto

Fields:

Field Type Description
inode_number uint64
paths string[] The path to the file, e.g. "etc/file.xml" List of strings for multiple hardlinks
type Type

InodeFileMap.Entry.Type

The file type

Defined in inode_file_map.proto

Enum values:

Name Value Description
UNKNOWN 0
FILE 1
DIRECTORY 2

ChromeEventBundle

Defined in chrome_trace_event.proto

Fields:

Field Type Description
trace_events ChromeTraceEvent[] Deprecated, use TrackEvent protos instead.
metadata ChromeMetadata[] which contains typed fields.
legacy_ftrace_output string[] ftrace output from CrOS and Cast system tracing agents.
legacy_json_trace ChromeLegacyJsonTrace[]
string_table ChromeStringTableEntry[] Contents of a string table that's valid for the whole ChromeEventBundle entry.

ChromeTraceEvent

Deprecated, use TrackEvent protos instead.

Defined in chrome_trace_event.proto

Fields:

Field Type Description
name string
timestamp int64
phase int32
thread_id int32
duration int64
thread_duration int64
scope string
id uint64
flags uint32
category_group_name string
process_id int32
thread_timestamp int64
bind_id uint64
args Arg[]
name_index uint32 Takes precedence over respectively name and category_group_name_index if set, and are indices into string_table.
category_group_name_index uint32

ChromeTraceEvent.Arg

Defined in chrome_trace_event.proto

Fields:

Field Type Description
name string
bool_value bool
uint_value uint64
int_value int64
double_value double
string_value string
pointer_value uint64 Pointers are stored in a separate type as the JSON output treats them differently from other uint64 values.
json_value string
traced_value ChromeTracedValue
name_index uint32 Takes precedence over name if set, and is an index into string_table.

ChromeTracedValue

Defined in chrome_trace_event.proto

Fields:

Field Type Description
nested_type NestedType
dict_keys string[]
dict_values ChromeTracedValue[]
array_values ChromeTracedValue[]
int_value int32
double_value double
bool_value bool
string_value string

ChromeTracedValue.NestedType

Defined in chrome_trace_event.proto

Enum values:

Name Value Description
DICT 0
ARRAY 1

ChromeMetadata

Defined in chrome_trace_event.proto

Fields:

Field Type Description
name string
string_value string
bool_value bool
int_value int64
json_value string

ChromeLegacyJsonTrace

Subtraces produced in legacy json format by Chrome tracing agents not yet updated to support the new binary format, e.g. ETW and CrOS ARC.

Defined in chrome_trace_event.proto

Fields:

Field Type Description
type TraceType
data string

ChromeLegacyJsonTrace.TraceType

Defined in chrome_trace_event.proto

Enum values:

Name Value Description
USER_TRACE 0
SYSTEM_TRACE 1 Deprecated.

ChromeStringTableEntry

Defined in chrome_trace_event.proto

Fields:

Field Type Description
value string
index int32

ClockSnapshot

A snapshot of clock readings to allow for trace alignment.

Defined in clock_snapshot.proto

Fields:

Field Type Description
clocks Clock[]
primary_trace_clock BuiltinClock The authoritative clock domain for the trace. Defaults to BOOTTIME, but can be overridden in TraceConfig's builtin_data_sources. Trace processor will attempt to translate packet/event timestamps from various data sources (and their chosen clock domains) to this domain during import.

ClockSnapshot.Clock

Defined in clock_snapshot.proto

Fields:

Field Type Description
clock_id uint32 Clock IDs have the following semantic:
[1, 63]: Builtin types, see BuiltinClock from ../common/builtin_clock.proto.
[64, 127]: User-defined clocks. These clocks are sequence-scoped. They are only valid within the same trusted_packet_sequence_id (i.e. only for TracePacket(s) emitted by the same TraceWriter that emitted the clock snapshot).
[128, MAX]: Reserved for future use. The idea is to allow global clock IDs and setting this ID to hash(full_clock_name) & ~127.
timestamp uint64 Absolute timestamp. Unit is ns unless specified otherwise by the unit_multiplier_ns field below.
is_incremental bool When true each TracePacket's timestamp should be interpreted as a delta from the last TracePacket's timestamp (referencing this clock) emitted by the same packet_sequence_id. Should only be used for user-defined sequence-local clocks. The first packet timestamp after each ClockSnapshot that contains this clock is relative to the timestamp in the ClockSnapshot.
unit_multiplier_ns uint64 Allows to specify a custom unit different than the default (ns) for this clock domain. A multiplier of 1000 means that a timestamp = 3 should be interpreted as 3000 ns = 3 us. All snapshots for the same clock within a trace need to use the same unit.

BuiltinClock

Defined in builtin_clock.proto

Enum values:

Name Value Description
BUILTIN_CLOCK_UNKNOWN 0
BUILTIN_CLOCK_REALTIME 1
BUILTIN_CLOCK_REALTIME_COARSE 2
BUILTIN_CLOCK_MONOTONIC 3
BUILTIN_CLOCK_MONOTONIC_COARSE 4
BUILTIN_CLOCK_MONOTONIC_RAW 5
BUILTIN_CLOCK_BOOTTIME 6
BUILTIN_CLOCK_MAX_ID 63

SysStats

Various Linux system stat counters from /proc. The fields in this message can be reported at different rates and with different granularity. See sys_stats_config.proto.

Defined in sys_stats.proto

Fields:

Field Type Description
meminfo MeminfoValue[]
vmstat VmstatValue[]
cpu_stat CpuTimes[] One entry per cpu.
num_forks uint64 Num processes forked since boot.
Populated only if FORK_COUNT in config.stat_counters.
num_irq_total uint64 Total num of irqs serviced since boot.
num_irq InterruptCount[]
num_softirq_total uint64 Total num of softirqs since boot.
num_softirq InterruptCount[] Per-softirq count.
collection_end_timestamp uint64 The time at which we finish collecting this set of samples; the top-level packet timestamp is the time at which we begin collection.
devfreq DevfreqValue[] One entry per device.
cpufreq_khz uint32[] Cpu current frequency from /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq in kHz.
One entry per cpu. Report 0 for offline cpu
buddy_info BuddyInfo[] One entry per each node's zones.
disk_stat DiskStat[] One entry per disk device.
psi PsiSample[] One entry per PsiResource type.

SysStats.MeminfoValue

Counters from /proc/meminfo. Values are in KB.

Defined in sys_stats.proto

Fields:

Field Type Description
key MeminfoCounters
value uint64

MeminfoCounters

Counter definitions for Linux's /proc/meminfo.

Defined in sys_stats_counters.proto

Enum values:

Name Value Description
MEMINFO_UNSPECIFIED 0
MEMINFO_MEM_TOTAL 1
MEMINFO_MEM_FREE 2
MEMINFO_MEM_AVAILABLE 3
MEMINFO_BUFFERS 4
MEMINFO_CACHED 5
MEMINFO_SWAP_CACHED 6
MEMINFO_ACTIVE 7
MEMINFO_INACTIVE 8
MEMINFO_ACTIVE_ANON 9
MEMINFO_INACTIVE_ANON 10
MEMINFO_ACTIVE_FILE 11
MEMINFO_INACTIVE_FILE 12
MEMINFO_UNEVICTABLE 13
MEMINFO_MLOCKED 14
MEMINFO_SWAP_TOTAL 15
MEMINFO_SWAP_FREE 16
MEMINFO_DIRTY 17
MEMINFO_WRITEBACK 18
MEMINFO_ANON_PAGES 19
MEMINFO_MAPPED 20
MEMINFO_SHMEM 21
MEMINFO_SLAB 22
MEMINFO_SLAB_RECLAIMABLE 23
MEMINFO_SLAB_UNRECLAIMABLE 24
MEMINFO_KERNEL_STACK 25
MEMINFO_PAGE_TABLES 26
MEMINFO_COMMIT_LIMIT 27
MEMINFO_COMMITED_AS 28
MEMINFO_VMALLOC_TOTAL 29
MEMINFO_VMALLOC_USED 30
MEMINFO_VMALLOC_CHUNK 31
MEMINFO_CMA_TOTAL 32
MEMINFO_CMA_FREE 33

SysStats.VmstatValue

Counter from /proc/vmstat. Units are often pages, not KB.

Defined in sys_stats.proto

Fields:

Field Type Description
key VmstatCounters
value uint64

VmstatCounters

Counter definitions for Linux's /proc/vmstat.

Defined in sys_stats_counters.proto

Enum values:

Name Value Description
VMSTAT_UNSPECIFIED 0
VMSTAT_NR_FREE_PAGES 1
VMSTAT_NR_ALLOC_BATCH 2
VMSTAT_NR_INACTIVE_ANON 3
VMSTAT_NR_ACTIVE_ANON 4
VMSTAT_NR_INACTIVE_FILE 5
VMSTAT_NR_ACTIVE_FILE 6
VMSTAT_NR_UNEVICTABLE 7
VMSTAT_NR_MLOCK 8
VMSTAT_NR_ANON_PAGES 9
VMSTAT_NR_MAPPED 10
VMSTAT_NR_FILE_PAGES 11
VMSTAT_NR_DIRTY 12
VMSTAT_NR_WRITEBACK 13
VMSTAT_NR_SLAB_RECLAIMABLE 14
VMSTAT_NR_SLAB_UNRECLAIMABLE 15
VMSTAT_NR_PAGE_TABLE_PAGES 16
VMSTAT_NR_KERNEL_STACK 17
VMSTAT_NR_OVERHEAD 18
VMSTAT_NR_UNSTABLE 19
VMSTAT_NR_BOUNCE 20
VMSTAT_NR_VMSCAN_WRITE 21
VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM 22
VMSTAT_NR_WRITEBACK_TEMP 23
VMSTAT_NR_ISOLATED_ANON 24
VMSTAT_NR_ISOLATED_FILE 25
VMSTAT_NR_SHMEM 26
VMSTAT_NR_DIRTIED 27
VMSTAT_NR_WRITTEN 28
VMSTAT_NR_PAGES_SCANNED 29
VMSTAT_WORKINGSET_REFAULT 30
VMSTAT_WORKINGSET_ACTIVATE 31
VMSTAT_WORKINGSET_NODERECLAIM 32
VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES 33
VMSTAT_NR_FREE_CMA 34
VMSTAT_NR_SWAPCACHE 35
VMSTAT_NR_DIRTY_THRESHOLD 36
VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD 37
VMSTAT_PGPGIN 38
VMSTAT_PGPGOUT 39
VMSTAT_PGPGOUTCLEAN 40
VMSTAT_PSWPIN 41
VMSTAT_PSWPOUT 42
VMSTAT_PGALLOC_DMA 43
VMSTAT_PGALLOC_NORMAL 44
VMSTAT_PGALLOC_MOVABLE 45
VMSTAT_PGFREE 46
VMSTAT_PGACTIVATE 47
VMSTAT_PGDEACTIVATE 48
VMSTAT_PGFAULT 49
VMSTAT_PGMAJFAULT 50
VMSTAT_PGREFILL_DMA 51
VMSTAT_PGREFILL_NORMAL 52
VMSTAT_PGREFILL_MOVABLE 53
VMSTAT_PGSTEAL_KSWAPD_DMA 54
VMSTAT_PGSTEAL_KSWAPD_NORMAL 55
VMSTAT_PGSTEAL_KSWAPD_MOVABLE 56
VMSTAT_PGSTEAL_DIRECT_DMA 57
VMSTAT_PGSTEAL_DIRECT_NORMAL 58
VMSTAT_PGSTEAL_DIRECT_MOVABLE 59
VMSTAT_PGSCAN_KSWAPD_DMA 60
VMSTAT_PGSCAN_KSWAPD_NORMAL 61
VMSTAT_PGSCAN_KSWAPD_MOVABLE 62
VMSTAT_PGSCAN_DIRECT_DMA 63
VMSTAT_PGSCAN_DIRECT_NORMAL 64
VMSTAT_PGSCAN_DIRECT_MOVABLE 65
VMSTAT_PGSCAN_DIRECT_THROTTLE 66
VMSTAT_PGINODESTEAL 67
VMSTAT_SLABS_SCANNED 68
VMSTAT_KSWAPD_INODESTEAL 69
VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY 70
VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY 71
VMSTAT_PAGEOUTRUN 72
VMSTAT_ALLOCSTALL 73
VMSTAT_PGROTATED 74
VMSTAT_DROP_PAGECACHE 75
VMSTAT_DROP_SLAB 76
VMSTAT_PGMIGRATE_SUCCESS 77
VMSTAT_PGMIGRATE_FAIL 78
VMSTAT_COMPACT_MIGRATE_SCANNED 79
VMSTAT_COMPACT_FREE_SCANNED 80
VMSTAT_COMPACT_ISOLATED 81
VMSTAT_COMPACT_STALL 82
VMSTAT_COMPACT_FAIL 83
VMSTAT_COMPACT_SUCCESS 84
VMSTAT_COMPACT_DAEMON_WAKE 85
VMSTAT_UNEVICTABLE_PGS_CULLED 86
VMSTAT_UNEVICTABLE_PGS_SCANNED 87
VMSTAT_UNEVICTABLE_PGS_RESCUED 88
VMSTAT_UNEVICTABLE_PGS_MLOCKED 89
VMSTAT_UNEVICTABLE_PGS_MUNLOCKED 90
VMSTAT_UNEVICTABLE_PGS_CLEARED 91
VMSTAT_UNEVICTABLE_PGS_STRANDED 92
VMSTAT_NR_ZSPAGES 93
VMSTAT_NR_ION_HEAP 94
VMSTAT_NR_GPU_HEAP 95
VMSTAT_ALLOCSTALL_DMA 96
VMSTAT_ALLOCSTALL_MOVABLE 97
VMSTAT_ALLOCSTALL_NORMAL 98
VMSTAT_COMPACT_DAEMON_FREE_SCANNED 99
VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED 100
VMSTAT_NR_FASTRPC 101
VMSTAT_NR_INDIRECTLY_RECLAIMABLE 102
VMSTAT_NR_ION_HEAP_POOL 103
VMSTAT_NR_KERNEL_MISC_RECLAIMABLE 104
VMSTAT_NR_SHADOW_CALL_STACK_BYTES 105
VMSTAT_NR_SHMEM_HUGEPAGES 106
VMSTAT_NR_SHMEM_PMDMAPPED 107
VMSTAT_NR_UNRECLAIMABLE_PAGES 108
VMSTAT_NR_ZONE_ACTIVE_ANON 109
VMSTAT_NR_ZONE_ACTIVE_FILE 110
VMSTAT_NR_ZONE_INACTIVE_ANON 111
VMSTAT_NR_ZONE_INACTIVE_FILE 112
VMSTAT_NR_ZONE_UNEVICTABLE 113
VMSTAT_NR_ZONE_WRITE_PENDING 114
VMSTAT_OOM_KILL 115
VMSTAT_PGLAZYFREE 116
VMSTAT_PGLAZYFREED 117
VMSTAT_PGREFILL 118
VMSTAT_PGSCAN_DIRECT 119
VMSTAT_PGSCAN_KSWAPD 120
VMSTAT_PGSKIP_DMA 121
VMSTAT_PGSKIP_MOVABLE 122
VMSTAT_PGSKIP_NORMAL 123
VMSTAT_PGSTEAL_DIRECT 124
VMSTAT_PGSTEAL_KSWAPD 125
VMSTAT_SWAP_RA 126
VMSTAT_SWAP_RA_HIT 127
VMSTAT_WORKINGSET_RESTORE 128
VMSTAT_ALLOCSTALL_DEVICE 129
VMSTAT_ALLOCSTALL_DMA32 130
VMSTAT_BALLOON_DEFLATE 131
VMSTAT_BALLOON_INFLATE 132
VMSTAT_BALLOON_MIGRATE 133
VMSTAT_CMA_ALLOC_FAIL 134
VMSTAT_CMA_ALLOC_SUCCESS 135
VMSTAT_NR_FILE_HUGEPAGES 136
VMSTAT_NR_FILE_PMDMAPPED 137
VMSTAT_NR_FOLL_PIN_ACQUIRED 138
VMSTAT_NR_FOLL_PIN_RELEASED 139
VMSTAT_NR_SEC_PAGE_TABLE_PAGES 140
VMSTAT_NR_SHADOW_CALL_STACK 141
VMSTAT_NR_SWAPCACHED 142
VMSTAT_NR_THROTTLED_WRITTEN 143
VMSTAT_PGALLOC_DEVICE 144
VMSTAT_PGALLOC_DMA32 145
VMSTAT_PGDEMOTE_DIRECT 146
VMSTAT_PGDEMOTE_KSWAPD 147
VMSTAT_PGREUSE 148
VMSTAT_PGSCAN_ANON 149
VMSTAT_PGSCAN_FILE 150
VMSTAT_PGSKIP_DEVICE 151
VMSTAT_PGSKIP_DMA32 152
VMSTAT_PGSTEAL_ANON 153
VMSTAT_PGSTEAL_FILE 154
VMSTAT_THP_COLLAPSE_ALLOC 155
VMSTAT_THP_COLLAPSE_ALLOC_FAILED 156
VMSTAT_THP_DEFERRED_SPLIT_PAGE 157
VMSTAT_THP_FAULT_ALLOC 158
VMSTAT_THP_FAULT_FALLBACK 159
VMSTAT_THP_FAULT_FALLBACK_CHARGE 160
VMSTAT_THP_FILE_ALLOC 161
VMSTAT_THP_FILE_FALLBACK 162
VMSTAT_THP_FILE_FALLBACK_CHARGE 163
VMSTAT_THP_FILE_MAPPED 164
VMSTAT_THP_MIGRATION_FAIL 165
VMSTAT_THP_MIGRATION_SPLIT 166
VMSTAT_THP_MIGRATION_SUCCESS 167
VMSTAT_THP_SCAN_EXCEED_NONE_PTE 168
VMSTAT_THP_SCAN_EXCEED_SHARE_PTE 169
VMSTAT_THP_SCAN_EXCEED_SWAP_PTE 170
VMSTAT_THP_SPLIT_PAGE 171
VMSTAT_THP_SPLIT_PAGE_FAILED 172
VMSTAT_THP_SPLIT_PMD 173
VMSTAT_THP_SWPOUT 174
VMSTAT_THP_SWPOUT_FALLBACK 175
VMSTAT_THP_ZERO_PAGE_ALLOC 176
VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED 177
VMSTAT_VMA_LOCK_ABORT 178
VMSTAT_VMA_LOCK_MISS 179
VMSTAT_VMA_LOCK_RETRY 180
VMSTAT_VMA_LOCK_SUCCESS 181
VMSTAT_WORKINGSET_ACTIVATE_ANON 182
VMSTAT_WORKINGSET_ACTIVATE_FILE 183
VMSTAT_WORKINGSET_NODES 184
VMSTAT_WORKINGSET_REFAULT_ANON 185
VMSTAT_WORKINGSET_REFAULT_FILE 186
VMSTAT_WORKINGSET_RESTORE_ANON 187
VMSTAT_WORKINGSET_RESTORE_FILE 188

SysStats.CpuTimes

Times in each mode, since boot. Unit: nanoseconds.

Defined in sys_stats.proto

Fields:

Field Type Description
cpu_id uint32
user_ns uint64 Time spent in user mode.
user_nice_ns uint64 Time spent in user mode (low prio).
system_mode_ns uint64 Time spent in system mode.
idle_ns uint64 Time spent in the idle task.
io_wait_ns uint64 Time spent waiting for I/O.
irq_ns uint64 Time spent servicing interrupts.
softirq_ns uint64 Time spent servicing softirqs.

SysStats.InterruptCount

Defined in sys_stats.proto

Fields:

Field Type Description
irq int32
count uint64

SysStats.DevfreqValue

Frequencies for /sys/class/devfreq/ entries in kHz.

Defined in sys_stats.proto

Fields:

Field Type Description
key string
value uint64

SysStats.BuddyInfo

Defined in sys_stats.proto

Fields:

Field Type Description
node string
zone string
order_pages uint32[]

SysStats.DiskStat

Counters from /proc/diskstats.

Defined in sys_stats.proto

Fields:

Field Type Description
device_name string
read_sectors uint64
read_time_ms uint64
write_sectors uint64
write_time_ms uint64
discard_sectors uint64
discard_time_ms uint64
flush_count uint64
flush_time_ms uint64

SysStats.PsiSample

Reading from /proc/pressure/*.

Defined in sys_stats.proto

Fields:

Field Type Description
resource PsiResource
total_ns uint64 Total absolute stall time (in nanos) for a given resource.
While PSI readings are in micros, we store in nanos for consistency with most other time-based counters.

SysStats.PsiSample.PsiResource

Type of resource that may have exhibited pressure stalls.

Defined in sys_stats.proto

Enum values:

Name Value Description
PSI_RESOURCE_UNSPECIFIED 0
PSI_RESOURCE_CPU_SOME 1
PSI_RESOURCE_CPU_FULL 2
PSI_RESOURCE_IO_SOME 3
PSI_RESOURCE_IO_FULL 4
PSI_RESOURCE_MEMORY_SOME 5
PSI_RESOURCE_MEMORY_FULL 6

TrackEvent

Trace events emitted by client instrumentation library (TRACE_EVENT macros), which describe activity on a track, such as a thread or asynchronous event track. The track is specified using separate TrackDescriptor messages and referred to via the track's UUID.

A simple TrackEvent packet specifies a timestamp, category, name and type:

trace_packet { timestamp: 1000 track_event { categories: ["my_cat"] name: "my_event" type: TYPE_INSTANT } }

To associate an event with a custom track (e.g. a thread), the track is defined in a separate packet and referred to from the TrackEvent by its UUID:

trace_packet { track_descriptor { track_uuid: 1234 name: "my_track" // Optionally, associate the track with a thread. thread_descriptor { pid: 10 tid: 10 .. } } }

A pair of TYPE_SLICE_BEGIN and _END events form a slice on the track:

trace_packet { timestamp: 1200 track_event { track_uuid: 1234 categories: ["my_cat"] name: "my_slice" type: TYPE_SLICE_BEGIN } } trace_packet { timestamp: 1400 track_event { track_uuid: 1234 type: TYPE_SLICE_END } }

TrackEvents also support optimizations to reduce data repetition and encoded data size, e.g. through data interning (names, categories, ...) and delta encoding of timestamps/counters. For details, see the InternedData message. Further, default values for attributes of events on the same sequence (e.g. their default track association) can be emitted as part of a TrackEventDefaults message.

Defined in track_event.proto

Fields:

Field Type Description
category_iids uint64[] Names of categories of the event. In the client library, categories are a way to turn groups of individual events on or off.
interned EventCategoryName.
categories string[] non-interned variant.
name_iid uint64 interned EventName.
name string non-interned variant.
type Type
track_uuid uint64 Identifies the track of the event. The default value may be overridden using TrackEventDefaults, e.g., to specify the track of the TraceWriter's sequence (in most cases sequence = one thread). If no value is specified here or in TrackEventDefaults, the TrackEvent will be associated with an implicit trace-global track (uuid 0). See TrackDescriptor::uuid.
counter_value int64
double_counter_value double
extra_counter_track_uuids uint64[] To encode counter values more efficiently, we support attaching additional counter values to a TrackEvent of any type. All values will share the same timestamp specified in the TracePacket. The value at extra_counter_values[N] is for the counter track referenced by extra_counter_track_uuids[N].
extra_counter_track_uuids may also be set via TrackEventDefaults. There should always be equal or more uuids than values. It is valid to set more uuids (e.g. via defaults) than values. If uuids are specified in TrackEventDefaults and a TrackEvent, the TrackEvent uuids override the default uuid list.
For example, this allows snapshotting the thread time clock at each thread-track BEGIN and END event to capture the cpu time delta of a slice.
extra_counter_values int64[]
extra_double_counter_track_uuids uint64[] Counter snapshots using floating point instead of integer values.
extra_double_counter_values double[]
flow_ids_old uint64[] IDs of flows originating, passing through, or ending at this event.
Flow IDs are global within a trace.
A flow connects a sequence of TrackEvents within or across tracks, e.g.
an input event may be handled on one thread but cause another event on a different thread - a flow between the two events can associate them.
The direction of the flows between events is inferred from the events' timestamps. The earliest event with the same flow ID becomes the source of the flow. Any events thereafter are intermediate steps of the flow, until the flow terminates at the last event with the flow ID.
Flows can also be explicitly terminated (see terminating_flow_ids), so that the same ID can later be reused for another flow.
DEPRECATED. Only kept for backwards compatibility. Use flow_ids.
flow_ids fixed64[] TODO(b/204341740): replace "flow_ids_old" with "flow_ids" to reduce memory consumption.
terminating_flow_ids_old uint64[] List of flow ids which should terminate on this event, otherwise same as flow_ids.
Any one flow ID should be either listed as part of flow_ids OR terminating_flow_ids, not both.
DEPRECATED. Only kept for backwards compatibility. Use terminating_flow_ids.
terminating_flow_ids fixed64[] TODO(b/204341740): replace "terminating_flow_ids_old" with "terminating_flow_ids" to reduce memory consumption.
debug_annotations DebugAnnotation[] Unstable key/value annotations shown in the trace viewer but not intended for metrics use.
task_execution TaskExecution Typed event arguments:
log_message LogMessage
cc_scheduler_state ChromeCompositorSchedulerState
chrome_user_event ChromeUserEvent
chrome_keyed_service ChromeKeyedService
chrome_legacy_ipc ChromeLegacyIpc
chrome_histogram_sample ChromeHistogramSample
chrome_latency_info ChromeLatencyInfo
chrome_frame_reporter ChromeFrameReporter
chrome_application_state_info ChromeApplicationStateInfo
chrome_renderer_scheduler_state ChromeRendererSchedulerState
chrome_window_handle_event_info ChromeWindowHandleEventInfo
chrome_content_settings_event_info ChromeContentSettingsEventInfo
chrome_active_processes ChromeActiveProcesses
screenshot Screenshot
source_location SourceLocation Non-interned field.
source_location_iid uint64 Interned field.
chrome_message_pump ChromeMessagePump
chrome_mojo_event_info ChromeMojoEventInfo
timestamp_delta_us int64 Delta timestamp value since the last TrackEvent or ThreadDescriptor. To calculate the absolute timestamp value, sum up all delta values of the preceding TrackEvents since the last ThreadDescriptor and add the sum to the reference_timestamp in ThreadDescriptor. This value should always be positive.
timestamp_absolute_us int64 Absolute value (e.g. a manually specified timestamp in the macro).
This is a one-off value that does not affect delta timestamp computation in subsequent TrackEvents.
thread_time_delta_us int64 Delta timestamp value since the last TrackEvent or ThreadDescriptor. To calculate the absolute timestamp value, sum up all delta values of the preceding TrackEvents since the last ThreadDescriptor and add the sum to the reference_timestamp in ThreadDescriptor. This value should always be positive.
thread_time_absolute_us int64 This is a one-off absolute value that does not affect delta timestamp computation in subsequent TrackEvents.
thread_instruction_count_delta int64 Same encoding as thread_time field above.
thread_instruction_count_absolute int64
legacy_event LegacyEvent

TrackEvent.Type

Type of the TrackEvent (required if phase in LegacyEvent is not set).

Defined in track_event.proto

Enum values:

Name Value Description
TYPE_UNSPECIFIED 0
TYPE_SLICE_BEGIN 1 Slice events are events that have a begin and end timestamp, i.e. a duration. They can be nested similar to a callstack: If, on the same track, event B begins after event A, but before A ends, B is a child event of A and will be drawn as a nested event underneath A in the UI.
Note that child events should always end before their parents (e.g. B before A).
Each slice event is formed by a pair of BEGIN + END events. The END event does not need to repeat any TrackEvent fields it has in common with its corresponding BEGIN event. Arguments and debug annotations of the BEGIN + END pair will be merged during trace import.
Note that we deliberately chose not to support COMPLETE events (which would specify a duration directly) since clients would need to delay writing them until the slice is completed, which can result in reordered events in the trace and loss of unfinished events at the end of a trace.
TYPE_SLICE_END 2
TYPE_INSTANT 3 Instant events are nestable events without duration. They can be children of slice events on the same track.
TYPE_COUNTER 4 Event that provides a value for a counter track. track_uuid should refer to a counter track and counter_value set to the new value. Note that most other TrackEvent fields (e.g. categories, name, ..) are not supported for TYPE_COUNTER events. See also CounterDescriptor.

DebugAnnotation

Proto representation of untyped key/value annotations provided in TRACE_EVENT macros. Users of the Perfetto SDK should prefer to use the perfetto::TracedValue API to fill these protos, rather than filling them manually.

Debug annotations are intended for debug use and are not considered a stable API of the trace contents. Trace-based metrics that use debug annotation values are prone to breakage, so please rely on typed TrackEvent fields for these instead.

DebugAnnotations support nested arrays and dictionaries. Each entry is encoded as a single DebugAnnotation message. Only dictionary entries set the "name" field. The TrackEvent message forms an implicit root dictionary.

Example TrackEvent with nested annotations: track_event { debug_annotations { name: "foo" dict_entries { name: "a" bool_value: true } dict_entries { name: "b" int_value: 123 } } debug_annotations { name: "bar" array_values { string_value: "hello" } array_values { string_value: "world" } } } Reserved ID: 15

Defined in debug_annotation.proto

Fields:

Field Type Description
name_iid uint64 interned DebugAnnotationName.
name string non-interned variant.
bool_value bool
uint_value uint64
int_value int64
double_value double
pointer_value uint64 Pointers are stored in a separate type as the JSON output treats them differently from other uint64 values.
nested_value NestedValue Deprecated. Use dict_entries / array_values instead.
legacy_json_value string Legacy instrumentation may not support conversion of nested data to NestedValue yet.
string_value string interned and non-interned variants of strings.
string_value_iid uint64 Corresponds to debug_annotation_string_values field in InternedData.
proto_type_name string
proto_type_name_iid uint64 interned DebugAnnotationValueTypeName.
proto_value bytes
dict_entries DebugAnnotation[]
array_values DebugAnnotation[]

DebugAnnotation.NestedValue

Deprecated legacy way to use nested values. Only kept for backwards-compatibility in TraceProcessor. May be removed in the future - code filling protos should use dict_entries and array_values instead.

Defined in debug_annotation.proto

Fields:

Field Type Description
nested_type NestedType
dict_keys string[]
dict_values NestedValue[]
array_values NestedValue[]
int_value int64
double_value double
bool_value bool
string_value string

DebugAnnotation.NestedValue.NestedType

Defined in debug_annotation.proto

Enum values:

Name Value Description
UNSPECIFIED 0 leaf value.
DICT 1
ARRAY 2

TaskExecution

TrackEvent arguments describing the execution of a task.

Defined in task_execution.proto

Fields:

Field Type Description
posted_from_iid uint64 Source location that the task was posted from.
interned SourceLocation.

LogMessage

Defined in log_message.proto

Fields:

Field Type Description
source_location_iid uint64 interned SourceLocation.
body_iid uint64 interned LogMessageBody.
prio Priority

LogMessage.Priority

Defined in log_message.proto

Enum values:

Name Value Description
PRIO_UNSPECIFIED 0
PRIO_UNUSED 1
PRIO_VERBOSE 2
PRIO_DEBUG 3
PRIO_INFO 4
PRIO_WARN 5
PRIO_ERROR 6
PRIO_FATAL 7

ChromeCompositorSchedulerState

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
state_machine ChromeCompositorStateMachine
observing_begin_frame_source bool
begin_impl_frame_deadline_task bool
pending_begin_frame_task bool
skipped_last_frame_missed_exceeded_deadline bool
inside_action ChromeCompositorSchedulerAction
deadline_mode BeginImplFrameDeadlineMode
deadline_us int64
deadline_scheduled_at_us int64
now_us int64
now_to_deadline_delta_us int64
now_to_deadline_scheduled_at_delta_us int64
begin_impl_frame_args BeginImplFrameArgs
begin_frame_observer_state BeginFrameObserverState
begin_frame_source_state BeginFrameSourceState
compositor_timing_history CompositorTimingHistory

ChromeCompositorStateMachine

Describes the current values stored in the Chrome Compositor state machine.

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
major_state MajorState
minor_state MinorState

ChromeCompositorStateMachine.MajorState

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
next_action ChromeCompositorSchedulerAction
begin_impl_frame_state BeginImplFrameState
begin_main_frame_state BeginMainFrameState
layer_tree_frame_sink_state LayerTreeFrameSinkState
forced_redraw_state ForcedRedrawOnTimeoutState

ChromeCompositorSchedulerAction

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
CC_SCHEDULER_ACTION_UNSPECIFIED 0
CC_SCHEDULER_ACTION_NONE 1
CC_SCHEDULER_ACTION_SEND_BEGIN_MAIN_FRAME 2
CC_SCHEDULER_ACTION_COMMIT 3
CC_SCHEDULER_ACTION_ACTIVATE_SYNC_TREE 4
CC_SCHEDULER_ACTION_DRAW_IF_POSSIBLE 5
CC_SCHEDULER_ACTION_DRAW_FORCED 6
CC_SCHEDULER_ACTION_DRAW_ABORT 7
CC_SCHEDULER_ACTION_BEGIN_LAYER_TREE_FRAME_SINK_CREATION 8
CC_SCHEDULER_ACTION_PREPARE_TILES 9
CC_SCHEDULER_ACTION_INVALIDATE_LAYER_TREE_FRAME_SINK 10
CC_SCHEDULER_ACTION_PERFORM_IMPL_SIDE_INVALIDATION 11
CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_UNTIL 12
CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_SOON 13

ChromeCompositorStateMachine.MajorState.BeginImplFrameState

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
BEGIN_IMPL_FRAME_UNSPECIFIED 0
BEGIN_IMPL_FRAME_IDLE 1
BEGIN_IMPL_FRAME_INSIDE_BEGIN_FRAME 2
BEGIN_IMPL_FRAME_INSIDE_DEADLINE 3

ChromeCompositorStateMachine.MajorState.BeginMainFrameState

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
BEGIN_MAIN_FRAME_UNSPECIFIED 0
BEGIN_MAIN_FRAME_IDLE 1
BEGIN_MAIN_FRAME_SENT 2
BEGIN_MAIN_FRAME_READY_TO_COMMIT 3

ChromeCompositorStateMachine.MajorState.LayerTreeFrameSinkState

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
LAYER_TREE_FRAME_UNSPECIFIED 0
LAYER_TREE_FRAME_NONE 1
LAYER_TREE_FRAME_ACTIVE 2
LAYER_TREE_FRAME_CREATING 3
LAYER_TREE_FRAME_WAITING_FOR_FIRST_COMMIT 4
LAYER_TREE_FRAME_WAITING_FOR_FIRST_ACTIVATION 5

ChromeCompositorStateMachine.MajorState.ForcedRedrawOnTimeoutState

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
FORCED_REDRAW_UNSPECIFIED 0
FORCED_REDRAW_IDLE 1
FORCED_REDRAW_WAITING_FOR_COMMIT 2
FORCED_REDRAW_WAITING_FOR_ACTIVATION 3
FORCED_REDRAW_WAITING_FOR_DRAW 4

ChromeCompositorStateMachine.MinorState

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
commit_count int32
current_frame_number int32
last_frame_number_submit_performed int32
last_frame_number_draw_performed int32
last_frame_number_begin_main_frame_sent int32
did_draw bool
did_send_begin_main_frame_for_current_frame bool
did_notify_begin_main_frame_not_expected_until bool
did_notify_begin_main_frame_not_expected_soon bool
wants_begin_main_frame_not_expected bool
did_commit_during_frame bool
did_invalidate_layer_tree_frame_sink bool
did_perform_impl_side_invalidaion bool
did_prepare_tiles bool
consecutive_checkerboard_animations int32
pending_submit_frames int32
submit_frames_with_current_layer_tree_frame_sink int32
needs_redraw bool
needs_prepare_tiles bool
needs_begin_main_frame bool
needs_one_begin_impl_frame bool
visible bool
begin_frame_source_paused bool
can_draw bool
resourceless_draw bool
has_pending_tree bool
pending_tree_is_ready_for_activation bool
active_tree_needs_first_draw bool
active_tree_is_ready_to_draw bool
did_create_and_initialize_first_layer_tree_frame_sink bool
tree_priority TreePriority
scroll_handler_state ScrollHandlerState
critical_begin_main_frame_to_activate_is_fast bool
main_thread_missed_last_deadline bool
video_needs_begin_frames bool
defer_begin_main_frame bool
last_commit_had_no_updates bool
did_draw_in_last_frame bool
did_submit_in_last_frame bool
needs_impl_side_invalidation bool
current_pending_tree_is_impl_side bool
previous_pending_tree_was_impl_side bool
processing_animation_worklets_for_active_tree bool
processing_animation_worklets_for_pending_tree bool
processing_paint_worklets_for_pending_tree bool

ChromeCompositorStateMachine.MinorState.TreePriority

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
TREE_PRIORITY_UNSPECIFIED 0
TREE_PRIORITY_SAME_PRIORITY_FOR_BOTH_TREES 1
TREE_PRIORITY_SMOOTHNESS_TAKES_PRIORITY 2
TREE_PRIORITY_NEW_CONTENT_TAKES_PRIORITY 3

ChromeCompositorStateMachine.MinorState.ScrollHandlerState

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
SCROLL_HANDLER_UNSPECIFIED 0
SCROLL_AFFECTS_SCROLL_HANDLER 1
SCROLL_DOES_NOT_AFFECT_SCROLL_HANDLER 2

ChromeCompositorSchedulerState.BeginImplFrameDeadlineMode

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
DEADLINE_MODE_UNSPECIFIED 0
DEADLINE_MODE_NONE 1
DEADLINE_MODE_IMMEDIATE 2
DEADLINE_MODE_REGULAR 3
DEADLINE_MODE_LATE 4
DEADLINE_MODE_BLOCKED 5

BeginImplFrameArgs

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
updated_at_us int64
finished_at_us int64
state State
current_args BeginFrameArgs Only set if state is BEGIN_FRAME_FINISHED.
last_args BeginFrameArgs Only set if state is BEGIN_FRAME_USING.
timestamps_in_us TimestampsInUs

BeginImplFrameArgs.State

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
BEGIN_FRAME_FINISHED 0
BEGIN_FRAME_USING 1

BeginFrameArgs

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
type BeginFrameArgsType
source_id uint64
sequence_number uint64
frame_time_us int64
deadline_us int64
interval_delta_us int64
on_critical_path bool
animate_only bool
source_location_iid uint64 The interned SourceLocation.
source_location SourceLocation The SourceLocation that this args was created from.
TypedArgument TraceEvents and then we shouldn't need this SourceLocation since we can emit it as part of the InternedData message. When we can remove this source_location.
frames_throttled_since_last int64

BeginFrameArgs.BeginFrameArgsType

JSON format has a "type" field that was always just "BeginFrameArgs" we drop this in the proto representation, and instead make the JSON format "subtype" field become the type field.

Defined in chrome_compositor_scheduler_state.proto

Enum values:

Name Value Description
BEGIN_FRAME_ARGS_TYPE_UNSPECIFIED 0
BEGIN_FRAME_ARGS_TYPE_INVALID 1
BEGIN_FRAME_ARGS_TYPE_NORMAL 2
BEGIN_FRAME_ARGS_TYPE_MISSED 3

SourceLocation

Defined in source_location.proto

Fields:

Field Type Description
iid uint64
file_name string
function_name string
line_number uint32

BeginImplFrameArgs.TimestampsInUs

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
interval_delta int64
now_to_deadline_delta int64
frame_time_to_now_delta int64
frame_time_to_deadline_delta int64
now int64
frame_time int64
deadline int64

BeginFrameObserverState

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
dropped_begin_frame_args int64
last_begin_frame_args BeginFrameArgs

BeginFrameSourceState

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
source_id uint32
paused bool
num_observers uint32
last_begin_frame_args BeginFrameArgs

CompositorTimingHistory

Defined in chrome_compositor_scheduler_state.proto

Fields:

Field Type Description
begin_main_frame_queue_critical_estimate_delta_us int64
begin_main_frame_queue_not_critical_estimate_delta_us int64
begin_main_frame_start_to_ready_to_commit_estimate_delta_us int64
commit_to_ready_to_activate_estimate_delta_us int64
prepare_tiles_estimate_delta_us int64
activate_estimate_delta_us int64
draw_estimate_delta_us int64

ChromeUserEvent

Details about a UI interaction initiated by the user, such as opening or closing a tab or a context menu.

Defined in chrome_user_event.proto

Fields:

Field Type Description
action string Name of the action, e.g. "NewTab", "ShowBookmarkManager", etc. (in Chrome, these are usually static strings known at compile time, or concatenations of multiple such static strings).
action_hash uint64 MD5 hash of the action string.

ChromeKeyedService

Details about one of Chrome's keyed services associated with the event.

Defined in chrome_keyed_service.proto

Fields:

Field Type Description
name string Name of the service, e.g. "MediaRouter", "PreviewsService", etc. (in Chrome, these are static strings known at compile time).

ChromeLegacyIpc

Details about a legacy Chrome IPC message that is either sent by the event.

Defined in chrome_legacy_ipc.proto

Fields:

Field Type Description
message_class MessageClass Corresponds to the message class type defined in Chrome's IPCMessageStart enum, e.g. FrameMsgStart,
message_line uint32 Line number of the message definition. See Chrome's IPC_MESSAGE_ID and IPC_MESSAGE_START macros.

ChromeLegacyIpc.MessageClass

Defined in chrome_legacy_ipc.proto

Enum values:

Name Value Description
CLASS_UNSPECIFIED 0
CLASS_AUTOMATION 1
CLASS_FRAME 2
CLASS_PAGE 3
CLASS_VIEW 4
CLASS_WIDGET 5
CLASS_INPUT 6
CLASS_TEST 7
CLASS_WORKER 8
CLASS_NACL 9
CLASS_GPU_CHANNEL 10
CLASS_MEDIA 11
CLASS_PPAPI 12
CLASS_CHROME 13
CLASS_DRAG 14
CLASS_PRINT 15
CLASS_EXTENSION 16
CLASS_TEXT_INPUT_CLIENT 17
CLASS_BLINK_TEST 18
CLASS_ACCESSIBILITY 19
CLASS_PRERENDER 20
CLASS_CHROMOTING 21
CLASS_BROWSER_PLUGIN 22
CLASS_ANDROID_WEB_VIEW 23
CLASS_NACL_HOST 24
CLASS_ENCRYPTED_MEDIA 25
CLASS_CAST 26
CLASS_GIN_JAVA_BRIDGE 27
CLASS_CHROME_UTILITY_PRINTING 28
CLASS_OZONE_GPU 29
CLASS_WEB_TEST 30
CLASS_NETWORK_HINTS 31
CLASS_EXTENSIONS_GUEST_VIEW 32
CLASS_GUEST_VIEW 33
CLASS_MEDIA_PLAYER_DELEGATE 34
CLASS_EXTENSION_WORKER 35
CLASS_SUBRESOURCE_FILTER 36
CLASS_UNFREEZABLE_FRAME 37

ChromeHistogramSample

An individual histogram sample logged via Chrome's UMA metrics system.

Defined in chrome_histogram_sample.proto

Fields:

Field Type Description
name_hash uint64 MD5 hash of the metric name. Either name_hash or name/name_iid or both must be present.
name string
sample int64
name_iid uint64 Interned HistogramName. Only one of name, name_iid can be set.

ChromeLatencyInfo

Defined in chrome_latency_info.proto

Fields:

Field Type Description
trace_id int64
step Step
frame_tree_node_id int32
component_info ComponentInfo[]
is_coalesced bool
gesture_scroll_id int64
touch_id int64

ChromeLatencyInfo.Step

All step are optional but the enum is ordered (not by number) below in the order we expect them to appear if they are emitted in trace in a blocking fashion.

Defined in chrome_latency_info.proto

Enum values:

Name Value Description
STEP_UNSPECIFIED 0
STEP_SEND_INPUT_EVENT_UI 3 Emitted on the browser main thread.
STEP_HANDLE_INPUT_EVENT_IMPL 5 Happens on the renderer's compositor.
STEP_DID_HANDLE_INPUT_AND_OVERSCROLL 8
STEP_HANDLE_INPUT_EVENT_MAIN 4 Occurs on the Renderer's main thread.
STEP_MAIN_THREAD_SCROLL_UPDATE 2
STEP_HANDLE_INPUT_EVENT_MAIN_COMMIT 1
STEP_HANDLED_INPUT_EVENT_MAIN_OR_IMPL 9 Could be emitted on both the renderer's main OR compositor.
STEP_HANDLED_INPUT_EVENT_IMPL 10 Optionally sometimes HANDLED_INPUT_EVENT_MAIN_OR_IMPL will proxy to the renderer's compositor and this will be emitted.
STEP_SWAP_BUFFERS 6 Renderer's compositor.
STEP_DRAW_AND_SWAP 7 Happens on the VizCompositor in the GPU process.
STEP_FINISHED_SWAP_BUFFERS 11 Happens on the GPU main thread after the swap has completed.

ChromeLatencyInfo.ComponentInfo

Defined in chrome_latency_info.proto

Fields:

Field Type Description
component_type LatencyComponentType
time_us uint64 Microsecond timestamp in CLOCK_MONOTONIC domain

ChromeLatencyInfo.LatencyComponentType

This enum is a copy of LatencyComponentType enum in Chrome, located in ui/latency/latency_info.h, modulo added UNKNOWN value per protobuf practices.

Defined in chrome_latency_info.proto

Enum values:

Name Value Description
COMPONENT_UNSPECIFIED 0
COMPONENT_INPUT_EVENT_LATENCY_BEGIN_RWH 1
COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL 2
COMPONENT_INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL 3
COMPONENT_INPUT_EVENT_LATENCY_ORIGINAL 4
COMPONENT_INPUT_EVENT_LATENCY_UI 5
COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN 6
COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN 7
COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL 8
COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT 9
COMPONENT_INPUT_EVENT_LATENCY_ACK_RWH 10
COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP 11
COMPONENT_DISPLAY_COMPOSITOR_RECEIVED_FRAME 12
COMPONENT_INPUT_EVENT_GPU_SWAP_BUFFER 13
COMPONENT_INPUT_EVENT_LATENCY_FRAME_SWAP 14

ChromeFrameReporter

Defined in chrome_frame_reporter.proto

Fields:

Field Type Description
state State
reason FrameDropReason The reason is set only if state is not STATE_UPDATED_ALL.
frame_source uint64
frame_sequence uint64
affects_smoothness bool If this is a droped frame (i.e. if state is set to STATE_DROPPED or STATE_PRESENTED_PARTIAL), then indicates whether this frame impacts smoothness.
scroll_state ScrollState The type of active scroll.
has_main_animation bool If any main thread animation is active during this frame.
has_compositor_animation bool If any compositor thread animation is active during this frame.
has_smooth_input_main bool If any touch-driven UX (not scroll) is active during this frame.
has_missing_content bool Whether the frame contained any missing content (i.e. whether there was checkerboarding in the frame).
layer_tree_host_id uint64 The id of layer_tree_host that the frame has been produced for.
has_high_latency bool If total latency of PipelineReporter exceeds a certain limit.
frame_type FrameType Indicate if the frame is "FORKED" (i.e. a PipelineReporter event starts at the same frame sequence as another PipelineReporter) or "BACKFILL" (i.e. dropped frames when there are no partial compositor updates).
high_latency_contribution_stage string[] The breakdown stage of PipelineReporter that is most likely accountable for high latency.

ChromeFrameReporter.State

Defined in chrome_frame_reporter.proto

Enum values:

Name Value Description
STATE_NO_UPDATE_DESIRED 0 The frame did not have any updates to present.
STATE_PRESENTED_ALL 1 The frame presented all the desired updates (i.e. any updates requested from both the compositor thread and main-threads were handled).
STATE_PRESENTED_PARTIAL 2 The frame was presented with some updates, but also missed some updates (e.g. missed updates from the main-thread, but included updates from the compositor thread).
STATE_DROPPED 3 The frame was dropped, i.e. some updates were desired for the frame, but was not presented.

ChromeFrameReporter.FrameDropReason

Defined in chrome_frame_reporter.proto

Enum values:

Name Value Description
REASON_UNSPECIFIED 0
REASON_DISPLAY_COMPOSITOR 1 Frame was dropped by the display-compositor.
The display-compositor may drop a frame some times (e.g. the frame missed the deadline, or was blocked on surface-sync, etc.)
REASON_MAIN_THREAD 2 Frame was dropped because of the main-thread.
The main-thread may cause a frame to be dropped, e.g. if the main-thread is running expensive javascript, or doing a lot of layout updates, etc.
REASON_CLIENT_COMPOSITOR 3 Frame was dropped by the client compositor.
The client compositor can drop some frames too (e.g. attempting to recover latency, missing the deadline, etc.).

ChromeFrameReporter.ScrollState

Defined in chrome_frame_reporter.proto

Enum values:

Name Value Description
SCROLL_NONE 0
SCROLL_MAIN_THREAD 1
SCROLL_COMPOSITOR_THREAD 2
SCROLL_UNKNOWN 3 Used when it can't be determined whether a scroll is in progress or not.

ChromeFrameReporter.FrameType

Defined in chrome_frame_reporter.proto

Enum values:

Name Value Description
FORKED 0
BACKFILL 1

ChromeApplicationStateInfo

Trace event arguments for application state changes.

Defined in chrome_application_state_info.proto

Fields:

Field Type Description
application_state ChromeApplicationState

ChromeApplicationStateInfo.ChromeApplicationState

Enum definition taken from: https://source.chromium.org/chromium/chromium/src/+/master:base/android/application_status_listener.h

Defined in chrome_application_state_info.proto

Enum values:

Name Value Description
APPLICATION_STATE_UNKNOWN 0
APPLICATION_STATE_HAS_RUNNING_ACTIVITIES 1
APPLICATION_STATE_HAS_PAUSED_ACTIVITIES 2
APPLICATION_STATE_HAS_STOPPED_ACTIVITIES 3
APPLICATION_STATE_HAS_DESTROYED_ACTIVITIES 4

ChromeRendererSchedulerState

Defined in chrome_renderer_scheduler_state.proto

Fields:

Field Type Description
rail_mode ChromeRAILMode
is_backgrounded bool
is_hidden bool

ChromeRAILMode

RAIL Mode is an indication of the kind of work that a Renderer is currently performing which is in turn used to prioritise work accordingly. A fuller description of these modes can be found https://web.dev/rail/

Defined in chrome_renderer_scheduler_state.proto

Enum values:

Name Value Description
RAIL_MODE_NONE 0
RAIL_MODE_RESPONSE 1
RAIL_MODE_ANIMATION 2
RAIL_MODE_IDLE 3
RAIL_MODE_LOAD 4

ChromeWindowHandleEventInfo

Details about HWNDMessageHandler trace events.

Defined in chrome_window_handle_event_info.proto

Fields:

Field Type Description
dpi uint32
message_id uint32
hwnd_ptr fixed64

ChromeContentSettingsEventInfo

Details about ContentSettings trace events.

Defined in chrome_content_settings_event_info.proto

Fields:

Field Type Description
number_of_exceptions uint32 The number of user defined hostname patterns for content settings at browser start. Similar to UMA histogram 'ContentSettings.NumberOfExceptions'.

ChromeActiveProcesses

A list of processes connected to the tracing service.

Defined in chrome_active_processes.proto

Fields:

Field Type Description
pid int32[]

Screenshot

Defined in screenshot.proto

Fields:

Field Type Description
jpg_image bytes

ChromeMessagePump

Details about Chrome message pump events

Defined in chrome_message_pump.proto

Fields:

Field Type Description
sent_messages_in_queue bool True if there are sent messages in the queue.
io_handler_location_iid uint64 Interned SourceLocation of IO handler that MessagePumpForIO is about to invoke.

ChromeMojoEventInfo

Contains information to identify mojo handling events. The trace events in mojo are common for all mojo interfaces and this information is used to identify who is the caller or callee.

Defined in chrome_mojo_event_info.proto

Fields:

Field Type Description
watcher_notify_interface_tag string Contains the interface name or the file name of the creator of a mojo handle watcher, recorded when an event if notified to the watcher. The code that runs within the track event belongs to the interface.
ipc_hash uint32 The hash of the IPC message that is being handled.
mojo_interface_tag string A static string representing the mojo interface name of the message that is being handled.
mojo_interface_method_iid uint64 Refers to an interned UnsymbolizedSourceLocation.
The UnsymbolizedSourceLocation contains the interface method that's being handled, represented as a native symbol.
The native symbol can be symbolized after the trace is recorded.
Not using a symbolized source location for official Chromium builds to reduce binary size - emitting file/function names as strings into the trace requires storing them in the binary, which causes a significant binary size bloat for Chromium.
is_reply bool Indicate whether this is a message or reply.
payload_size uint64 The payload size of the message being sent through mojo messages.
data_num_bytes uint64 Represents the size of the message. Includes all headers and user payload.

TrackEvent.LegacyEvent

Apart from {category, time, thread time, tid, pid}, other legacy trace event attributes are initially simply proxied for conversion to a JSON trace. We intend to gradually transition these attributes to similar native features in TrackEvent (e.g. async + flow events), or deprecate them without replacement where transition is unsuitable.

Defined in track_event.proto

Fields:

Field Type Description
name_iid uint64 Deprecated, use TrackEvent::name(_iid) instead.
interned EventName.
phase int32
duration_us int64
thread_duration_us int64
thread_instruction_delta int64 Elapsed retired instruction count during the event.
unscoped_id uint64
local_id uint64
global_id uint64
id_scope string Additional optional scope for id.
use_async_tts bool Consider the thread timestamps for async BEGIN/END event pairs as valid.
bind_id uint64 Idenfifies a flow. Flow events with the same bind_id are connected.
bind_to_enclosing bool Use the enclosing slice as binding point for a flow end event instead of the next slice. Flow start/step events always bind to the enclosing slice.
flow_direction FlowDirection
instant_event_scope InstantEventScope
pid_override int32 Override the pid/tid if the writer needs to emit events on behalf of another process/thread. This should be the exception. Normally, the pid+tid from ThreadDescriptor is used.
tid_override int32

TrackEvent.LegacyEvent.FlowDirection

Defined in track_event.proto

Enum values:

Name Value Description
FLOW_UNSPECIFIED 0
FLOW_IN 1
FLOW_OUT 2
FLOW_INOUT 3

TrackEvent.LegacyEvent.InstantEventScope

Defined in track_event.proto

Enum values:

Name Value Description
SCOPE_UNSPECIFIED 0
SCOPE_GLOBAL 1
SCOPE_PROCESS 2
SCOPE_THREAD 3

TraceUuid

A random unique ID that identifies the trace. This message has been introduced in v32. Prior to that, the UUID was only (optionally) present in the TraceConfig.trace_uuid_msb/lsb fields. This has been moved to a standalone packet to deal with new use-cases for go/gapless-aot, where the same tracing session can be serialized several times, in which case the UUID is changed on each snapshot and does not match the one in the TraceConfig.

Defined in trace_uuid.proto

Fields:

Field Type Description
msb int64
lsb int64

FtraceStats

Errors and kernel buffer stats for the ftrace data source.

Defined in ftrace_stats.proto

Fields:

Field Type Description
phase Phase A pair of FtraceStats is written on every trace flush:
* START_OF_TRACE - stats recorded at the beginning of the trace.
* END_OF_TRACE - stats recorded during the flush. In other words shortly before this packet was written. For simple traces this will be once at the end of the trace.
cpu_stats FtraceCpuStats[] Per-CPU stats (one entry for each CPU).
kernel_symbols_parsed uint32 When FtraceConfig.symbolize_ksyms = true, this records the number of symbols parsed from /proc/kallsyms, whether they have been seen in the trace or not. It can be used to debug kptr_restrict or security-related errors.
Note: this will be valid only when phase = END_OF_TRACE. The symbolizer is initialized. When START_OF_TRACE is emitted it is not ready yet.
kernel_symbols_mem_kb uint32 The memory used by the kernel symbolizer (KernelSymbolMap.size_bytes()).
atrace_errors string Atrace errors (even non-fatal ones) are reported here. A typical example is one or more atrace categories not available on the device.
unknown_ftrace_events string[] Ftrace events requested by the config but not present on device.
failed_ftrace_events string[] Ftrace events requested by the config and present on device, but which we failed to enable due to permissions, or due to a conflicting option (currently FtraceConfig.disable_generic_events).
preserve_ftrace_buffer bool The data source was configured to preserve existing events in the ftrace buffer before the start of the trace.
ftrace_parse_errors FtraceParseStatus[] Unique errors encountered during reading and parsing of the raw ftrace data. Ring buffer ABI related errors will also be recorded in the affected FtraceEventBundles with a timestamp.
Any traces with entries in this field should be investigated, as they indicate a bug in perfetto or the kernel.

FtraceStats.Phase

Defined in ftrace_stats.proto

Enum values:

Name Value Description
UNSPECIFIED 0
START_OF_TRACE 1
END_OF_TRACE 2

FtraceCpuStats

Per-CPU kernel buffer stats for the ftrace data source gathered from /sys/kernel/tracing/per_cpu/cpuX/stats.

Defined in ftrace_stats.proto

Fields:

Field Type Description
cpu uint64 CPU index.
entries uint64 Number of entries currently in the kernel buffer.
overrun uint64 Number of events lost in kernel buffers due to overwriting of old events before userspace had a chance to drain them. Valid if the buffer is in "overwrite" mode, otherwise see dropped_events.
commit_overrun uint64 This should always be zero. If not the buffer size is way too small or something went wrong with the tracer. Quoting the kernel: "number of commits failing due to the buffer wrapping around while there are uncommitted events, such as during an interrupt storm".
bytes_read uint64 Size of entries currently in the kernel buffer (see entries) in bytes.
The field should be named "bytes", but is misnamed for historical reasons.
This value has known inaccuracies before Linux v6.6:
https://github.com/torvalds/linux/commit/45d99ea
oldest_event_ts double The timestamp for the oldest event still in the ring buffer.
Unit: seconds for typical trace clocks (i.e. not tsc/counter).
now_ts double The current timestamp.
Unit: seconds for typical trace clocks (i.e. not tsc/counter).
dropped_events uint64 If the kernel buffer has overwrite mode disabled, this will show the number of new events that were lost because the buffer was full. This is similar to overrun but only for the overwrite=false case.
read_events uint64 The number of events read (consumed) from the buffer by userspace.

FtraceParseStatus

Defined in ftrace_stats.proto

Enum values:

Name Value Description
FTRACE_STATUS_UNSPECIFIED 0
FTRACE_STATUS_OK 1 Not written, used for convenience of implementation:
FTRACE_STATUS_UNEXPECTED_READ_ERROR 2 Issues with reading data out of the ftrace ring buffer:
FTRACE_STATUS_PARTIAL_PAGE_READ 3
FTRACE_STATUS_ABI_INVALID_PAGE_HEADER 4 Ring buffer binary data not matching our understanding of the layout:
FTRACE_STATUS_ABI_SHORT_EVENT_HEADER 5
FTRACE_STATUS_ABI_NULL_PADDING 6
FTRACE_STATUS_ABI_SHORT_PADDING_LENGTH 7
FTRACE_STATUS_ABI_INVALID_PADDING_LENGTH 8
FTRACE_STATUS_ABI_SHORT_TIME_EXTEND 9
FTRACE_STATUS_ABI_SHORT_TIME_STAMP 10
FTRACE_STATUS_ABI_SHORT_DATA_LENGTH 11
FTRACE_STATUS_ABI_ZERO_DATA_LENGTH 12
FTRACE_STATUS_ABI_INVALID_DATA_LENGTH 13
FTRACE_STATUS_ABI_SHORT_EVENT_ID 14
FTRACE_STATUS_ABI_END_OVERFLOW 15
FTRACE_STATUS_SHORT_COMPACT_EVENT 16 Issues with parsing the event payload:
FTRACE_STATUS_INVALID_EVENT 17

TraceStats

Statistics for the internals of the tracing service.

Defined in trace_stats.proto

Fields:

Field Type Description
buffer_stats BufferStats[] Stats for the TraceBuffer(s) of the current trace session.
chunk_payload_histogram_def int64[] The thresholds of each the writer_stats histogram buckets. This is emitted only once as all WriterStats share the same bucket layout.
This field has the same cardinality of the writer_stats.chunk_payload_histogram_{counts,sum} - 1.
(The -1 is because the last overflow bucket is not reported in the _def).
An array of values [10, 100, 1000] in the _def array means that there are four buckets (3 + the implicit overflow bucket):
[0]: x <= 10; [1]: 100 < x <= 1000; [2]: 1000 < x <= 1000; [3]: x > 1000.
writer_stats WriterStats[]
producers_connected uint32 Num. producers connected (whether they are involved in the current tracing session or not).
producers_seen uint64 Num. producers ever seen for all trace sessions since startup (it's a good proxy for inferring num. producers crashed / killed).
data_sources_registered uint32 Num. data sources registered for all trace sessions.
data_sources_seen uint64 Num. data sources ever seen for all trace sessions since startup.
tracing_sessions uint32 Num. concurrently active tracing sessions.
total_buffers uint32 Num. buffers for all tracing session (not just the current one). This will be >= buffer_stats.size(), because the latter is only about the current session.
chunks_discarded uint64 Num. chunks that were discarded by the service before attempting to commit them to a buffer, e.g. because the producer specified an invalid buffer ID.
patches_discarded uint64 Num. patches that were discarded by the service before attempting to apply them to a buffer, e.g. because the producer specified an invalid buffer ID.
invalid_packets uint64 Packets that failed validation of the TrustedPacket. If this is > 0, there is a bug in the producer.
filter_stats FilterStats
flushes_requested uint64 Count of Flush() requests (either from the Consumer, or self-induced periodic flushes). The final Flush() is also included in the count.
flushes_succeeded uint64 The count of the Flush() requests that were completed successfully.
In a well behaving trace this should always be == flush_requests.
flushes_failed uint64 The count of the Flush() requests that failed (in most timed out).
In a well behaving trace this should always be == 0.
final_flush_outcome FinalFlushOutcome

TraceStats.BufferStats

From TraceBuffer::Stats.

Defined in trace_stats.proto

Fields:

Field Type Description
buffer_size uint64 Size of the circular buffer in bytes.
bytes_written uint64 Num. bytes written into the circular buffer, including chunk headers.
bytes_overwritten uint64 Num. bytes overwritten before they have been read (i.e. loss of data).
bytes_read uint64 Total size of chunks that were fully read from the circular buffer by the consumer. This may not be equal to bytes_written either in the middle of tracing, or if chunks_overwritten is non-zero. Note that this is the size of the chunks read from the buffer, including chunk headers, which will be different from the total size of packets returned to the consumer.
The current utilization of the trace buffer (mid-tracing) can be obtained by subtracting bytes_read and bytes_overwritten from bytes_written, adding the difference of padding_bytes_written and padding_bytes_cleared, and comparing this sum to the buffer_size.
Note that this represents the total size of buffered data in the buffer, yet this data may be spread non-contiguously through the buffer and may be overridden before the utilization reaches 100%.
padding_bytes_written uint64 Num. bytes that were allocated as padding between chunks in the circular buffer.
padding_bytes_cleared uint64 Num. of padding bytes that were removed from the circular buffer when they were overwritten.
The difference between padding_bytes_written and padding_bytes_cleared denotes the total size of padding currently present in the buffer.
chunks_written uint64 Num. chunks (!= packets) written into the buffer.
chunks_rewritten uint64 Num. chunks (!= packets) rewritten into the buffer. This means we rewrote the same chunk with additional packets appended to the end.
chunks_overwritten uint64 Num. chunks overwritten before they have been read (i.e. loss of data).
chunks_discarded uint64 Num. chunks discarded (i.e. loss of data). Can be > 0 only when a buffer is configured with FillPolicy == DISCARD.
chunks_read uint64 Num. chunks (!= packets) that were fully read from the circular buffer by the consumer. This may not be equal to chunks_written either in the middle of tracing, or if chunks_overwritten is non-zero.
chunks_committed_out_of_order uint64 Num. chunks that were committed out of order.
write_wrap_count uint64 Num. times the ring buffer wrapped around.
patches_succeeded uint64 Num. out-of-band (OOB) patches that succeeded.
patches_failed uint64 Num. OOB patches that failed (e.g., the chunk to patch was gone).
readaheads_succeeded uint64 Num. readaheads (for large multi-chunk packet reads) that ended up in a successful packet read.
readaheads_failed uint64 Num. readaheads aborted because of missing chunks in the sequence stream.
Note that a small number > 0 is totally expected: occasionally, when issuing a read, the very last packet in a sequence might be incomplete (because the producer is still writing it while we read). The read will stop at that point, for that sequence, increasing this counter.
abi_violations uint64 Num. of violations of the SharedMemoryABI found while writing or reading the buffer. This is an indication of either a bug in the producer(s) or malicious producer(s).
trace_writer_packet_loss uint64 Num. of times the service detected packet loss on a trace writer sequence. This is usually caused by exhaustion of available chunks in the writer process's SMB. Note that this relies on the client's TraceWriter indicating this loss to the service -- packets lost for other reasons are not reflected in this stat.

TraceStats.WriterStats

Per TraceWriter stat. Each {producer, trace writer} tuple is publicly visible as a unique sequence ID in the trace.

Defined in trace_stats.proto

Fields:

Field Type Description
sequence_id uint64 This matches the TracePacket.trusted_packet_sequence_id and is used to correlate the stats with the actual packet types.
buffer uint32 The buffer index (0..N, as defined in the TraceConfig).
chunk_payload_histogram_counts uint64[] These two arrays have the same cardinality and match the cardinality of chunk_payload_histogram_def + 1 (for the overflow bucket, see below).
sum contains the SUM(entries) and counts contains the COUNT(entries) for each bucket.
chunk_payload_histogram_sum int64[]

TraceStats.FilterStats

This is set only when the TraceConfig specifies a TraceFilter.

Defined in trace_stats.proto

Fields:

Field Type Description
input_packets uint64
input_bytes uint64
output_bytes uint64
errors uint64
time_taken_ns uint64
bytes_discarded_per_buffer uint64[] The number of bytes discarded by the filter (i.e. output - input).
The array has one entry for each buffer defined in the config (unless no packets for that buffer were seen and hence filtered).
Note: the SUM(bytes_discarded_per_buffer) will be <= but not == the total (output_bytes - input_bytes) because the filter might also discard server-generated synthetic packets, that have no buffer index.

TraceStats.FinalFlushOutcome

Defined in trace_stats.proto

Enum values:

Name Value Description
FINAL_FLUSH_UNSPECIFIED 0
FINAL_FLUSH_SUCCEEDED 1
FINAL_FLUSH_FAILED 2

ProfilePacket

The packet emitted by heapprofd for each heap snapshot. A snapshot can involve more than one ProfilePacket if the snapshot is big (when continued is true). The cardinality and grouping is as follows: A ProfilePacket contains:

Defined in profile_packet.proto

Fields:

Field Type Description
strings InternedString[] The following interning tables are only used in Android version Q.
In newer versions, these tables are in InternedData (see protos/perfetto/trace/interned_data) and are shared across multiple ProfilePackets.
For backwards compatibility, consumers need to first look up interned data in the tables within the ProfilePacket, and then, if they are empty, look up in the InternedData instead.
mappings Mapping[]
frames Frame[]
callstacks Callstack[]
process_dumps ProcessHeapSamples[]
continued bool If this is true, the next ProfilePacket in this package_sequence_id is a continuation of this one.
To get all samples for a process, accummulate its ProcessHeapSamples.samples until you see continued=false.
index uint64 Index of this ProfilePacket on its package_sequence_id. Can be used to detect dropped data.
Verify these are consecutive.

InternedString

The interning fields in this file can refer to 2 different intern tables, depending on the message they are used in. If the interned fields are present in ProfilePacket proto, then the intern tables included in the ProfilePacket should be used. If the intered fields are present in the StreamingProfilePacket proto, then the intern tables included in all of the previous InternedData message with same sequence ID should be used.

Defined in profile_common.proto

Fields:

Field Type Description
iid uint64
str bytes

Mapping

Defined in profile_common.proto

Fields:

Field Type Description
iid uint64 Interning key.
build_id uint64 Interning key.
exact_offset uint64 This is not set on Android 10.
start_offset uint64
start uint64
end uint64
load_bias uint64
path_string_ids uint64[] E.g. ["system", "lib64", "libc.so"] id of string.

Frame

Defined in profile_common.proto

Fields:

Field Type Description
iid uint64 Interning key
function_name_id uint64 E.g. "fopen" id of string.
mapping_id uint64
rel_pc uint64

Callstack

Defined in profile_common.proto

Fields:

Field Type Description
iid uint64
frame_ids uint64[] Frames of this callstack. Bottom frame first.

ProfilePacket.ProcessHeapSamples

Defined in profile_packet.proto

Fields:

Field Type Description
pid uint64
from_startup bool This process was profiled from startup.
If false, this process was already running when profiling started.
rejected_concurrent bool This process was not profiled because a concurrent session was active.
If this is true, samples will be empty.
disconnected bool This process disconnected while it was profiled.
If false, the process outlived the profiling session.
buffer_overran bool If disconnected, this disconnect was caused by the client overrunning the buffer.
Equivalent to client_error == CLIENT_ERROR_HIT_TIMEOUT on new S builds.
client_error ClientError
buffer_corrupted bool If disconnected, this disconnected was caused by the shared memory buffer being corrupted. THIS IS ALWAYS A BUG IN HEAPPROFD OR CLIENT MEMORY CORRUPTION.
hit_guardrail bool If disconnected, this disconnect was caused by heapprofd exceeding guardrails during this profiling session.
heap_name string
sampling_interval_bytes uint64
orig_sampling_interval_bytes uint64
timestamp uint64 Timestamp of the state of the target process that this dump represents.
This can be different to the timestamp of the TracePackets for various reasons:
* If disconnected is set above, this is the timestamp of last state heapprofd had of the process before it disconnected.
* Otherwise, if the rate of events produced by the process is high, heapprofd might be behind.
to have a type enum that we can reuse here.
stats ProcessStats Metadata about heapprofd.
samples HeapSample[]

ProfilePacket.ProcessHeapSamples.ClientError

Defined in profile_packet.proto

Enum values:

Name Value Description
CLIENT_ERROR_NONE 0
CLIENT_ERROR_HIT_TIMEOUT 1
CLIENT_ERROR_INVALID_STACK_BOUNDS 2

ProfilePacket.ProcessStats

Defined in profile_packet.proto

Fields:

Field Type Description
unwinding_errors uint64
heap_samples uint64
map_reparses uint64
unwinding_time_us Histogram
total_unwinding_time_us uint64
client_spinlock_blocked_us uint64

ProfilePacket.Histogram

Defined in profile_packet.proto

Fields:

Field Type Description
buckets Bucket[]

ProfilePacket.Histogram.Bucket

Defined in profile_packet.proto

Fields:

Field Type Description
upper_limit uint64 This bucket counts values from the previous bucket's (or -infinity if this is the first bucket) upper_limit (inclusive) to this upper_limit (exclusive).
max_bucket bool This is the highest bucket. This is set instead of the upper_limit. Any values larger or equal to the previous bucket's upper_limit are counted in this bucket.
count uint64 Number of values that fall into this range.

ProfilePacket.HeapSample

Defined in profile_packet.proto

Fields:

Field Type Description
callstack_id uint64
self_allocated uint64 bytes allocated at this callstack.
self_freed uint64 bytes allocated at this callstack that have been freed.
self_max uint64 Bytes allocated by this callstack but not freed at the time the malloc heap usage of this process was maximal. This is only set if dump_at_max is true in HeapprofdConfig. In that case, self_allocated, self_freed and self_idle will not be set.
self_max_count uint64 Number of allocations that were sampled at this callstack but not freed at the time the malloc heap usage of this process was maximal. This is only set if dump_at_max is true in HeapprofdConfig. In that case, self_allocated, self_freed and self_idle will not be set.
timestamp uint64 timestamp [opt]
alloc_count uint64 Number of allocations that were sampled at this callstack.
free_count uint64 Number of allocations that were sampled at this callstack that have been freed.

StreamingAllocation

Packet emitted by heapprofd when stream_allocations = true. Only for local testing. Doesn't report the callsite.

Defined in profile_packet.proto

Fields:

Field Type Description
address uint64[]
size uint64[]
sample_size uint64[]
clock_monotonic_coarse_timestamp uint64[]
heap_id uint32[]
sequence_number uint64[]

StreamingFree

Packet emitted by heapprofd when stream_allocations = true. Only for local testing. Doesn't report the callsite.

Defined in profile_packet.proto

Fields:

Field Type Description
address uint64[]
heap_id uint32[]
sequence_number uint64[]

BatteryCounters

Defined in battery_counters.proto

Fields:

Field Type Description
charge_counter_uah int64 Battery capacity in microampere-hours(µAh). Also known as Coulomb counter.
capacity_percent float Remaining battery capacity percentage of total capacity
current_ua int64 Instantaneous battery current in microamperes(µA).
Negative values indicate current being drained from the battery and positive values indicate current feeding the battery from a charge source (USB).
See https://perfetto.dev/docs/data-sources/battery-counters for more info.
current_avg_ua int64 Instantaneous battery current in microamperes(µA).
name string Battery name, emitted only on multiple batteries.
energy_counter_uwh int64 Battery capacity in microwatt-hours(µWh).
voltage_uv int64 Battery voltage in microvolts(µV).

PowerRails

Defined in power_rails.proto

Fields:

Field Type Description
rail_descriptor RailDescriptor[] This is only emitted at the beginning of the trace.
energy_data EnergyData[]

PowerRails.RailDescriptor

Defined in power_rails.proto

Fields:

Field Type Description
index uint32 Index corresponding to the rail
rail_name string Name of the rail
subsys_name string Name of the subsystem to which this rail belongs
sampling_rate uint32 Hardware sampling rate (Hz).

PowerRails.EnergyData

Defined in power_rails.proto

Fields:

Field Type Description
index uint32 Index corresponding to RailDescriptor.index
timestamp_ms uint64 Time since device boot(CLOCK_BOOTTIME) in milli-seconds.
energy uint64 Accumulated energy since device boot in microwatt-seconds (uWs).

AndroidLogPacket

Defined in android_log.proto

Fields:

Field Type Description
events LogEvent[]
stats Stats

AndroidLogPacket.LogEvent

Defined in android_log.proto

Fields:

Field Type Description
log_id AndroidLogId The log buffer (e.g. MAIN, SYSTEM, RADIO) the event comes from.
pid int32 PID (TGID), TID and UID of the task that emitted the event.
tid int32
uid int32
timestamp uint64 Timestamp [ns]. The clock source is CLOCK_REALTIME, unlike many other Perfetto trace events that instead use CLOCK_BOOTTIME. The trace processor will take care of realigning clocks using the ClockSnapshot(s).
tag string When log_id == LID_EVENTS, tag corresponds to the event name defined in the second column of /system/etc/event-log-tags. For all other events, tag is the app-specified argument passed to __android_log_write().
prio AndroidLogPriority Empty when log_id == LID_EVENTS.
message string Empty when log_id == LID_EVENTS.
args Arg[] Only populated when log_id == LID_EVENTS.

AndroidLogId

Values from NDK's android/log.h.

Defined in android_log_constants.proto

Enum values:

Name Value Description
LID_DEFAULT 0 MAIN.
LID_RADIO 1
LID_EVENTS 2
LID_SYSTEM 3
LID_CRASH 4
LID_STATS 5
LID_SECURITY 6
LID_KERNEL 7

AndroidLogPriority

Defined in android_log_constants.proto

Enum values:

Name Value Description
PRIO_UNSPECIFIED 0
PRIO_UNUSED 1 _DEFAULT, but should never be seen in logs.
PRIO_VERBOSE 2
PRIO_DEBUG 3
PRIO_INFO 4
PRIO_WARN 5
PRIO_ERROR 6
PRIO_FATAL 7

AndroidLogPacket.LogEvent.Arg

Defined in android_log.proto

Fields:

Field Type Description
name string
int_value int64
float_value float
string_value string

AndroidLogPacket.Stats

Stats are emitted only upon Flush() and are monotonic (i.e. they are absolute counters since the beginning of the lifetime of the tracing session and NOT relative to the previous Stats snapshot).

Defined in android_log.proto

Fields:

Field Type Description
num_total uint64 Total number of log events seen, including errors and skipped entries (num of events stored in the trace = total - failed - skipped).
num_failed uint64 Parser failures.
num_skipped uint64 Messages skipped due to filters.

SystemInfo

Defined in system_info.proto

Fields:

Field Type Description
utsname Utsname
android_build_fingerprint string
tracing_service_version string The version of traced (the same returned by traced --version).
This is a human readable string with and its format varies depending on the build system and the repo (standalone vs AOSP).
This is intended for human debugging only.
android_sdk_version uint64 The Android SDK vesion (e.g. 21 for L, 31 for S etc).
Introduced in Android T.
page_size uint32 Kernel page size - sysconf(_SC_PAGESIZE).
num_cpus uint32 Number of cpus - sysconf(_SC_NPROCESSORS_CONF).
Might be different to the number of online cpus.
Introduced in perfetto v44.
timezone_off_mins int32 The timezone offset from UTC, as per strftime("%z"), in minutes.
Introduced in v38 / Android V.
hz int64 Ticks per second - sysconf(_SC_CLK_TCK).
Not serialised as of perfetto v44.

Utsname

Defined in system_info.proto

Fields:

Field Type Description
sysname string
version string
release string
machine string

Trigger

When a TracingSession receives a trigger it records the boot time nanoseconds in the TracePacket's timestamp field as well as the name of the producer that triggered it. We emit this data so filtering can be done on triggers received in the trace.

Defined in trigger.proto

Fields:

Field Type Description
trigger_name string Name of the trigger which was received.
producer_name string The actual producer that activated trigger.
trusted_producer_uid int32 The verified UID of the producer.

PackagesList

Defined in packages_list.proto

Fields:

Field Type Description
packages PackageInfo[]
parse_error bool At least one error occurred parsing the packages.list.
read_error bool Failed to open / read packages.list.

PackagesList.PackageInfo

Defined in packages_list.proto

Fields:

Field Type Description
name string
uid uint64
debuggable bool
profileable_from_shell bool
version_code int64

ChromeBenchmarkMetadata

This message is not intended to be written by the chrome on the device. It's emitted on the host by the telemetry benchmark infrastructure (it's a part of the trace that's written by the telemetry tracing agent).

Defined in chrome_benchmark_metadata.proto

Fields:

Field Type Description
benchmark_start_time_us int64 Time when the benchmark execution started (host unixtime in microseconds).
story_run_time_us int64 Time when this particular story was run (host unixtime in microseconds).
benchmark_name string Name of benchmark.
benchmark_description string Description of benchmark.
label string Optional label.
story_name string Name of story.
story_tags string[] List of story tags.
story_run_index int32 Index of the story run (>0 if the same story was run several times).
had_failures bool Whether this run failed.

PerfettoMetatrace

Used to trace the execution of perfetto itself.

Defined in perfetto_metatrace.proto

Fields:

Field Type Description
event_id uint32
counter_id uint32
event_name string For trace processor metatracing.
event_name_iid uint64
counter_name string
event_duration_ns uint64 Only when using event_id.
counter_value int32 Only when using counter_id.
thread_id uint32 ID of the thread that emitted the event.
has_overruns bool If true the meta-tracing ring buffer had overruns and hence some data is missing from this point.
args Arg[] Args for the event.
interned_strings InternedString[]

PerfettoMetatrace.Arg

Defined in perfetto_metatrace.proto

Fields:

Field Type Description
key string
key_iid uint64
value string
value_iid uint64

PerfettoMetatrace.InternedString

Interned strings corresponding to the event_name_iid, key_iid and value_iid above.

Defined in perfetto_metatrace.proto

Fields:

Field Type Description
iid uint64
value string

ChromeMetadataPacket

Metadata for chrome traces.

Defined in chrome_metadata.proto

Fields:

Field Type Description
background_tracing_metadata BackgroundTracingMetadata
chrome_version_code int32 Version code of Chrome used by Android's Play Store. This field is only set on Android.
enabled_categories string Comma separated list of enabled categories for tracing. The list of possible category strings are listed in code base/trace_event/builtin_categories.h.
field_trial_hashes FinchHash[] List of Finch study/groups that apply to this trace.

BackgroundTracingMetadata

Metadata related to background tracing scenarios, states and triggers.

Defined in chrome_metadata.proto

Fields:

Field Type Description
triggered_rule TriggerRule Specifies the rule that caused the trace to be uploaded.
active_rules TriggerRule[] List of all active triggers in current session, when trace was triggered.
scenario_name_hash fixed32 Hash of the scenario name.

BackgroundTracingMetadata.TriggerRule

Information about a trigger rule defined in the experiment config.

Defined in chrome_metadata.proto

Fields:

Field Type Description
trigger_type TriggerType
histogram_rule HistogramRule
named_rule NamedRule
name_hash fixed32 Hash of the rule name.

BackgroundTracingMetadata.TriggerRule.TriggerType

Defined in chrome_metadata.proto

Enum values:

Name Value Description
TRIGGER_UNSPECIFIED 0
MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE 1 Traces are triggered by specific range of values of an UMA histogram.
MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED 2 Traces are triggered by specific named events in chromium codebase, like "second-update-failure".

BackgroundTracingMetadata.TriggerRule.HistogramRule

Configuration of histogram trigger.

Defined in chrome_metadata.proto

Fields:

Field Type Description
histogram_name_hash fixed64 UMA histogram name hash, same as HistogramEventProto.name_hash.
histogram_min_trigger int64 Range of values of the histogram that activates trigger.
histogram_max_trigger int64

BackgroundTracingMetadata.TriggerRule.NamedRule

Configuration of named trigger.

Defined in chrome_metadata.proto

Fields:

Field Type Description
event_type EventType
content_trigger_name_hash fixed64 If event_type is CONTENT_TRIGGER, then this stores the hash of the content-trigger that actually fired.

BackgroundTracingMetadata.TriggerRule.NamedRule.EventType

Defined in chrome_metadata.proto

Enum values:

Name Value Description
UNSPECIFIED 0
SESSION_RESTORE 1
NAVIGATION 2
STARTUP 3
REACHED_CODE 4
CONTENT_TRIGGER 5
TEST_RULE 1000

ChromeMetadataPacket.FinchHash

Finch name and group based on the ActiveGroupId.

Defined in chrome_metadata.proto

Fields:

Field Type Description
name uint32
group uint32

GpuCounterEvent

Defined in gpu_counter_event.proto

Fields:

Field Type Description
counter_descriptor GpuCounterDescriptor The first trace packet of each session should include counter_spec.
counters GpuCounter[]
gpu_id int32 optional. Identifier for GPU in a multi-gpu device.

GpuCounterDescriptor

Description of GPU counters. This message is sent by a GPU counter producer to specify the counters available in the hardware.

Defined in gpu_counter_descriptor.proto

Fields:

Field Type Description
specs GpuCounterSpec[]
blocks GpuCounterBlock[]
min_sampling_period_ns uint64 optional. Minimum sampling period supported by the producer in nanoseconds.
max_sampling_period_ns uint64 optional. Maximum sampling period supported by the producer in nanoseconds.
supports_instrumented_sampling bool optional. The producer supports counter sampling by instrumenting the command buffer.

GpuCounterDescriptor.GpuCounterSpec

Defined in gpu_counter_descriptor.proto

Fields:

Field Type Description
counter_id uint32
name string
description string
int_peak_value int64
double_peak_value double
numerator_units MeasureUnit[]
denominator_units MeasureUnit[]
select_by_default bool
groups GpuCounterGroup[]

GpuCounterDescriptor.MeasureUnit

Defined in gpu_counter_descriptor.proto

Enum values:

Name Value Description
NONE 0
BIT 1
KILOBIT 2
MEGABIT 3
GIGABIT 4
TERABIT 5
PETABIT 6
BYTE 7
KILOBYTE 8
MEGABYTE 9
GIGABYTE 10
TERABYTE 11
PETABYTE 12
HERTZ 13
KILOHERTZ 14
MEGAHERTZ 15
GIGAHERTZ 16
TERAHERTZ 17
PETAHERTZ 18
NANOSECOND 19
MICROSECOND 20
MILLISECOND 21
SECOND 22
MINUTE 23
HOUR 24
VERTEX 25
PIXEL 26
TRIANGLE 27
PRIMITIVE 38
FRAGMENT 39
MILLIWATT 28
WATT 29
KILOWATT 30
JOULE 31
VOLT 32
AMPERE 33
CELSIUS 34
FAHRENHEIT 35
KELVIN 36
PERCENT 37 Values should be out of 100.
INSTRUCTION 40

GpuCounterDescriptor.GpuCounterGroup

Logical groups for a counter. This is used in the UI to present the related counters together.

Defined in gpu_counter_descriptor.proto

Enum values:

Name Value Description
UNCLASSIFIED 0
SYSTEM 1
VERTICES 2
FRAGMENTS 3
PRIMITIVES 4
MEMORY 5 Includes counters relating to caching and bandwidth.
COMPUTE 6

GpuCounterDescriptor.GpuCounterBlock

Allow producer to group counters into block to represent counter islands. A capacity may be specified to indicate the number of counters that can be enable simultaneously in that block.

Defined in gpu_counter_descriptor.proto

Fields:

Field Type Description
block_id uint32 required. Unique ID for the counter group.
block_capacity uint32 optional. Number of counters supported by the block. No limit if unset.
name string optional. Name of block.
description string optional. Description for the block.
counter_ids uint32[] list of counters that are part of the block.

GpuCounterEvent.GpuCounter

Defined in gpu_counter_event.proto

Fields:

Field Type Description
counter_id uint32 required. Identifier for counter.
int_value int64
double_value double

GpuRenderStageEvent

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
event_id uint64 required. Unique ID for the event.
duration uint64 optional. Duration of the event in nanoseconds. If unset, this is a single time point event.
hw_queue_iid uint64 required. ID to a hardware queue description in the specifications.
InternedGpuRenderStageSpecification
stage_iid uint64 required. ID to a render stage description in the specifications.
InternedGpuRenderStageSpecification
gpu_id int32 optional. Identifier for GPU in a multi-gpu device.
context uint64 required. Graphics context for the event.
For OpenGL, this is the GL context.
For Vulkan, this is the VkDevice.
render_target_handle uint64 optional. The render target for this event.
For OpenGL, this is the GL frame buffer handle.
For Vulkan, this is the VkFrameBuffer handle.
submission_id uint32 optional. Submission ID generated by the UMD.
For OpenGL, the ID should map to an API submission (e.g., glFlush, glFinish, eglSwapBufffers) event. The set of submissions to the HW due to a single API submission should share the same ID.
For Vulkan, it should map 1:1 with a vkQueueSubmit.
extra_data ExtraData[]
render_pass_handle uint64 optional. The Vulkan render pass handle.
render_subpass_index_mask uint64[] optional. A bit mask representing which render subpasses contributed to this render stage event. Subpass index 0 is represented by setting the LSB of the mask. Additional mask can be added for subpass index greater than 63.
command_buffer_handle uint64 optional. The Vulkan command buffer handle.
specifications Specifications Deprecated. Use hw_queue_iid and stage_iid to refer to InternedGpuRenderStageSpecification instead.
hw_queue_id int32 Deprecated. Use hw_queue_iid instead;
stage_id int32 Deprecated. Use stage_iid instead;

GpuRenderStageEvent.ExtraData

optional. Additional data for the user. This may include attributes for the event like resource ids, shaders, etc.

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
name string
value string

GpuRenderStageEvent.Specifications

Deprecated. Use InternedGpuRenderStageSpecification instead. The first trace packet of each session should include a Specifications to enumerate all IDs that will be used. The timestamp of this packet must be earlier than all other packets. Only one packet with Specifications is expected.

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
context_spec ContextSpec
hw_queue Description[] Labels to categorize the hw Queue this event goes on.
stage Description[] Labels to categorize render stage(binning, render, compute etc).

GpuRenderStageEvent.Specifications.ContextSpec

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
context uint64
pid int32

GpuRenderStageEvent.Specifications.Description

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
name string
description string

StreamingProfilePacket

Packet emitted by the chromium in-process signal-based callstack sampler. Represents a series of individual stack samples (sampled at discrete points in time), rather than aggregated over an interval.

Defined in profile_packet.proto

Fields:

Field Type Description
callstack_iid uint64[] Index into InternedData.callstacks
timestamp_delta_us int64[] this with ClockSnapshot-based delta encoding instead.
process_priority int32

HeapGraph

Defined in heap_graph.proto

Fields:

Field Type Description
pid int32
objects HeapGraphObject[] This contains all objects at the time this dump was taken. Some of these will be live, some of those unreachable (garbage). To find the live objects, the client needs to build the transitive closure of objects reachable from roots.
All objects not contained within that transitive closure are garbage that has not yet been collected.
roots HeapGraphRoot[] Roots at the time this dump was taken.
All live objects are reachable from the roots. All other objects are garbage.
types HeapGraphType[] Types used in HeapGraphObjects.
field_names InternedString[] Field names for references in managed heap graph.
location_names InternedString[] Paths of files used in managed heap graph.
continued bool
index uint64

HeapGraphObject

Defined in heap_graph.proto

Fields:

Field Type Description
id uint64
id_delta uint64
type_id uint64 Index for InternedData.types for the name of the type of this object.
self_size uint64 Bytes occupied by this objects.
reference_field_id_base uint64 Add this to all non-zero values in reference_object_id. This is used to get more compact varint encoding.
The name is confusing, but this has always been used as a base for reference_object_id. The field should be named reference_object_id_base.
reference_field_id uint64[] Indices for InternedData.field_names for the name of the field referring to the object. For Android S+ and for instances of normal classes (e.g.
not instances of java.lang.Class or arrays), this is instead set in the corresponding HeapGraphType, and this is left empty.
reference_object_id uint64[] Ids of the Object that is referred to.
native_allocation_registry_size_field int64 If this object is an instance of libcore.util.NativeAllocationRegistry, the value of the size field.
N.B. This is not the native size of this object.

HeapGraphRoot

Defined in heap_graph.proto

Fields:

Field Type Description
object_ids uint64[] Objects retained by this root.
root_type Type

HeapGraphRoot.Type

Defined in heap_graph.proto

Enum values:

Name Value Description
ROOT_UNKNOWN 0
ROOT_JNI_GLOBAL 1
ROOT_JNI_LOCAL 2
ROOT_JAVA_FRAME 3
ROOT_NATIVE_STACK 4
ROOT_STICKY_CLASS 5
ROOT_THREAD_BLOCK 6
ROOT_MONITOR_USED 7
ROOT_THREAD_OBJECT 8
ROOT_INTERNED_STRING 9
ROOT_FINALIZING 10
ROOT_DEBUGGER 11
ROOT_REFERENCE_CLEANUP 12
ROOT_VM_INTERNAL 13
ROOT_JNI_MONITOR 14

HeapGraphType

Defined in heap_graph.proto

Fields:

Field Type Description
id uint64 field to save space.
location_id uint64
class_name string
object_size uint64 Size of objects of this type.
superclass_id uint64
reference_field_id uint64[] Indices for InternedData.field_names for the names of the fields of instances of this class. This does NOT include the fields from superclasses. The consumer of this data needs to walk all super classes to get a full lists of fields. Objects always write the fields in order of most specific class to the furthest up superclass.
kind Kind
classloader_id uint64

HeapGraphType.Kind

Defined in heap_graph.proto

Enum values:

Name Value Description
KIND_UNKNOWN 0
KIND_NORMAL 1
KIND_NOREFERENCES 2
KIND_STRING 3
KIND_ARRAY 4
KIND_CLASS 5
KIND_CLASSLOADER 6
KIND_DEXCACHE 7
KIND_SOFT_REFERENCE 8
KIND_WEAK_REFERENCE 9
KIND_FINALIZER_REFERENCE 10
KIND_PHANTOM_REFERENCE 11

GraphicsFrameEvent

Generated by Android's SurfaceFlinger.

Defined in graphics_frame_event.proto

Fields:

Field Type Description
buffer_event BufferEvent

GraphicsFrameEvent.BufferEvent

Defined in graphics_frame_event.proto

Fields:

Field Type Description
frame_number uint32
type BufferEventType
layer_name string
duration_ns uint64 If no duration is set, the event is an instant event.
buffer_id uint32 Unique buffer identifier.

GraphicsFrameEvent.BufferEventType

Defined in graphics_frame_event.proto

Enum values:

Name Value Description
UNSPECIFIED 0
DEQUEUE 1
QUEUE 2
POST 3
ACQUIRE_FENCE 4
LATCH 5
HWC_COMPOSITION_QUEUED 6 HWC will compose this buffer
FALLBACK_COMPOSITION 7 renderEngine composition
PRESENT_FENCE 8
RELEASE_FENCE 9
MODIFY 10
DETACH 11
ATTACH 12
CANCEL 13

VulkanMemoryEvent

Each VulkanMemoryEvent encompasses information regarding one single function call that results in reserving, binding or freeing host or GPU memory. There is a special message type, ANNOTATIONS, which is used to communicate information that are not directly related to a memory event, nonetheless are essential to understand the memory usage. An example is the size and memory types of the memory heaps.

Defined in vulkan_memory_event.proto

Fields:

Field Type Description
source Source
operation Operation
timestamp int64
pid uint32
memory_address fixed64
memory_size uint64
caller_iid uint64 Interned string. Original string value is stored in function_names from protos/perfetto/trace/interned_data/interned_data.proto.
allocation_scope AllocationScope
annotations VulkanMemoryEventAnnotation[] Extra related information, e.g., create configs, etc.
device fixed64 Field IDs used for device memory (low sampling rate)
device_memory fixed64
memory_type uint32
heap uint32
object_handle fixed64

VulkanMemoryEvent.Source

Defined in vulkan_memory_event.proto

Enum values:

Name Value Description
SOURCE_UNSPECIFIED 0
SOURCE_DRIVER 1
SOURCE_DEVICE 2
SOURCE_DEVICE_MEMORY 3
SOURCE_BUFFER 4
SOURCE_IMAGE 5

VulkanMemoryEvent.Operation

Defined in vulkan_memory_event.proto

Enum values:

Name Value Description
OP_UNSPECIFIED 0
OP_CREATE 1 alloc, create
OP_DESTROY 2 free, destroy(non-bound)
OP_BIND 3 bind buffer and image
OP_DESTROY_BOUND 4 destroy (bound)
OP_ANNOTATIONS 5 only annotations

VulkanMemoryEvent.AllocationScope

Defined in vulkan_memory_event.proto

Enum values:

Name Value Description
SCOPE_UNSPECIFIED 0
SCOPE_COMMAND 1
SCOPE_OBJECT 2
SCOPE_CACHE 3
SCOPE_DEVICE 4
SCOPE_INSTANCE 5

VulkanMemoryEventAnnotation

All the information that cannot be sent within a VulkanMemoryEvent message, are sent as annotations to the main memory event. One example is the properties of the object that consumes the allocated memory, for example, a buffer or an image. key_iid and string_iid are both interned strings. Original string value is stored in vulkan_memory_keys from protos/perfetto/trace/interned_data/interned_data.proto.

Defined in vulkan_memory_event.proto

Fields:

Field Type Description
key_iid uint64
int_value int64
double_value double
string_iid uint64

GpuLog

Message for logging events GPU data producer.

Defined in gpu_log.proto

Fields:

Field Type Description
severity Severity
tag string
log_message string

GpuLog.Severity

Defined in gpu_log.proto

Enum values:

Name Value Description
LOG_SEVERITY_UNSPECIFIED 0
LOG_SEVERITY_VERBOSE 1
LOG_SEVERITY_DEBUG 2
LOG_SEVERITY_INFO 3
LOG_SEVERITY_WARNING 4
LOG_SEVERITY_ERROR 5

VulkanApiEvent

Message for recording the Vulkan call.

Defined in vulkan_api_event.proto

Fields:

Field Type Description
vk_debug_utils_object_name VkDebugUtilsObjectName
vk_queue_submit VkQueueSubmit

VulkanApiEvent.VkDebugUtilsObjectName

For recording vkSetDebugUtilsObjectNameEXT and vkDebugMarkerSetObjectNameEXT

Defined in vulkan_api_event.proto

Fields:

Field Type Description
pid uint32
vk_device uint64
object_type int32 VkObjectType. Value must match https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectType.html.
object uint64
object_name string

VulkanApiEvent.VkQueueSubmit

For recording vkQueueSubmit call.

Defined in vulkan_api_event.proto

Fields:

Field Type Description
duration_ns uint64
pid uint32
tid uint32
vk_queue uint64
vk_command_buffers uint64[]
submission_id uint32 Submission ID. An identifier unique to each vkQueueSubmit call. This submission_id must match GpuRenderStageEvent.submission_id if the GpuRenderStageEvent is created due to this vkQueueSubmit.

PerfSample

Packet emitted by the traced_perf sampling performance profiler, which gathers data via the perf_event_open syscall. Each packet contains an individual sample with a counter value, and optionally a callstack.

Timestamps are within the root packet. The config can specify the clock, or the implementation will default to CLOCK_MONOTONIC_RAW. Within the Android R timeframe, the default was CLOCK_BOOTTIME.

There are several distinct views of this message:

Defined in profile_packet.proto

Fields:

Field Type Description
cpu uint32
pid uint32
tid uint32
cpu_mode Profiling.CpuMode Execution state that the process was sampled at.
timebase_count uint64 Value of the timebase counter (since the event was configured, no deltas).
callstack_iid uint64 Unwound callstack. Might be partial, in which case a synthetic "error" frame is appended, and unwind_error is set accordingly.
unwind_error Profiling.StackUnwindError If set, stack unwinding was incomplete due to an error.
Unset values should be treated as UNWIND_ERROR_NONE.
kernel_records_lost uint64 If set, indicates that this message is not a sample, but rather an indication of data loss in the ring buffer allocated for cpu. Such data loss occurs when the kernel has insufficient ring buffer capacity to write a record (which gets discarded). A record in this context is an individual ring buffer entry, and counts more than just sample records.
The timestamp of the packet corresponds to the time that the producer wrote the packet for trace-sorting purposes alone, and should not be interpreted relative to the sample timestamps. This field is sufficient to detect that some kernel data loss happened within the trace, but not the specific time bounds of that loss (which would require tracking precedessor & successor timestamps, which is not deemed necessary at the moment).
sample_skipped_reason SampleSkipReason
producer_event ProducerEvent

Profiling.CpuMode

Defined in profile_packet.proto

Enum values:

Name Value Description
MODE_UNKNOWN 0
MODE_KERNEL 1
MODE_USER 2
MODE_HYPERVISOR 3 The following values aren't expected, but included for completeness:
MODE_GUEST_KERNEL 4
MODE_GUEST_USER 5

Profiling.StackUnwindError

Enumeration of libunwindstack's error codes. NB: the integral representations of the two enums are different.

Defined in profile_packet.proto

Enum values:

Name Value Description
UNWIND_ERROR_UNKNOWN 0
UNWIND_ERROR_NONE 1
UNWIND_ERROR_MEMORY_INVALID 2
UNWIND_ERROR_UNWIND_INFO 3
UNWIND_ERROR_UNSUPPORTED 4
UNWIND_ERROR_INVALID_MAP 5
UNWIND_ERROR_MAX_FRAMES_EXCEEDED 6
UNWIND_ERROR_REPEATED_FRAME 7
UNWIND_ERROR_INVALID_ELF 8
UNWIND_ERROR_SYSTEM_CALL 9
UNWIND_ERROR_THREAD_TIMEOUT 10
UNWIND_ERROR_THREAD_DOES_NOT_EXIST 11
UNWIND_ERROR_BAD_ARCH 12
UNWIND_ERROR_MAPS_PARSE 13
UNWIND_ERROR_INVALID_PARAMETER 14
UNWIND_ERROR_PTRACE_CALL 15

PerfSample.SampleSkipReason

If set, indicates that the profiler encountered a sample that was relevant, but was skipped.

Defined in profile_packet.proto

Enum values:

Name Value Description
PROFILER_SKIP_UNKNOWN 0
PROFILER_SKIP_READ_STAGE 1
PROFILER_SKIP_UNWIND_STAGE 2
PROFILER_SKIP_UNWIND_ENQUEUE 3

PerfSample.ProducerEvent

A notable event within the sampling implementation.

Defined in profile_packet.proto

Fields:

Field Type Description
source_stop_reason DataSourceStopReason

PerfSample.ProducerEvent.DataSourceStopReason

Defined in profile_packet.proto

Enum values:

Name Value Description
PROFILER_STOP_UNKNOWN 0
PROFILER_STOP_GUARDRAIL 1

CpuInfo

Information about CPUs from procfs and sysfs.

Defined in cpu_info.proto

Fields:

Field Type Description
cpus Cpu[] Describes available CPUs, one entry per CPU.

CpuInfo.Cpu

Information about a single CPU.

Defined in cpu_info.proto

Fields:

Field Type Description
processor string Value of "Processor" field from /proc/cpuinfo for this CPU.
Example: "AArch64 Processor rev 12 (aarch64)"
frequencies uint32[] Frequencies from /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_frequencies where X is the index of this CPU.

SmapsPacket

Defined in smaps.proto

Fields:

Field Type Description
pid uint32
entries SmapsEntry[]

SmapsEntry

Defined in smaps.proto

Fields:

Field Type Description
path string
size_kb uint64
private_dirty_kb uint64
swap_kb uint64
file_name string for field upload (instead of path).
start_address uint64 TODO(crbug.com/1098746): Consider encoding this as incremental values.
module_timestamp uint64
module_debugid string
module_debug_path string
protection_flags uint32
private_clean_resident_kb uint64
shared_dirty_resident_kb uint64
shared_clean_resident_kb uint64
locked_kb uint64
proportional_resident_kb uint64

TracingServiceEvent

Events emitted by the tracing service.

Defined in tracing_service_event.proto

Fields:

Field Type Description
tracing_started bool Emitted when we start tracing and specifically, this will be before any producer is notified about the existence of this trace. This is always emitted before the all_data_sources_started event. This event is also guaranteed to be seen (byte-offset wise) before any data packets from producers.
all_data_sources_started bool Emitted after all data sources saw the start event and ACKed it.
This identifies the point in time when it's safe to assume that all data sources have been recording events.
all_data_sources_flushed bool Emitted when all data sources have been flushed successfully or with an error (including timeouts). This can generally happen many times over the course of the trace.
read_tracing_buffers_completed bool Emitted when reading back the central tracing buffers has been completed.
If write_into_file is specified, this can happen many times over the course of the trace.
tracing_disabled bool Emitted after tracing has been disabled and specifically, this will be after all packets from producers have been included in the central tracing buffer.
seized_for_bugreport bool Emitted if perfetto --save-for-bugreport was invoked while the current tracing session was running and it had the highest bugreport_score. In this case the original consumer will see a nearly empty trace, because the contents are routed onto the bugreport file. This event flags the situation explicitly. Traces that contain this marker should be discarded by test infrastructures / pipelines.
Deprecated since Android U, where --save-for-bugreport uses non-destructive cloning.

InitialDisplayState

Defined in initial_display_state.proto

Fields:

Field Type Description
display_state int32 Same values as android.view.Display.STATE_*
brightness double

GpuMemTotalEvent

Generated by Android's GpuService.

Defined in gpu_mem_event.proto

Fields:

Field Type Description
gpu_id uint32
pid uint32
size uint64

MemoryTrackerSnapshot

Defined in memory_graph.proto

Fields:

Field Type Description
global_dump_id uint64 Unique ID that represents the global memory dump.
level_of_detail LevelOfDetail
process_memory_dumps ProcessSnapshot[]

MemoryTrackerSnapshot.LevelOfDetail

Defined in memory_graph.proto

Enum values:

Name Value Description
DETAIL_FULL 0
DETAIL_LIGHT 1
DETAIL_BACKGROUND 2

MemoryTrackerSnapshot.ProcessSnapshot

Memory snapshot of a process. The snapshot contains memory data that is from 2 different sources, namely system stats and instrumentation stats. The system memory usage stats come from the OS based on standard API available in the platform to query memory usage. The instrumentation stats are added by instrumenting specific piece of code which tracks memory allocations and deallocations made by a small sub-system within the application. The system stats of the global memory snapshot are recorded as part of ProcessStats and SmapsPacket fields in trace packet with the same timestamp.

Defined in memory_graph.proto

Fields:

Field Type Description
pid int32 Process ID of the process
allocator_dumps MemoryNode[]
memory_edges MemoryEdge[]

MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode

A single node in the memory graph.

Defined in memory_graph.proto

Fields:

Field Type Description
id uint64 Unique ID of the node across all processes involved in the global memory dump. The ID is only unique within this particular global dump identified by GlobalMemoryDumpPacket.global_dump_id.
absolute_name string Absolute name is a unique name for the memory node within the process with ProcessMemoryDump.pid. The name can contain multiple parts separated by '/', which traces the edges of the node from the root node.
Eg: "partition_allocator/array_buffers/buffer1" refers to the child node "buffer1" in a graph structure of:
root -> partition_allocator -> array_buffers -> buffer1.
weak bool A weak node means that the instrumentation that added the current node is unsure about the existence of the actual memory. Unless a "strong" (non-weak is default) node that has an edge to the current node exists in the current global dump, the current node will be discarded.
size_bytes uint64 Size of the node in bytes, used to compute the effective size of the nodes without double counting.
entries MemoryNodeEntry[]

MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry

Entries in the memory node that contain statistics and additional debuggable information about the memory. The size of the node is tracked separately in the size_bytes field.

Defined in memory_graph.proto

Fields:

Field Type Description
name string
units Units
value_uint64 uint64 Contains either one of uint64 or string value.
value_string string

MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry.Units

Defined in memory_graph.proto

Enum values:

Name Value Description
UNSPECIFIED 0
BYTES 1
COUNT 2

MemoryTrackerSnapshot.ProcessSnapshot.MemoryEdge

A directed edge that connects any 2 nodes in the graph above. These are in addition to the inherent edges added due to the tree structure of the node's absolute names. Node with id source_id owns the node with id target_id, and has the effect of attributing the memory usage of target to source. importance is optional and relevant only for the cases of co-ownership, where it acts as a z-index: the owner with the highest importance will be attributed target's memory.

Defined in memory_graph.proto

Fields:

Field Type Description
source_id uint64
target_id uint64
importance uint32
overridable bool

FrameTimelineEvent

Generated by SurfaceFlinger's FrameTimeline (go/adaptive-scheduling-fr). Used in comparing the expected timeline of a frame to the actual timeline. Key terms:

  1. DisplayFrame - represents SurfaceFlinger's work on a frame(composited)
  2. SurfaceFrame - represents App's work on its frame
  3. Timeline = start to end of a component's(app/SF) work on a frame. SurfaceFlinger composites frames from many apps together, so One DisplayFrame can map to N SurfaceFrame(s) This relationship can be reconstructed by using DisplayFrame.token = SurfaceFrame.display_frame_token

Defined in frame_timeline_event.proto

Fields:

Field Type Description
expected_display_frame_start ExpectedDisplayFrameStart
actual_display_frame_start ActualDisplayFrameStart
expected_surface_frame_start ExpectedSurfaceFrameStart
actual_surface_frame_start ActualSurfaceFrameStart
frame_end FrameEnd

FrameTimelineEvent.ExpectedDisplayFrameStart

Indicates the start of expected timeline slice for DisplayFrames.

Defined in frame_timeline_event.proto

Fields:

Field Type Description
cookie int64 Cookie used to correlate between the start and end messages of the same frame. Since all values except the ts are same for start and end, cookie helps in preventing redundant data transmission.
The same cookie is used only by start and end messages of a single frame and is otherwise unique.
token int64 Token received by SurfaceFlinger for its work this.token = SurfaceFrame.display_frame_token
pid int32 Pid of SurfaceFlinger. Used in creating the timeline tracks (and slices) inside the SurfaceFlinger process group.

FrameTimelineEvent.ActualDisplayFrameStart

Indicates the start of actual timeline slice for DisplayFrames. Also includes the jank information.

Defined in frame_timeline_event.proto

Fields:

Field Type Description
cookie int64 Cookie used to correlate between the start and end messages of the same frame. Since all values except the ts are same for start and end, cookie helps in preventing redundant data transmission.
The same cookie is used only by start and end messages of a single frame and is otherwise unique.
token int64 Token received by SurfaceFlinger for its work this.token = SurfaceFrame.display_frame_token
pid int32 Pid of SurfaceFlinger. Used in creating the timeline tracks (and slices) inside the SurfaceFlinger process group.
present_type PresentType
on_time_finish bool
gpu_composition bool
jank_type int32 A bitmask of JankType. More than one reason can be attributed to a janky frame.
prediction_type PredictionType
jank_severity_type JankSeverityType

FrameTimelineEvent.PresentType

Specifies how a frame was presented on screen w.r.t. timing. Can be different for SurfaceFrame and DisplayFrame.

Defined in frame_timeline_event.proto

Enum values:

Name Value Description
PRESENT_UNSPECIFIED 0
PRESENT_ON_TIME 1
PRESENT_LATE 2
PRESENT_EARLY 3
PRESENT_DROPPED 4
PRESENT_UNKNOWN 5

FrameTimelineEvent.PredictionType

Specifies if the predictions for the frame are still valid, expired or unknown.

Defined in frame_timeline_event.proto

Enum values:

Name Value Description
PREDICTION_UNSPECIFIED 0
PREDICTION_VALID 1
PREDICTION_EXPIRED 2
PREDICTION_UNKNOWN 3

FrameTimelineEvent.JankSeverityType

Specifies the severity of a jank.

Defined in frame_timeline_event.proto

Enum values:

Name Value Description
SEVERITY_UNKNOWN 0
SEVERITY_NONE 1
SEVERITY_PARTIAL 2
SEVERITY_FULL 3

FrameTimelineEvent.ExpectedSurfaceFrameStart

Indicates the start of expected timeline slice for SurfaceFrames.

Defined in frame_timeline_event.proto

Fields:

Field Type Description
cookie int64 Cookie used to correlate between the start and end messages of the same frame. Since all values except the ts are same for start and end, cookie helps in preventing redundant data transmission.
The same cookie is used only by start and end messages of a single frame and is otherwise unique.
token int64 Token received by the app for its work. Can be shared between multiple layers of the same app (example: pip mode).
display_frame_token int64 The corresponding DisplayFrame token is required to link the App's work with SurfaceFlinger's work. Many SurfaceFrames can be mapped to a single DisplayFrame.
this.display_frame_token = DisplayFrame.token
pid int32 Pid of the app. Used in creating the timeline tracks (and slices) inside the respective process track group.
layer_name string

FrameTimelineEvent.ActualSurfaceFrameStart

Indicates the start of actual timeline slice for SurfaceFrames. Also includes the jank information.

Defined in frame_timeline_event.proto

Fields:

Field Type Description
cookie int64 Cookie used to correlate between the start and end messages of the same frame. Since all values except the ts are same for start and end, cookie helps in preventing redundant data transmission.
The same cookie is used only by start and end messages of a single frame and is otherwise unique.
token int64 Token received by the app for its work. Can be shared between multiple layers of the same app (example: pip mode).
display_frame_token int64 The corresponding DisplayFrame token is required to link the App's work with SurfaceFlinger's work. Many SurfaceFrames can be mapped to a single DisplayFrame.
this.display_frame_token = DisplayFrame.token
pid int32 Pid of the app. Used in creating the timeline tracks (and slices) inside the respective process track group.
layer_name string
present_type PresentType
on_time_finish bool
gpu_composition bool
jank_type int32 A bitmask of JankType. More than one reason can be attributed to a janky frame.
prediction_type PredictionType
is_buffer bool
jank_severity_type JankSeverityType

FrameTimelineEvent.FrameEnd

FrameEnd just sends the cookie to indicate that the corresponding <display/surface>frame slice's end.

Defined in frame_timeline_event.proto

Fields:

Field Type Description
cookie int64 FrameEnd just sends the cookie to indicate that the corresponding <display/surface>frame slice's end.

AndroidEnergyEstimationBreakdown

Energy data retrieve using the ODPM(On Device Power Monitor) API. This proto represents the aidl class: android.hardware.power.stats.EnergyConsumerResult.

Defined in android_energy_estimation_breakdown.proto

Fields:

Field Type Description
energy_consumer_descriptor AndroidEnergyConsumerDescriptor The first trace packet of each session should include a energy consumer descriptor.
energy_consumer_id int32 ID of the AndroidEnergyConsumer associated with this result. Matches the energy_consumer_id in the AndroidEnergyConsumerDescriptor that should be sent at the beginning of a trace.
energy_uws int64 Total accumulated energy since boot in microwatt-seconds (uWs)
per_uid_breakdown EnergyUidBreakdown[] Optional attributed energy per Android ID / Linux UID for this EnergyConsumer. Sum total of attributed energy must be less than or equal to total accumulated energy.

AndroidEnergyConsumerDescriptor

Defined in android_energy_consumer_descriptor.proto

Fields:

Field Type Description
energy_consumers AndroidEnergyConsumer[]

AndroidEnergyConsumer

Energy consumer based on aidl class: android.hardware.power.stats.EnergyConsumer.

Defined in android_energy_consumer_descriptor.proto

Fields:

Field Type Description
energy_consumer_id int32 Unique ID of this energy consumer. Matches the ID in a AndroidEnergyEstimationBreakdown.
ordinal int32 For a group of energy consumers of the same logical type, sorting by ordinal gives their physical order. Ordinals must be consecutive integers starting from 0.
type string Type of this energy consumer.
name string Unique name of this energy consumer. Vendor/device specific. Opaque to framework.

AndroidEnergyEstimationBreakdown.EnergyUidBreakdown

Defined in android_energy_estimation_breakdown.proto

Fields:

Field Type Description
uid int32 Android ID/Linux UID, the accumulated energy is attributed to.
energy_uws int64 Accumulated energy since boot in microwatt-seconds (uWs).

UiState

Common state for UIs visualizing Perfetto traces. This message can be appended as a TracePacket by UIs to save the visible state (e.g. scroll position/zoom state) for future opening of the trace. Design doc: go/trace-ui-state.

Defined in ui_state.proto

Fields:

Field Type Description
timeline_start_ts int64 The start and end bounds of the viewport of the UI in nanoseconds.
This is the absolute time associated to slices and other events in trace processor tables (i.e. the ts column of most tables)
timeline_end_ts int64
highlight_process HighlightProcess

UiState.HighlightProcess

Indicates that the given process should be highlighted by the UI.

Defined in ui_state.proto

Fields:

Field Type Description
pid uint32 The pid of the process to highlight. This is useful for UIs to focus on tracks of a particular process in the trace.
If more than one process in a trace has the same pid, it is UI implementation specific how the process to be focused will be chosen.
cmdline string The command line of the process to highlight; for most Android apps, this is the package name of the app. This is useful for UIs to focus on a particular app in the trace.
If more than one process hasthe same cmdline, it is UI implementation specific how the process to be focused will be chosen.

AndroidCameraFrameEvent

A profiling event corresponding to a single camera frame. This message collects important details and timestamps involved in producing a single camera frame.

Defined in camera_event.proto

Fields:

Field Type Description
session_id uint64 Identifier for the CameraCaptureSession this frame originates from. See:
https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession
camera_id uint32 Identifier for the camera sensor that is the source of this frame. This may be either a physical or logical camera (up to vendor interpretation).
frame_number int64 The frame number identifying this frame on this camera.
request_id int64 Identifier for the CaptureRequest. See:
https://developer.android.com/reference/android/hardware/camera2/CaptureRequest If multiple cameras are streaming simultaneously, the request_id may be used to identify which frames were captured in service of the same request.
request_received_ns int64 The CLOCK_BOOTTIME timestamp at which the camera framework request is received by the camera HAL pipeline. Note that this request may wait for some time before processing actually begins. See also request_processing_started_ns.
request_processing_started_ns int64 The CLOCK_BOOTTIME timestamp at which the framework request is accepted for processing by the camera HAL pipeline. This is the time at which the pipeline actually begins to work on the request.
start_of_exposure_ns int64 The CLOCK_BOOTTIME timestamp at which the sensor begins its exposure.
start_of_frame_ns int64 The CLOCK_BOOTTIME timestamp corresponding to the sensor start of frame event.
responses_all_sent_ns int64 The CLOCK_BOOTTIME timestamp at which the camera HAL has sent all responses for the frame.
capture_result_status CaptureResultStatus
skipped_sensor_frames int32 The number of sensor frames that were skipped between this frame and the previous frame. Under normal operation, this should be zero. Any number greater than zero indicates dropped sensor frames.
capture_intent int32 The value of CONTROL_CAPTURE_INTENT. See:
https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#CONTROL_CAPTURE_INTENT
num_streams int32 The number of streams in the capture request.
node_processing_details CameraNodeProcessingDetails[]
vendor_data_version int32 These fields capture vendor-specific additions to this proto message. In practice vendor_data typically contains a serialized message of the vendor's design, and vendor_data_version is incremented each time there is a backwards incompatible change made to the message.
vendor_data bytes

AndroidCameraFrameEvent.CaptureResultStatus

The error status, if any, reported to the camera framework. Any status other than STATUS_OK indicates a dropped frame. Next Enum: 6

Defined in camera_event.proto

Enum values:

Name Value Description
STATUS_UNSPECIFIED 0
STATUS_OK 1
STATUS_EARLY_METADATA_ERROR 2 Early metadata was returned to the camera framework with an error.
STATUS_FINAL_METADATA_ERROR 3 Final metadata was returned to the camera framework with an error.
STATUS_BUFFER_ERROR 4 One or more buffers were returned to the camera framework with an error.
STATUS_FLUSH_ERROR 5 The frame was dropped as a result of a flush operation.

AndroidCameraFrameEvent.CameraNodeProcessingDetails

A profiling event corresponding to a single node processing within the camera pipeline. Intuitively this corresponds to a single stage of processing to produce a camera frame.

Defined in camera_event.proto

Fields:

Field Type Description
node_id int64
start_processing_ns int64 The timestamp at which node processing begins to run.
end_processing_ns int64 The timestamp at which node processing finishes running.
scheduling_latency_ns int64 The delay between inputs becoming ready and the node actually beginning to run.

AndroidCameraSessionStats

A profiling event that may be emitted periodically (i.e., at a slower rate than AndroidCameraFrameEvents) to record fixed and aggregated camera session-specific values.

Defined in camera_event.proto

Fields:

Field Type Description
session_id uint64 Identifier for the CameraCaptureSession this frame originates from. See:
https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession
graph CameraGraph

AndroidCameraSessionStats.CameraGraph

Although vendor implementations may vary, camera pipeline processing is typically arranged into a directed graph-like structure. This message is used to record that graph.

Defined in camera_event.proto

Fields:

Field Type Description
nodes CameraNode[]
edges CameraEdge[]

AndroidCameraSessionStats.CameraGraph.CameraNode

Defined in camera_event.proto

Fields:

Field Type Description
node_id int64
input_ids int64[] A list of inputs consumed by this node.
output_ids int64[] A list of outputs produced by this node.
vendor_data_version int32 These fields capture vendor-specific additions to this proto message. In practice vendor_data typically contains a serialized message of the vendor's design, and vendor_data_version is incremented each time there is a backwards incompatible change made to the message.
vendor_data bytes

AndroidCameraSessionStats.CameraGraph.CameraEdge

An adjacency list describing connections between CameraNodes, mapping nodes and their outputs to other nodes that consume them as inputs.

Defined in camera_event.proto

Fields:

Field Type Description
output_node_id int64 The pair of IDs identifying the node and output connected by this edge.
output_id int64
input_node_id int64 The pair of IDs identifying the node and input connected by this edge.
input_id int64
vendor_data_version int32 These fields capture vendor-specific additions to this proto message. In practice vendor_data typically contains a serialized message of the vendor's design, and vendor_data_version is incremented each time there is a backwards incompatible change made to the message.
vendor_data bytes

TranslationTable

Translation rules for the trace processor. See the comments for each rule type for specific meaning.

Defined in translation_table.proto

Fields:

Field Type Description
chrome_histogram ChromeHistorgramTranslationTable
chrome_user_event ChromeUserEventTranslationTable
chrome_performance_mark ChromePerformanceMarkTranslationTable
slice_name SliceNameTranslationTable

ChromeHistorgramTranslationTable

Chrome histogram sample hash -> name translation rules.

Defined in translation_table.proto

Fields:

Field Type Description
hash_to_name string

ChromeUserEventTranslationTable

Chrome user event action hash -> name translation rules.

Defined in translation_table.proto

Fields:

Field Type Description
action_hash_to_name string

ChromePerformanceMarkTranslationTable

Chrome performance mark translation rules.

Defined in translation_table.proto

Fields:

Field Type Description
site_hash_to_name string
mark_hash_to_name string

SliceNameTranslationTable

Raw -> deobfuscated slice name translation rules.

Defined in translation_table.proto

Fields:

Field Type Description
raw_to_deobfuscated_name string

AndroidGameInterventionList

Defined in android_game_intervention_list.proto

Fields:

Field Type Description
game_packages GamePackageInfo[]
parse_error bool True when at least one error occurred when parsing game_mode_intervention.list
read_error bool Failed to open / read game_mode_intervention.list

AndroidGameInterventionList.GamePackageInfo

Defined in android_game_intervention_list.proto

Fields:

Field Type Description
name string
uid uint64
current_mode uint32
game_mode_info GameModeInfo[]

AndroidGameInterventionList.GameModeInfo

Defined in android_game_intervention_list.proto

Fields:

Field Type Description
mode uint32
use_angle bool
resolution_downscale float
fps float

StatsdAtom

One or more statsd atoms. This must continue to match: perfetto/protos/third_party/statsd/shell_data.proto So that we can efficiently add data from statsd directly to the trace.

Defined in statsd_atom.proto

Fields:

Field Type Description
atom Atom[] Atom should be filled with an Atom proto from:
https://cs.android.com/android/platform/superproject/+/master:frameworks/proto_logging/stats/atoms.proto?q=f:stats%2Fatoms.proto$%20message%5C%20Atom We don't reference Atom directly here since we don't want to import Atom.proto and all its transitive dependencies into Perfetto.
atom and timestamp_nanos have the same cardinality
timestamp_nanos int64[]

Atom

Deliberate empty message. See comment on StatsdAtom#atom below.

Defined in statsd_atom.proto

Fields:

Field Type Description

AndroidSystemProperty

Defined in android_system_property.proto

Fields:

Field Type Description
values PropertyValue[]

AndroidSystemProperty.PropertyValue

Defined in android_system_property.proto

Fields:

Field Type Description
name string
value string

EntityStateResidency

Defined in android_entity_state_residency.proto

Fields:

Field Type Description
power_entity_state PowerEntityState[] This is only emitted at the beginning of the trace.
residency StateResidency[]

EntityStateResidency.PowerEntityState

Defined in android_entity_state_residency.proto

Fields:

Field Type Description
entity_index int32 Index corresponding to the entity
state_index int32 Index corresponding to the state
entity_name string Name of the entity. This is device-specific, determined by the PowerStats HAL, and cannot be configured by the user. An example would be "Bluetooth".
state_name string Name of the state. This is device-specific, determined by the PowerStats HAL, and cannot be configured by the user. An example would be "Active".

EntityStateResidency.StateResidency

Defined in android_entity_state_residency.proto

Fields:

Field Type Description
entity_index int32 Index corresponding to PowerEntityState.entity_index
state_index int32 Index corresponding to PowerEntityState.state_index
total_time_in_state_ms uint64 Time since boot that this entity has been in this state
total_state_entry_count uint64 Total number of times since boot that the entity has entered this state
last_entry_timestamp_ms uint64 Timestamp of the last time the entity entered this state

ProfiledFrameSymbols

A symbol field that is emitted after the trace is written. These tables would be appended as the last packets in the trace that the profiler will use, so that the actual trace need not be rewritten to symbolize the profiles.

Defined in profile_common.proto

Fields:

Field Type Description
frame_iid uint64 Use the frame id as the interning key for the symbols.
function_name_id uint64[] key to InternedString
file_name_id uint64[] key to InternedString
line_number uint32[]

ModuleSymbols

Symbols for addresses seen in a module.

Defined in profile_common.proto

Fields:

Field Type Description
path string Fully qualified path to the mapping.
E.g. /system/lib64/libc.so.
build_id string .note.gnu.build-id on Linux (not hex encoded).
uuid on MacOS.
Module GUID on Windows.
address_symbols AddressSymbols[]

AddressSymbols

Symbols for a given address in a module.

Defined in profile_common.proto

Fields:

Field Type Description
address uint64
lines Line[] Source lines that correspond to this address.
These are repeated because when inlining happens, multiple functions' frames can be at a single address. Imagine function Foo calling the std::vector constructor, which gets inlined at 0xf00. We then get both Foo and the std::vector constructor when we symbolize the address.

Line

Defined in profile_common.proto

Fields:

Field Type Description
function_name string
source_file_name string
line_number uint32

DeobfuscationMapping

Defined in deobfuscation.proto

Fields:

Field Type Description
package_name string
version_code int64
obfuscated_classes ObfuscatedClass[]

ObfuscatedClass

Defined in deobfuscation.proto

Fields:

Field Type Description
obfuscated_name string
deobfuscated_name string
obfuscated_members ObfuscatedMember[] fields.
obfuscated_methods ObfuscatedMember[]

ObfuscatedMember

Defined in deobfuscation.proto

Fields:

Field Type Description
obfuscated_name string This is the obfuscated field name relative to the class containing the ObfuscatedMember.
deobfuscated_name string If this is fully qualified (i.e. contains a '.') this is the deobfuscated field name including its class. Otherwise, this is this the unqualified deobfuscated field name relative to the class containing this ObfuscatedMember.

TrackDescriptor

Defines a track for TrackEvents. Slices and instant events on the same track will be nested based on their timestamps, see TrackEvent::Type.

A TrackDescriptor only needs to be emitted by one trace writer / producer and is valid for the entirety of the trace. To ensure the descriptor isn't lost when the ring buffer wraps, it should be reemitted whenever incremental state is cleared.

As a fallback, TrackEvents emitted without an explicit track association will be associated with an implicit trace-global track (uuid = 0), see also |TrackEvent::track_uuid|. It is possible but not necessary to emit a TrackDescriptor for this implicit track.

Defined in track_descriptor.proto

Fields:

Field Type Description
uuid uint64 Unique ID that identifies this track. This ID is global to the whole trace.
Producers should ensure that it is unlikely to clash with IDs emitted by other producers. A value of 0 denotes the implicit trace-global track.
For example, legacy TRACE_EVENT macros may use a hash involving the async event id + id_scope, pid, and/or tid to compute this ID.
parent_uuid uint64 A parent track reference can be used to describe relationships between tracks. For example, to define an asynchronous track which is scoped to a specific process, specify the uuid for that process's process track here.
Similarly, to associate a COUNTER_THREAD_TIME_NS counter track with a thread, specify the uuid for that thread's thread track here.
name string Name of the track. Optional - if unspecified, it may be derived from the process/thread name (process/thread tracks), the first event's name (async tracks), or counter name (counter tracks).
process ProcessDescriptor Associate the track with a process, making it the process-global track.
There should only be one such track per process (usually for instant events; trace processor uses this fact to detect pid reuse). If you need more (e.g. for asynchronous events), create child tracks using parent_uuid.
Trace processor will merge events on a process track with slice-type events from other sources (e.g. ftrace) for the same process into a single timeline view.
chrome_process ChromeProcessDescriptor
thread ThreadDescriptor Associate the track with a thread, indicating that the track's events describe synchronous code execution on the thread. There should only be one such track per thread (trace processor uses this fact to detect tid reuse).
Trace processor will merge events on a thread track with slice-type events from other sources (e.g. ftrace) for the same thread into a single timeline view.
chrome_thread ChromeThreadDescriptor
counter CounterDescriptor Descriptor for a counter track. If set, the track will only support TYPE_COUNTER TrackEvents (and values provided via TrackEvent's extra_counter_values).
disallow_merging_with_system_tracks bool If true, forces Trace Processor to use separate tracks for track events and system events for the same thread.
Track events timestamps in Chrome have microsecond resolution, while system events use nanoseconds. It results in broken event nesting when track events and system events share a track.

ProcessDescriptor

Describes a process's attributes. Emitted as part of a TrackDescriptor, usually by the process's main thread.

Defined in process_descriptor.proto

Fields:

Field Type Description
pid int32
cmdline string[]
process_name string
process_priority int32
start_timestamp_ns int64 Process start time in nanoseconds.
The timestamp refers to the trace clock by default. Other clock IDs provided in TracePacket are not supported.
chrome_process_type ChromeProcessType
legacy_sort_index int32 To support old UI. New UI should determine default sorting by process_type.
process_labels string[] Labels can be used to further describe properties of the work performed by the process. For example, these can be used by Chrome renderer process to provide titles of frames being rendered.

ProcessDescriptor.ChromeProcessType

See chromium's content::ProcessType.

Defined in process_descriptor.proto

Enum values:

Name Value Description
PROCESS_UNSPECIFIED 0
PROCESS_BROWSER 1
PROCESS_RENDERER 2
PROCESS_UTILITY 3
PROCESS_ZYGOTE 4
PROCESS_SANDBOX_HELPER 5
PROCESS_GPU 6
PROCESS_PPAPI_PLUGIN 7
PROCESS_PPAPI_BROKER 8

ChromeProcessDescriptor

Describes the attributes for a Chrome process. Must be paired with a ProcessDescriptor in the same TrackDescriptor.

Defined in chrome_process_descriptor.proto

Fields:

Field Type Description
process_type ProcessType
process_priority int32
legacy_sort_index int32 To support old UI. New UI should determine default sorting by process_type.
host_app_package_name string Name of the hosting app for WebView. Used to match renderer processes to their hosting apps.
crash_trace_id uint64 The ID to link crashes to trace.
Notes:
* The ID is per process. So, each trace may contain many IDs, and you need to look for the ID from crashed process to find the crash report.
* Having a "chrome-trace-id" in crash doesn't necessarily mean we can get an uploaded trace, since uploads could have failed.
* On the other hand, if there was a crash during the session and trace was uploaded, it is very likely to find a crash report with the trace ID.
* This is not crash ID or trace ID. It is just a random 64-bit number recorded in both traces and crashes. It is possible to have collisions, though very rare.

ChromeProcessDescriptor.ProcessType

See chromium's content::ProcessType.

Defined in chrome_process_descriptor.proto

Enum values:

Name Value Description
PROCESS_UNSPECIFIED 0
PROCESS_BROWSER 1
PROCESS_RENDERER 2
PROCESS_UTILITY 3
PROCESS_ZYGOTE 4
PROCESS_SANDBOX_HELPER 5
PROCESS_GPU 6
PROCESS_PPAPI_PLUGIN 7
PROCESS_PPAPI_BROKER 8
PROCESS_SERVICE_NETWORK 9
PROCESS_SERVICE_TRACING 10
PROCESS_SERVICE_STORAGE 11
PROCESS_SERVICE_AUDIO 12
PROCESS_SERVICE_DATA_DECODER 13
PROCESS_SERVICE_UTIL_WIN 14
PROCESS_SERVICE_PROXY_RESOLVER 15
PROCESS_SERVICE_CDM 16
PROCESS_SERVICE_VIDEO_CAPTURE 17
PROCESS_SERVICE_UNZIPPER 18
PROCESS_SERVICE_MIRRORING 19
PROCESS_SERVICE_FILEPATCHER 20
PROCESS_SERVICE_TTS 21
PROCESS_SERVICE_PRINTING 22
PROCESS_SERVICE_QUARANTINE 23
PROCESS_SERVICE_CROS_LOCALSEARCH 24
PROCESS_SERVICE_CROS_ASSISTANT_AUDIO_DECODER 25
PROCESS_SERVICE_FILEUTIL 26
PROCESS_SERVICE_PRINTCOMPOSITOR 27
PROCESS_SERVICE_PAINTPREVIEW 28
PROCESS_SERVICE_SPEECHRECOGNITION 29
PROCESS_SERVICE_XRDEVICE 30
PROCESS_SERVICE_READICON 31
PROCESS_SERVICE_LANGUAGEDETECTION 32
PROCESS_SERVICE_SHARING 33
PROCESS_SERVICE_MEDIAPARSER 34
PROCESS_SERVICE_QRCODEGENERATOR 35
PROCESS_SERVICE_PROFILEIMPORT 36
PROCESS_SERVICE_IME 37
PROCESS_SERVICE_RECORDING 38
PROCESS_SERVICE_SHAPEDETECTION 39
PROCESS_RENDERER_EXTENSION 40
PROCESS_SERVICE_MEDIA_FOUNDATION 41

ThreadDescriptor

Describes a thread's attributes. Emitted as part of a TrackDescriptor, usually by the thread's trace writer.

Defined in thread_descriptor.proto

Fields:

Field Type Description
pid int32
tid int32
thread_name string
chrome_thread_type ChromeThreadType
reference_timestamp_us int64 Deprecated. Use ClockSnapshot in combination with TracePacket's timestamp and timestamp_clock_id fields instead.
reference_thread_time_us int64 Absolute reference values. Clock values in subsequent TrackEvents can be encoded accumulatively and relative to these. This reduces their var-int encoding size.
reference_thread_instruction_count int64
legacy_sort_index int32 To support old UI. New UI should determine default sorting by thread_type.

ThreadDescriptor.ChromeThreadType

Defined in thread_descriptor.proto

Enum values:

Name Value Description
CHROME_THREAD_UNSPECIFIED 0
CHROME_THREAD_MAIN 1
CHROME_THREAD_IO 2
CHROME_THREAD_POOL_BG_WORKER 3 Scheduler:
CHROME_THREAD_POOL_FG_WORKER 4
CHROME_THREAD_POOL_FB_BLOCKING 5
CHROME_THREAD_POOL_BG_BLOCKING 6
CHROME_THREAD_POOL_SERVICE 7
CHROME_THREAD_COMPOSITOR 8 Compositor:
CHROME_THREAD_VIZ_COMPOSITOR 9
CHROME_THREAD_COMPOSITOR_WORKER 10
CHROME_THREAD_SERVICE_WORKER 11 Renderer:
CHROME_THREAD_MEMORY_INFRA 50 Tracing related threads:
CHROME_THREAD_SAMPLING_PROFILER 51

ChromeThreadDescriptor

Describes a Chrome thread's attributes. Emitted as part of a TrackDescriptor, usually by the thread's trace writer. Must be paired with a ThreadDescriptor in the same TrackDescriptor.

Defined in chrome_thread_descriptor.proto

Fields:

Field Type Description
thread_type ThreadType
legacy_sort_index int32 To support old UI. New UI should determine default sorting by thread_type.

ChromeThreadDescriptor.ThreadType

Defined in chrome_thread_descriptor.proto

Enum values:

Name Value Description
THREAD_UNSPECIFIED 0
THREAD_MAIN 1
THREAD_IO 2
THREAD_POOL_BG_WORKER 3
THREAD_POOL_FG_WORKER 4
THREAD_POOL_FG_BLOCKING 5
THREAD_POOL_BG_BLOCKING 6
THREAD_POOL_SERVICE 7
THREAD_COMPOSITOR 8
THREAD_VIZ_COMPOSITOR 9
THREAD_COMPOSITOR_WORKER 10
THREAD_SERVICE_WORKER 11
THREAD_NETWORK_SERVICE 12
THREAD_CHILD_IO 13
THREAD_BROWSER_IO 14
THREAD_BROWSER_MAIN 15
THREAD_RENDERER_MAIN 16
THREAD_UTILITY_MAIN 17
THREAD_GPU_MAIN 18
THREAD_CACHE_BLOCKFILE 19
THREAD_MEDIA 20
THREAD_AUDIO_OUTPUTDEVICE 21
THREAD_AUDIO_INPUTDEVICE 22
THREAD_GPU_MEMORY 23
THREAD_GPU_VSYNC 24
THREAD_DXA_VIDEODECODER 25
THREAD_BROWSER_WATCHDOG 26
THREAD_WEBRTC_NETWORK 27
THREAD_WINDOW_OWNER 28
THREAD_WEBRTC_SIGNALING 29
THREAD_WEBRTC_WORKER 30
THREAD_PPAPI_MAIN 31
THREAD_GPU_WATCHDOG 32
THREAD_SWAPPER 33
THREAD_GAMEPAD_POLLING 34
THREAD_WEBCRYPTO 35
THREAD_DATABASE 36
THREAD_PROXYRESOLVER 37
THREAD_DEVTOOLSADB 38
THREAD_NETWORKCONFIGWATCHER 39
THREAD_WASAPI_RENDER 40
THREAD_LOADER_LOCK_SAMPLER 41
THREAD_MEMORY_INFRA 50
THREAD_SAMPLING_PROFILER 51

CounterDescriptor

Defines properties of a counter track, e.g. for built-in counters (thread time, instruction count, ..) or user-specified counters (e.g. memory usage of a specific app component).

Counter tracks only support TYPE_COUNTER track events, which specify new values for the counter. For counters that require per-slice values, counter values can instead be provided in a more efficient encoding via TrackEvent's extra_counter_track_uuids and extra_counter_values fields. However, slice-type events cannot be emitted onto a counter track.

Values for counters that are only emitted on a single packet sequence can optionally be delta-encoded, see is_incremental.

Defined in counter_descriptor.proto

Fields:

Field Type Description
type BuiltinCounterType For built-in counters (e.g. thread time). Custom user-specified counters (e.g. those emitted by TRACE_COUNTER macros of the client library) shouldn't set this, and instead provide a counter name via TrackDescriptor.
categories string[] Names of categories of the counter (usually for user-specified counters).
In the client library, categories are a way to turn groups of individual counters (or events) on or off.
unit Unit Type of the counter's values. Built-in counters imply a value for this field.
unit_name string In order to use a unit not defined as a part of Unit, a free-form unit name can be used instead.
unit_multiplier int64 Multiplication factor of this counter's values, e.g. to supply COUNTER_THREAD_TIME_NS timestamps in microseconds instead.
is_incremental bool Whether values for this counter are provided as delta values. Only supported for counters that are emitted on a single packet-sequence (e.g.
thread time). Counter values in subsequent packets on the current packet sequence will be interpreted as delta values from the sequence's most recent value for the counter. When incremental state is cleared, the counter value is considered to be reset to 0. Thus, the first value after incremental state is cleared is effectively an absolute value.

CounterDescriptor.BuiltinCounterType

Built-in counters, usually with special meaning in the client library, trace processor, legacy JSON format, or UI. Trace processor will infer a track name from the enum value if none is provided in TrackDescriptor.

Defined in counter_descriptor.proto

Enum values:

Name Value Description
COUNTER_UNSPECIFIED 0
COUNTER_THREAD_TIME_NS 1 implies UNIT_TIME_NS.
COUNTER_THREAD_INSTRUCTION_COUNT 2 implies UNIT_COUNT.

CounterDescriptor.Unit

Type of the values for the counters - to supply lower granularity units, see also unit_multiplier.

Defined in counter_descriptor.proto

Enum values:

Name Value Description
UNIT_UNSPECIFIED 0
UNIT_TIME_NS 1
UNIT_COUNT 2
UNIT_SIZE_BYTES 3

FtraceEventBundle

The result of tracing one or more ftrace data pages from a single per-cpu kernel ring buffer. If collating multiple pages' worth of events, all of them come from contiguous pages, with no kernel data loss in between.

Defined in ftrace_event_bundle.proto

Fields:

Field Type Description
cpu uint32
event FtraceEvent[]
lost_events bool Set to true if there was data loss between the last time we've read from the corresponding per-cpu kernel buffer, and the earliest event recorded in this bundle.
compact_sched CompactSched
ftrace_clock FtraceClock traced_probes always sets the ftrace_clock to "boot". That is not available in older kernels (v3.x). In that case we fallback on "global" or "local".
When we do that, we report the fallback clock in each bundle so we can do proper clock syncing at parsing time in TraceProcessor. We cannot use the TracePacket timestamp_clock_id because: (1) there is no per-packet timestamp for ftrace bundles; (2) "global" does not match CLOCK_MONOTONIC.
Having a dedicated and explicit flag allows us to correct further misakes in future by looking at the kernel version.
This field has been introduced in perfetto v19 / Android T (13).
This field is omitted when the ftrace clock is just "boot", as that is the default assumption (and for consistency with the past).
ftrace_timestamp int64 The timestamp according to the ftrace clock, taken at the same instant as boot_timestamp. This is used to sync ftrace events when a non-boot clock is used as the ftrace clock. We don't use the ClockSnapshot packet because the ftrace global/local clocks don't match any of the clock_gettime domains and can be only read by traced_probes.
Only set when ftrace_clock != FTRACE_CLOCK_UNSPECIFIED.
Implementation note: Populated by reading the 'now ts:' field in tracefs/per_cpu/cpuX/stat.
boot_timestamp int64 The timestamp according to CLOCK_BOOTTIME, taken at the same instant as ftrace_timestamp. See documentation of ftrace_timestamp for more info.
Only set when ftrace_clock != FTRACE_CLOCK_UNSPECIFIED.
error FtraceError[]

FtraceEvent

Defined in ftrace_event.proto

Fields:

Field Type Description
timestamp uint64 Timestamp in nanoseconds using .../tracing/trace_clock.
pid uint32 Kernel pid (do not confuse with userspace pid aka tgid).
common_flags uint32 Not populated in actual traces. Wire format might change.
Placeholder declaration so that the ftrace parsing code accepts the existence of this common field. If this becomes needed for all events:
consider merging with common_preempt_count to avoid extra proto tags.
print PrintFtraceEvent
sched_switch SchedSwitchFtraceEvent
cpu_frequency CpuFrequencyFtraceEvent removed field with id 5; removed field with id 6; removed field with id 7; removed field with id 8; removed field with id 9; removed field with id 10;
cpu_frequency_limits CpuFrequencyLimitsFtraceEvent
cpu_idle CpuIdleFtraceEvent
clock_enable ClockEnableFtraceEvent
clock_disable ClockDisableFtraceEvent
clock_set_rate ClockSetRateFtraceEvent
sched_wakeup SchedWakeupFtraceEvent
sched_blocked_reason SchedBlockedReasonFtraceEvent
sched_cpu_hotplug SchedCpuHotplugFtraceEvent
sched_waking SchedWakingFtraceEvent
ipi_entry IpiEntryFtraceEvent
ipi_exit IpiExitFtraceEvent
ipi_raise IpiRaiseFtraceEvent
softirq_entry SoftirqEntryFtraceEvent
softirq_exit SoftirqExitFtraceEvent
softirq_raise SoftirqRaiseFtraceEvent
i2c_read I2cReadFtraceEvent
i2c_write I2cWriteFtraceEvent
i2c_result I2cResultFtraceEvent
i2c_reply I2cReplyFtraceEvent
smbus_read SmbusReadFtraceEvent
smbus_write SmbusWriteFtraceEvent
smbus_result SmbusResultFtraceEvent
smbus_reply SmbusReplyFtraceEvent
lowmemory_kill LowmemoryKillFtraceEvent
irq_handler_entry IrqHandlerEntryFtraceEvent
irq_handler_exit IrqHandlerExitFtraceEvent
sync_pt SyncPtFtraceEvent
sync_timeline SyncTimelineFtraceEvent
sync_wait SyncWaitFtraceEvent
ext4_da_write_begin Ext4DaWriteBeginFtraceEvent
ext4_da_write_end Ext4DaWriteEndFtraceEvent
ext4_sync_file_enter Ext4SyncFileEnterFtraceEvent
ext4_sync_file_exit Ext4SyncFileExitFtraceEvent
block_rq_issue BlockRqIssueFtraceEvent
mm_vmscan_direct_reclaim_begin MmVmscanDirectReclaimBeginFtraceEvent
mm_vmscan_direct_reclaim_end MmVmscanDirectReclaimEndFtraceEvent
mm_vmscan_kswapd_wake MmVmscanKswapdWakeFtraceEvent
mm_vmscan_kswapd_sleep MmVmscanKswapdSleepFtraceEvent
binder_transaction BinderTransactionFtraceEvent
binder_transaction_received BinderTransactionReceivedFtraceEvent
binder_set_priority BinderSetPriorityFtraceEvent
binder_lock BinderLockFtraceEvent
binder_locked BinderLockedFtraceEvent
binder_unlock BinderUnlockFtraceEvent
workqueue_activate_work WorkqueueActivateWorkFtraceEvent
workqueue_execute_end WorkqueueExecuteEndFtraceEvent
workqueue_execute_start WorkqueueExecuteStartFtraceEvent
workqueue_queue_work WorkqueueQueueWorkFtraceEvent
regulator_disable RegulatorDisableFtraceEvent
regulator_disable_complete RegulatorDisableCompleteFtraceEvent
regulator_enable RegulatorEnableFtraceEvent
regulator_enable_complete RegulatorEnableCompleteFtraceEvent
regulator_enable_delay RegulatorEnableDelayFtraceEvent
regulator_set_voltage RegulatorSetVoltageFtraceEvent
regulator_set_voltage_complete RegulatorSetVoltageCompleteFtraceEvent
cgroup_attach_task CgroupAttachTaskFtraceEvent
cgroup_mkdir CgroupMkdirFtraceEvent
cgroup_remount CgroupRemountFtraceEvent
cgroup_rmdir CgroupRmdirFtraceEvent
cgroup_transfer_tasks CgroupTransferTasksFtraceEvent
cgroup_destroy_root CgroupDestroyRootFtraceEvent
cgroup_release CgroupReleaseFtraceEvent
cgroup_rename CgroupRenameFtraceEvent
cgroup_setup_root CgroupSetupRootFtraceEvent
mdp_cmd_kickoff MdpCmdKickoffFtraceEvent
mdp_commit MdpCommitFtraceEvent
mdp_perf_set_ot MdpPerfSetOtFtraceEvent
mdp_sspp_change MdpSsppChangeFtraceEvent
tracing_mark_write TracingMarkWriteFtraceEvent
mdp_cmd_pingpong_done MdpCmdPingpongDoneFtraceEvent
mdp_compare_bw MdpCompareBwFtraceEvent
mdp_perf_set_panic_luts MdpPerfSetPanicLutsFtraceEvent
mdp_sspp_set MdpSsppSetFtraceEvent
mdp_cmd_readptr_done MdpCmdReadptrDoneFtraceEvent
mdp_misr_crc MdpMisrCrcFtraceEvent
mdp_perf_set_qos_luts MdpPerfSetQosLutsFtraceEvent
mdp_trace_counter MdpTraceCounterFtraceEvent
mdp_cmd_release_bw MdpCmdReleaseBwFtraceEvent
mdp_mixer_update MdpMixerUpdateFtraceEvent
mdp_perf_set_wm_levels MdpPerfSetWmLevelsFtraceEvent
mdp_video_underrun_done MdpVideoUnderrunDoneFtraceEvent
mdp_cmd_wait_pingpong MdpCmdWaitPingpongFtraceEvent
mdp_perf_prefill_calc MdpPerfPrefillCalcFtraceEvent
mdp_perf_update_bus MdpPerfUpdateBusFtraceEvent
rotator_bw_ao_as_context RotatorBwAoAsContextFtraceEvent
mm_filemap_add_to_page_cache MmFilemapAddToPageCacheFtraceEvent
mm_filemap_delete_from_page_cache MmFilemapDeleteFromPageCacheFtraceEvent
mm_compaction_begin MmCompactionBeginFtraceEvent
mm_compaction_defer_compaction MmCompactionDeferCompactionFtraceEvent
mm_compaction_deferred MmCompactionDeferredFtraceEvent
mm_compaction_defer_reset MmCompactionDeferResetFtraceEvent
mm_compaction_end MmCompactionEndFtraceEvent
mm_compaction_finished MmCompactionFinishedFtraceEvent
mm_compaction_isolate_freepages MmCompactionIsolateFreepagesFtraceEvent
mm_compaction_isolate_migratepages MmCompactionIsolateMigratepagesFtraceEvent
mm_compaction_kcompactd_sleep MmCompactionKcompactdSleepFtraceEvent
mm_compaction_kcompactd_wake MmCompactionKcompactdWakeFtraceEvent
mm_compaction_migratepages MmCompactionMigratepagesFtraceEvent
mm_compaction_suitable MmCompactionSuitableFtraceEvent
mm_compaction_try_to_compact_pages MmCompactionTryToCompactPagesFtraceEvent
mm_compaction_wakeup_kcompactd MmCompactionWakeupKcompactdFtraceEvent
suspend_resume SuspendResumeFtraceEvent
sched_wakeup_new SchedWakeupNewFtraceEvent
block_bio_backmerge BlockBioBackmergeFtraceEvent
block_bio_bounce BlockBioBounceFtraceEvent
block_bio_complete BlockBioCompleteFtraceEvent
block_bio_frontmerge BlockBioFrontmergeFtraceEvent
block_bio_queue BlockBioQueueFtraceEvent
block_bio_remap BlockBioRemapFtraceEvent
block_dirty_buffer BlockDirtyBufferFtraceEvent
block_getrq BlockGetrqFtraceEvent
block_plug BlockPlugFtraceEvent
block_rq_abort BlockRqAbortFtraceEvent
block_rq_complete BlockRqCompleteFtraceEvent
block_rq_insert BlockRqInsertFtraceEvent
block_rq_remap BlockRqRemapFtraceEvent removed field with id 127;
block_rq_requeue BlockRqRequeueFtraceEvent
block_sleeprq BlockSleeprqFtraceEvent
block_split BlockSplitFtraceEvent
block_touch_buffer BlockTouchBufferFtraceEvent
block_unplug BlockUnplugFtraceEvent
ext4_alloc_da_blocks Ext4AllocDaBlocksFtraceEvent
ext4_allocate_blocks Ext4AllocateBlocksFtraceEvent
ext4_allocate_inode Ext4AllocateInodeFtraceEvent
ext4_begin_ordered_truncate Ext4BeginOrderedTruncateFtraceEvent
ext4_collapse_range Ext4CollapseRangeFtraceEvent
ext4_da_release_space Ext4DaReleaseSpaceFtraceEvent
ext4_da_reserve_space Ext4DaReserveSpaceFtraceEvent
ext4_da_update_reserve_space Ext4DaUpdateReserveSpaceFtraceEvent
ext4_da_write_pages Ext4DaWritePagesFtraceEvent
ext4_da_write_pages_extent Ext4DaWritePagesExtentFtraceEvent
ext4_direct_IO_enter Ext4DirectIOEnterFtraceEvent
ext4_direct_IO_exit Ext4DirectIOExitFtraceEvent
ext4_discard_blocks Ext4DiscardBlocksFtraceEvent
ext4_discard_preallocations Ext4DiscardPreallocationsFtraceEvent
ext4_drop_inode Ext4DropInodeFtraceEvent
ext4_es_cache_extent Ext4EsCacheExtentFtraceEvent
ext4_es_find_delayed_extent_range_enter Ext4EsFindDelayedExtentRangeEnterFtraceEvent
ext4_es_find_delayed_extent_range_exit Ext4EsFindDelayedExtentRangeExitFtraceEvent
ext4_es_insert_extent Ext4EsInsertExtentFtraceEvent
ext4_es_lookup_extent_enter Ext4EsLookupExtentEnterFtraceEvent
ext4_es_lookup_extent_exit Ext4EsLookupExtentExitFtraceEvent
ext4_es_remove_extent Ext4EsRemoveExtentFtraceEvent
ext4_es_shrink Ext4EsShrinkFtraceEvent
ext4_es_shrink_count Ext4EsShrinkCountFtraceEvent
ext4_es_shrink_scan_enter Ext4EsShrinkScanEnterFtraceEvent
ext4_es_shrink_scan_exit Ext4EsShrinkScanExitFtraceEvent
ext4_evict_inode Ext4EvictInodeFtraceEvent
ext4_ext_convert_to_initialized_enter Ext4ExtConvertToInitializedEnterFtraceEvent
ext4_ext_convert_to_initialized_fastpath Ext4ExtConvertToInitializedFastpathFtraceEvent
ext4_ext_handle_unwritten_extents Ext4ExtHandleUnwrittenExtentsFtraceEvent
ext4_ext_in_cache Ext4ExtInCacheFtraceEvent
ext4_ext_load_extent Ext4ExtLoadExtentFtraceEvent
ext4_ext_map_blocks_enter Ext4ExtMapBlocksEnterFtraceEvent
ext4_ext_map_blocks_exit Ext4ExtMapBlocksExitFtraceEvent
ext4_ext_put_in_cache Ext4ExtPutInCacheFtraceEvent
ext4_ext_remove_space Ext4ExtRemoveSpaceFtraceEvent
ext4_ext_remove_space_done Ext4ExtRemoveSpaceDoneFtraceEvent
ext4_ext_rm_idx Ext4ExtRmIdxFtraceEvent
ext4_ext_rm_leaf Ext4ExtRmLeafFtraceEvent
ext4_ext_show_extent Ext4ExtShowExtentFtraceEvent
ext4_fallocate_enter Ext4FallocateEnterFtraceEvent
ext4_fallocate_exit Ext4FallocateExitFtraceEvent
ext4_find_delalloc_range Ext4FindDelallocRangeFtraceEvent
ext4_forget Ext4ForgetFtraceEvent
ext4_free_blocks Ext4FreeBlocksFtraceEvent
ext4_free_inode Ext4FreeInodeFtraceEvent
ext4_get_implied_cluster_alloc_exit Ext4GetImpliedClusterAllocExitFtraceEvent
ext4_get_reserved_cluster_alloc Ext4GetReservedClusterAllocFtraceEvent
ext4_ind_map_blocks_enter Ext4IndMapBlocksEnterFtraceEvent
ext4_ind_map_blocks_exit Ext4IndMapBlocksExitFtraceEvent
ext4_insert_range Ext4InsertRangeFtraceEvent
ext4_invalidatepage Ext4InvalidatepageFtraceEvent
ext4_journal_start Ext4JournalStartFtraceEvent
ext4_journal_start_reserved Ext4JournalStartReservedFtraceEvent
ext4_journalled_invalidatepage Ext4JournalledInvalidatepageFtraceEvent
ext4_journalled_write_end Ext4JournalledWriteEndFtraceEvent
ext4_load_inode Ext4LoadInodeFtraceEvent
ext4_load_inode_bitmap Ext4LoadInodeBitmapFtraceEvent
ext4_mark_inode_dirty Ext4MarkInodeDirtyFtraceEvent
ext4_mb_bitmap_load Ext4MbBitmapLoadFtraceEvent
ext4_mb_buddy_bitmap_load Ext4MbBuddyBitmapLoadFtraceEvent
ext4_mb_discard_preallocations Ext4MbDiscardPreallocationsFtraceEvent
ext4_mb_new_group_pa Ext4MbNewGroupPaFtraceEvent
ext4_mb_new_inode_pa Ext4MbNewInodePaFtraceEvent
ext4_mb_release_group_pa Ext4MbReleaseGroupPaFtraceEvent
ext4_mb_release_inode_pa Ext4MbReleaseInodePaFtraceEvent
ext4_mballoc_alloc Ext4MballocAllocFtraceEvent
ext4_mballoc_discard Ext4MballocDiscardFtraceEvent
ext4_mballoc_free Ext4MballocFreeFtraceEvent
ext4_mballoc_prealloc Ext4MballocPreallocFtraceEvent
ext4_other_inode_update_time Ext4OtherInodeUpdateTimeFtraceEvent
ext4_punch_hole Ext4PunchHoleFtraceEvent
ext4_read_block_bitmap_load Ext4ReadBlockBitmapLoadFtraceEvent
ext4_readpage Ext4ReadpageFtraceEvent
ext4_releasepage Ext4ReleasepageFtraceEvent
ext4_remove_blocks Ext4RemoveBlocksFtraceEvent
ext4_request_blocks Ext4RequestBlocksFtraceEvent
ext4_request_inode Ext4RequestInodeFtraceEvent
ext4_sync_fs Ext4SyncFsFtraceEvent
ext4_trim_all_free Ext4TrimAllFreeFtraceEvent
ext4_trim_extent Ext4TrimExtentFtraceEvent
ext4_truncate_enter Ext4TruncateEnterFtraceEvent
ext4_truncate_exit Ext4TruncateExitFtraceEvent
ext4_unlink_enter Ext4UnlinkEnterFtraceEvent
ext4_unlink_exit Ext4UnlinkExitFtraceEvent
ext4_write_begin Ext4WriteBeginFtraceEvent
ext4_write_end Ext4WriteEndFtraceEvent removed field with id 220; removed field with id 221; removed field with id 222; removed field with id 223; removed field with id 224; removed field with id 225; removed field with id 226; removed field with id 227; removed field with id 228; removed field with id 229;
ext4_writepage Ext4WritepageFtraceEvent
ext4_writepages Ext4WritepagesFtraceEvent
ext4_writepages_result Ext4WritepagesResultFtraceEvent
ext4_zero_range Ext4ZeroRangeFtraceEvent
task_newtask TaskNewtaskFtraceEvent
task_rename TaskRenameFtraceEvent
sched_process_exec SchedProcessExecFtraceEvent
sched_process_exit SchedProcessExitFtraceEvent
sched_process_fork SchedProcessForkFtraceEvent
sched_process_free SchedProcessFreeFtraceEvent
sched_process_hang SchedProcessHangFtraceEvent
sched_process_wait SchedProcessWaitFtraceEvent
f2fs_do_submit_bio F2fsDoSubmitBioFtraceEvent
f2fs_evict_inode F2fsEvictInodeFtraceEvent
f2fs_fallocate F2fsFallocateFtraceEvent
f2fs_get_data_block F2fsGetDataBlockFtraceEvent
f2fs_get_victim F2fsGetVictimFtraceEvent
f2fs_iget F2fsIgetFtraceEvent
f2fs_iget_exit F2fsIgetExitFtraceEvent
f2fs_new_inode F2fsNewInodeFtraceEvent
f2fs_readpage F2fsReadpageFtraceEvent
f2fs_reserve_new_block F2fsReserveNewBlockFtraceEvent
f2fs_set_page_dirty F2fsSetPageDirtyFtraceEvent
f2fs_submit_write_page F2fsSubmitWritePageFtraceEvent
f2fs_sync_file_enter F2fsSyncFileEnterFtraceEvent
f2fs_sync_file_exit F2fsSyncFileExitFtraceEvent
f2fs_sync_fs F2fsSyncFsFtraceEvent
f2fs_truncate F2fsTruncateFtraceEvent
f2fs_truncate_blocks_enter F2fsTruncateBlocksEnterFtraceEvent
f2fs_truncate_blocks_exit F2fsTruncateBlocksExitFtraceEvent
f2fs_truncate_data_blocks_range F2fsTruncateDataBlocksRangeFtraceEvent
f2fs_truncate_inode_blocks_enter F2fsTruncateInodeBlocksEnterFtraceEvent
f2fs_truncate_inode_blocks_exit F2fsTruncateInodeBlocksExitFtraceEvent
f2fs_truncate_node F2fsTruncateNodeFtraceEvent
f2fs_truncate_nodes_enter F2fsTruncateNodesEnterFtraceEvent
f2fs_truncate_nodes_exit F2fsTruncateNodesExitFtraceEvent
f2fs_truncate_partial_nodes F2fsTruncatePartialNodesFtraceEvent
f2fs_unlink_enter F2fsUnlinkEnterFtraceEvent
f2fs_unlink_exit F2fsUnlinkExitFtraceEvent
f2fs_vm_page_mkwrite F2fsVmPageMkwriteFtraceEvent
f2fs_write_begin F2fsWriteBeginFtraceEvent
f2fs_write_checkpoint F2fsWriteCheckpointFtraceEvent
f2fs_write_end F2fsWriteEndFtraceEvent
alloc_pages_iommu_end AllocPagesIommuEndFtraceEvent
alloc_pages_iommu_fail AllocPagesIommuFailFtraceEvent
alloc_pages_iommu_start AllocPagesIommuStartFtraceEvent
alloc_pages_sys_end AllocPagesSysEndFtraceEvent
alloc_pages_sys_fail AllocPagesSysFailFtraceEvent
alloc_pages_sys_start AllocPagesSysStartFtraceEvent
dma_alloc_contiguous_retry DmaAllocContiguousRetryFtraceEvent
iommu_map_range IommuMapRangeFtraceEvent
iommu_sec_ptbl_map_range_end IommuSecPtblMapRangeEndFtraceEvent
iommu_sec_ptbl_map_range_start IommuSecPtblMapRangeStartFtraceEvent
ion_alloc_buffer_end IonAllocBufferEndFtraceEvent
ion_alloc_buffer_fail IonAllocBufferFailFtraceEvent
ion_alloc_buffer_fallback IonAllocBufferFallbackFtraceEvent
ion_alloc_buffer_start IonAllocBufferStartFtraceEvent
ion_cp_alloc_retry IonCpAllocRetryFtraceEvent
ion_cp_secure_buffer_end IonCpSecureBufferEndFtraceEvent
ion_cp_secure_buffer_start IonCpSecureBufferStartFtraceEvent
ion_prefetching IonPrefetchingFtraceEvent
ion_secure_cma_add_to_pool_end IonSecureCmaAddToPoolEndFtraceEvent
ion_secure_cma_add_to_pool_start IonSecureCmaAddToPoolStartFtraceEvent
ion_secure_cma_allocate_end IonSecureCmaAllocateEndFtraceEvent
ion_secure_cma_allocate_start IonSecureCmaAllocateStartFtraceEvent
ion_secure_cma_shrink_pool_end IonSecureCmaShrinkPoolEndFtraceEvent
ion_secure_cma_shrink_pool_start IonSecureCmaShrinkPoolStartFtraceEvent
kfree KfreeFtraceEvent
kmalloc KmallocFtraceEvent
kmalloc_node KmallocNodeFtraceEvent
kmem_cache_alloc KmemCacheAllocFtraceEvent
kmem_cache_alloc_node KmemCacheAllocNodeFtraceEvent
kmem_cache_free KmemCacheFreeFtraceEvent
migrate_pages_end MigratePagesEndFtraceEvent
migrate_pages_start MigratePagesStartFtraceEvent
migrate_retry MigrateRetryFtraceEvent
mm_page_alloc MmPageAllocFtraceEvent
mm_page_alloc_extfrag MmPageAllocExtfragFtraceEvent
mm_page_alloc_zone_locked MmPageAllocZoneLockedFtraceEvent
mm_page_free MmPageFreeFtraceEvent
mm_page_free_batched MmPageFreeBatchedFtraceEvent
mm_page_pcpu_drain MmPagePcpuDrainFtraceEvent
rss_stat RssStatFtraceEvent
ion_heap_shrink IonHeapShrinkFtraceEvent
ion_heap_grow IonHeapGrowFtraceEvent
fence_init FenceInitFtraceEvent
fence_destroy FenceDestroyFtraceEvent
fence_enable_signal FenceEnableSignalFtraceEvent
fence_signaled FenceSignaledFtraceEvent
clk_enable ClkEnableFtraceEvent
clk_disable ClkDisableFtraceEvent
clk_set_rate ClkSetRateFtraceEvent
binder_transaction_alloc_buf BinderTransactionAllocBufFtraceEvent
signal_deliver SignalDeliverFtraceEvent
signal_generate SignalGenerateFtraceEvent
oom_score_adj_update OomScoreAdjUpdateFtraceEvent
generic GenericFtraceEvent
mm_event_record MmEventRecordFtraceEvent
sys_enter SysEnterFtraceEvent
sys_exit SysExitFtraceEvent
zero ZeroFtraceEvent
gpu_frequency GpuFrequencyFtraceEvent
sde_tracing_mark_write SdeTracingMarkWriteFtraceEvent
mark_victim MarkVictimFtraceEvent
ion_stat IonStatFtraceEvent
ion_buffer_create IonBufferCreateFtraceEvent
ion_buffer_destroy IonBufferDestroyFtraceEvent
scm_call_start ScmCallStartFtraceEvent
scm_call_end ScmCallEndFtraceEvent
gpu_mem_total GpuMemTotalFtraceEvent
thermal_temperature ThermalTemperatureFtraceEvent
cdev_update CdevUpdateFtraceEvent
cpuhp_exit CpuhpExitFtraceEvent
cpuhp_multi_enter CpuhpMultiEnterFtraceEvent
cpuhp_enter CpuhpEnterFtraceEvent
cpuhp_latency CpuhpLatencyFtraceEvent
fastrpc_dma_stat FastrpcDmaStatFtraceEvent
dpu_tracing_mark_write DpuTracingMarkWriteFtraceEvent
g2d_tracing_mark_write G2dTracingMarkWriteFtraceEvent
mali_tracing_mark_write MaliTracingMarkWriteFtraceEvent
dma_heap_stat DmaHeapStatFtraceEvent
cpuhp_pause CpuhpPauseFtraceEvent
sched_pi_setprio SchedPiSetprioFtraceEvent
sde_sde_evtlog SdeSdeEvtlogFtraceEvent
sde_sde_perf_calc_crtc SdeSdePerfCalcCrtcFtraceEvent
sde_sde_perf_crtc_update SdeSdePerfCrtcUpdateFtraceEvent
sde_sde_perf_set_qos_luts SdeSdePerfSetQosLutsFtraceEvent
sde_sde_perf_update_bus SdeSdePerfUpdateBusFtraceEvent
rss_stat_throttled RssStatThrottledFtraceEvent
netif_receive_skb NetifReceiveSkbFtraceEvent
net_dev_xmit NetDevXmitFtraceEvent
inet_sock_set_state InetSockSetStateFtraceEvent
tcp_retransmit_skb TcpRetransmitSkbFtraceEvent
cros_ec_sensorhub_data CrosEcSensorhubDataFtraceEvent
napi_gro_receive_entry NapiGroReceiveEntryFtraceEvent
napi_gro_receive_exit NapiGroReceiveExitFtraceEvent
kfree_skb KfreeSkbFtraceEvent
kvm_access_fault KvmAccessFaultFtraceEvent
kvm_ack_irq KvmAckIrqFtraceEvent
kvm_age_hva KvmAgeHvaFtraceEvent
kvm_age_page KvmAgePageFtraceEvent
kvm_arm_clear_debug KvmArmClearDebugFtraceEvent
kvm_arm_set_dreg32 KvmArmSetDreg32FtraceEvent
kvm_arm_set_regset KvmArmSetRegsetFtraceEvent
kvm_arm_setup_debug KvmArmSetupDebugFtraceEvent
kvm_entry KvmEntryFtraceEvent
kvm_exit KvmExitFtraceEvent
kvm_fpu KvmFpuFtraceEvent
kvm_get_timer_map KvmGetTimerMapFtraceEvent
kvm_guest_fault KvmGuestFaultFtraceEvent
kvm_handle_sys_reg KvmHandleSysRegFtraceEvent
kvm_hvc_arm64 KvmHvcArm64FtraceEvent
kvm_irq_line KvmIrqLineFtraceEvent
kvm_mmio KvmMmioFtraceEvent
kvm_mmio_emulate KvmMmioEmulateFtraceEvent
kvm_set_guest_debug KvmSetGuestDebugFtraceEvent
kvm_set_irq KvmSetIrqFtraceEvent
kvm_set_spte_hva KvmSetSpteHvaFtraceEvent
kvm_set_way_flush KvmSetWayFlushFtraceEvent
kvm_sys_access KvmSysAccessFtraceEvent
kvm_test_age_hva KvmTestAgeHvaFtraceEvent
kvm_timer_emulate KvmTimerEmulateFtraceEvent
kvm_timer_hrtimer_expire KvmTimerHrtimerExpireFtraceEvent
kvm_timer_restore_state KvmTimerRestoreStateFtraceEvent
kvm_timer_save_state KvmTimerSaveStateFtraceEvent
kvm_timer_update_irq KvmTimerUpdateIrqFtraceEvent
kvm_toggle_cache KvmToggleCacheFtraceEvent
kvm_unmap_hva_range KvmUnmapHvaRangeFtraceEvent
kvm_userspace_exit KvmUserspaceExitFtraceEvent
kvm_vcpu_wakeup KvmVcpuWakeupFtraceEvent
kvm_wfx_arm64 KvmWfxArm64FtraceEvent
trap_reg TrapRegFtraceEvent
vgic_update_irq_pending VgicUpdateIrqPendingFtraceEvent
wakeup_source_activate WakeupSourceActivateFtraceEvent
wakeup_source_deactivate WakeupSourceDeactivateFtraceEvent
ufshcd_command UfshcdCommandFtraceEvent
ufshcd_clk_gating UfshcdClkGatingFtraceEvent
console ConsoleFtraceEvent
drm_vblank_event DrmVblankEventFtraceEvent
drm_vblank_event_delivered DrmVblankEventDeliveredFtraceEvent
drm_sched_job DrmSchedJobFtraceEvent
drm_run_job DrmRunJobFtraceEvent
drm_sched_process_job DrmSchedProcessJobFtraceEvent
dma_fence_init DmaFenceInitFtraceEvent
dma_fence_emit DmaFenceEmitFtraceEvent
dma_fence_signaled DmaFenceSignaledFtraceEvent
dma_fence_wait_start DmaFenceWaitStartFtraceEvent
dma_fence_wait_end DmaFenceWaitEndFtraceEvent
f2fs_iostat F2fsIostatFtraceEvent
f2fs_iostat_latency F2fsIostatLatencyFtraceEvent
sched_cpu_util_cfs SchedCpuUtilCfsFtraceEvent
v4l2_qbuf V4l2QbufFtraceEvent
v4l2_dqbuf V4l2DqbufFtraceEvent
vb2_v4l2_buf_queue Vb2V4l2BufQueueFtraceEvent
vb2_v4l2_buf_done Vb2V4l2BufDoneFtraceEvent
vb2_v4l2_qbuf Vb2V4l2QbufFtraceEvent
vb2_v4l2_dqbuf Vb2V4l2DqbufFtraceEvent
dsi_cmd_fifo_status DsiCmdFifoStatusFtraceEvent
dsi_rx DsiRxFtraceEvent
dsi_tx DsiTxFtraceEvent
android_fs_dataread_end AndroidFsDatareadEndFtraceEvent
android_fs_dataread_start AndroidFsDatareadStartFtraceEvent
android_fs_datawrite_end AndroidFsDatawriteEndFtraceEvent
android_fs_datawrite_start AndroidFsDatawriteStartFtraceEvent
android_fs_fsync_end AndroidFsFsyncEndFtraceEvent
android_fs_fsync_start AndroidFsFsyncStartFtraceEvent
funcgraph_entry FuncgraphEntryFtraceEvent
funcgraph_exit FuncgraphExitFtraceEvent
virtio_video_cmd VirtioVideoCmdFtraceEvent
virtio_video_cmd_done VirtioVideoCmdDoneFtraceEvent
virtio_video_resource_queue VirtioVideoResourceQueueFtraceEvent
virtio_video_resource_queue_done VirtioVideoResourceQueueDoneFtraceEvent
mm_shrink_slab_start MmShrinkSlabStartFtraceEvent
mm_shrink_slab_end MmShrinkSlabEndFtraceEvent
trusty_smc TrustySmcFtraceEvent
trusty_smc_done TrustySmcDoneFtraceEvent
trusty_std_call32 TrustyStdCall32FtraceEvent
trusty_std_call32_done TrustyStdCall32DoneFtraceEvent
trusty_share_memory TrustyShareMemoryFtraceEvent
trusty_share_memory_done TrustyShareMemoryDoneFtraceEvent
trusty_reclaim_memory TrustyReclaimMemoryFtraceEvent
trusty_reclaim_memory_done TrustyReclaimMemoryDoneFtraceEvent
trusty_irq TrustyIrqFtraceEvent
trusty_ipc_handle_event TrustyIpcHandleEventFtraceEvent
trusty_ipc_connect TrustyIpcConnectFtraceEvent
trusty_ipc_connect_end TrustyIpcConnectEndFtraceEvent
trusty_ipc_write TrustyIpcWriteFtraceEvent
trusty_ipc_poll TrustyIpcPollFtraceEvent
trusty_ipc_read TrustyIpcReadFtraceEvent removed field with id 459;
trusty_ipc_read_end TrustyIpcReadEndFtraceEvent
trusty_ipc_rx TrustyIpcRxFtraceEvent
trusty_enqueue_nop TrustyEnqueueNopFtraceEvent removed field with id 463;
cma_alloc_start CmaAllocStartFtraceEvent
cma_alloc_info CmaAllocInfoFtraceEvent
lwis_tracing_mark_write LwisTracingMarkWriteFtraceEvent
virtio_gpu_cmd_queue VirtioGpuCmdQueueFtraceEvent
virtio_gpu_cmd_response VirtioGpuCmdResponseFtraceEvent
mali_mali_KCPU_CQS_SET MaliMaliKCPUCQSSETFtraceEvent
mali_mali_KCPU_CQS_WAIT_START MaliMaliKCPUCQSWAITSTARTFtraceEvent
mali_mali_KCPU_CQS_WAIT_END MaliMaliKCPUCQSWAITENDFtraceEvent
mali_mali_KCPU_FENCE_SIGNAL MaliMaliKCPUFENCESIGNALFtraceEvent
mali_mali_KCPU_FENCE_WAIT_START MaliMaliKCPUFENCEWAITSTARTFtraceEvent
mali_mali_KCPU_FENCE_WAIT_END MaliMaliKCPUFENCEWAITENDFtraceEvent
hyp_enter HypEnterFtraceEvent
hyp_exit HypExitFtraceEvent
host_hcall HostHcallFtraceEvent
host_smc HostSmcFtraceEvent
host_mem_abort HostMemAbortFtraceEvent
suspend_resume_minimal SuspendResumeMinimalFtraceEvent
mali_mali_CSF_INTERRUPT_START MaliMaliCSFINTERRUPTSTARTFtraceEvent
mali_mali_CSF_INTERRUPT_END MaliMaliCSFINTERRUPTENDFtraceEvent
samsung_tracing_mark_write SamsungTracingMarkWriteFtraceEvent
binder_command BinderCommandFtraceEvent
binder_return BinderReturnFtraceEvent
sched_switch_with_ctrs SchedSwitchWithCtrsFtraceEvent
gpu_work_period GpuWorkPeriodFtraceEvent
rpm_status RpmStatusFtraceEvent

PrintFtraceEvent

Defined in ftrace.proto

Fields:

Field Type Description
ip uint64
buf string

SchedSwitchFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
prev_comm string
prev_pid int32
prev_prio int32
prev_state int64
next_comm string
next_pid int32
next_prio int32

CpuFrequencyFtraceEvent

Defined in power.proto

Fields:

Field Type Description
state uint32
cpu_id uint32

CpuFrequencyLimitsFtraceEvent

Defined in power.proto

Fields:

Field Type Description
min_freq uint32
max_freq uint32
cpu_id uint32

CpuIdleFtraceEvent

Defined in power.proto

Fields:

Field Type Description
state uint32
cpu_id uint32

ClockEnableFtraceEvent

Defined in power.proto

Fields:

Field Type Description
name string
state uint64
cpu_id uint64

ClockDisableFtraceEvent

Defined in power.proto

Fields:

Field Type Description
name string
state uint64
cpu_id uint64

ClockSetRateFtraceEvent

Defined in power.proto

Fields:

Field Type Description
name string
state uint64
cpu_id uint64

SchedWakeupFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
prio int32
success int32
target_cpu int32

SchedBlockedReasonFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
pid int32
caller uint64
io_wait uint32

SchedCpuHotplugFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
affected_cpu int32
error int32
status int32

SchedWakingFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
prio int32
success int32
target_cpu int32

IpiEntryFtraceEvent

Defined in ipi.proto

Fields:

Field Type Description
reason string

IpiExitFtraceEvent

Defined in ipi.proto

Fields:

Field Type Description
reason string

IpiRaiseFtraceEvent

Defined in ipi.proto

Fields:

Field Type Description
target_cpus uint32
reason string

SoftirqEntryFtraceEvent

Defined in irq.proto

Fields:

Field Type Description
vec uint32

SoftirqExitFtraceEvent

Defined in irq.proto

Fields:

Field Type Description
vec uint32

SoftirqRaiseFtraceEvent

Defined in irq.proto

Fields:

Field Type Description
vec uint32

I2cReadFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
msg_nr uint32
addr uint32
flags uint32
len uint32

I2cWriteFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
msg_nr uint32
addr uint32
flags uint32
len uint32
buf uint32

I2cResultFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
nr_msgs uint32
ret int32

I2cReplyFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
msg_nr uint32
addr uint32
flags uint32
len uint32
buf uint32

SmbusReadFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
flags uint32
addr uint32
command uint32
protocol uint32

SmbusWriteFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
addr uint32
flags uint32
command uint32
len uint32
protocol uint32

SmbusResultFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
addr uint32
flags uint32
read_write uint32
command uint32
res int32
protocol uint32

SmbusReplyFtraceEvent

Defined in i2c.proto

Fields:

Field Type Description
adapter_nr int32
addr uint32
flags uint32
command uint32
len uint32
protocol uint32

LowmemoryKillFtraceEvent

Defined in lowmemorykiller.proto

Fields:

Field Type Description
comm string
pid int32
pagecache_size int64
pagecache_limit int64
free int64

IrqHandlerEntryFtraceEvent

Defined in irq.proto

Fields:

Field Type Description
irq int32
name string
handler uint32

IrqHandlerExitFtraceEvent

Defined in irq.proto

Fields:

Field Type Description
irq int32
ret int32

SyncPtFtraceEvent

Defined in sync.proto

Fields:

Field Type Description
timeline string
value string

SyncTimelineFtraceEvent

Defined in sync.proto

Fields:

Field Type Description
name string
value string

SyncWaitFtraceEvent

Defined in sync.proto

Fields:

Field Type Description
name string
status int32
begin uint32

Ext4DaWriteBeginFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
flags uint32

Ext4DaWriteEndFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
copied uint32

Ext4SyncFileEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
parent uint64
datasync int32

Ext4SyncFileExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

BlockRqIssueFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
bytes uint32
rwbs string
comm string
cmd string

MmVmscanDirectReclaimBeginFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
order int32
may_writepage int32
gfp_flags uint32

MmVmscanDirectReclaimEndFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
nr_reclaimed uint64

MmVmscanKswapdWakeFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
nid int32
order int32
zid int32

MmVmscanKswapdSleepFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
nid int32

BinderTransactionFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
debug_id int32
target_node int32
to_proc int32
to_thread int32
reply int32
code uint32
flags uint32

BinderTransactionReceivedFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
debug_id int32

BinderSetPriorityFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
proc int32
thread int32
old_prio uint32
new_prio uint32
desired_prio uint32

BinderLockFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
tag string

BinderLockedFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
tag string

BinderUnlockFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
tag string

WorkqueueActivateWorkFtraceEvent

Defined in workqueue.proto

Fields:

Field Type Description
work uint64

WorkqueueExecuteEndFtraceEvent

Defined in workqueue.proto

Fields:

Field Type Description
work uint64
function uint64

WorkqueueExecuteStartFtraceEvent

Defined in workqueue.proto

Fields:

Field Type Description
work uint64
function uint64

WorkqueueQueueWorkFtraceEvent

Defined in workqueue.proto

Fields:

Field Type Description
work uint64
function uint64
workqueue uint64
req_cpu uint32
cpu uint32

RegulatorDisableFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string

RegulatorDisableCompleteFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string

RegulatorEnableFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string

RegulatorEnableCompleteFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string

RegulatorEnableDelayFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string

RegulatorSetVoltageFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string
min int32
max int32

RegulatorSetVoltageCompleteFtraceEvent

Defined in regulator.proto

Fields:

Field Type Description
name string
val uint32

CgroupAttachTaskFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
dst_root int32
dst_id int32
pid int32
comm string
cname string
dst_level int32
dst_path string

CgroupMkdirFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname string
level int32
path string

CgroupRemountFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
ss_mask uint32
name string

CgroupRmdirFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname string
level int32
path string

CgroupTransferTasksFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
dst_root int32
dst_id int32
pid int32
comm string
cname string
dst_level int32
dst_path string

CgroupDestroyRootFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
ss_mask uint32
name string

CgroupReleaseFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname string
level int32
path string

CgroupRenameFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname string
level int32
path string

CgroupSetupRootFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
ss_mask uint32
name string

MdpCmdKickoffFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32
kickoff_cnt int32

MdpCommitFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
num uint32
play_cnt uint32
clk_rate uint32
bandwidth uint64

MdpPerfSetOtFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pnum uint32
xin_id uint32
rd_lim uint32
is_vbif_rt uint32

MdpSsppChangeFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
num uint32
play_cnt uint32
mixer uint32
stage uint32
flags uint32
format uint32
img_w uint32
img_h uint32
src_x uint32
src_y uint32
src_w uint32
src_h uint32
dst_x uint32
dst_y uint32
dst_w uint32
dst_h uint32

TracingMarkWriteFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pid int32
trace_name string
trace_begin uint32

MdpCmdPingpongDoneFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32
intf_num uint32
pp_num uint32
koff_cnt int32

MdpCompareBwFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
new_ab uint64
new_ib uint64
new_wb uint64
old_ab uint64
old_ib uint64
old_wb uint64
params_changed uint32
update_bw uint32

MdpPerfSetPanicLutsFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pnum uint32
fmt uint32
mode uint32
panic_lut uint32
robust_lut uint32

MdpSsppSetFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
num uint32
play_cnt uint32
mixer uint32
stage uint32
flags uint32
format uint32
img_w uint32
img_h uint32
src_x uint32
src_y uint32
src_w uint32
src_h uint32
dst_x uint32
dst_y uint32
dst_w uint32
dst_h uint32

MdpCmdReadptrDoneFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32
koff_cnt int32

MdpMisrCrcFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
block_id uint32
vsync_cnt uint32
crc uint32

MdpPerfSetQosLutsFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pnum uint32
fmt uint32
intf uint32
rot uint32
fl uint32
lut uint32
linear uint32

MdpTraceCounterFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pid int32
counter_name string
value int32

MdpCmdReleaseBwFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32

MdpMixerUpdateFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
mixer_num uint32

MdpPerfSetWmLevelsFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pnum uint32
use_space uint32
priority_bytes uint32
wm0 uint32
wm1 uint32
wm2 uint32
mb_cnt uint32
mb_size uint32

MdpVideoUnderrunDoneFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32
underrun_cnt uint32

MdpCmdWaitPingpongFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
ctl_num uint32
kickoff_cnt int32

MdpPerfPrefillCalcFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
pnum uint32
latency_buf uint32
ot uint32
y_buf uint32
y_scaler uint32
pp_lines uint32
pp_bytes uint32
post_sc uint32
fbc_bytes uint32
prefill_bytes uint32

MdpPerfUpdateBusFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
client int32
ab_quota uint64
ib_quota uint64

RotatorBwAoAsContextFtraceEvent

Defined in mdss.proto

Fields:

Field Type Description
state uint32

MmFilemapAddToPageCacheFtraceEvent

Defined in filemap.proto

Fields:

Field Type Description
pfn uint64
i_ino uint64
index uint64
s_dev uint64
page uint64

MmFilemapDeleteFromPageCacheFtraceEvent

Defined in filemap.proto

Fields:

Field Type Description
pfn uint64
i_ino uint64
index uint64
s_dev uint64
page uint64

MmCompactionBeginFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
zone_start uint64
migrate_pfn uint64
free_pfn uint64
zone_end uint64
sync uint32

MmCompactionDeferCompactionFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
idx uint32
order int32
considered uint32
defer_shift uint32
order_failed int32

MmCompactionDeferredFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
idx uint32
order int32
considered uint32
defer_shift uint32
order_failed int32

MmCompactionDeferResetFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
idx uint32
order int32
considered uint32
defer_shift uint32
order_failed int32

MmCompactionEndFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
zone_start uint64
migrate_pfn uint64
free_pfn uint64
zone_end uint64
sync uint32
status int32

MmCompactionFinishedFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
idx uint32
order int32
ret int32

MmCompactionIsolateFreepagesFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
start_pfn uint64
end_pfn uint64
nr_scanned uint64
nr_taken uint64

MmCompactionIsolateMigratepagesFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
start_pfn uint64
end_pfn uint64
nr_scanned uint64
nr_taken uint64

MmCompactionKcompactdSleepFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32

MmCompactionKcompactdWakeFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
order int32
classzone_idx uint32
highest_zoneidx uint32

MmCompactionMigratepagesFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nr_migrated uint64
nr_failed uint64

MmCompactionSuitableFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
idx uint32
order int32
ret int32

MmCompactionTryToCompactPagesFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
order int32
gfp_mask uint32
mode uint32
prio int32

MmCompactionWakeupKcompactdFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
order int32
classzone_idx uint32
highest_zoneidx uint32

SuspendResumeFtraceEvent

Defined in power.proto

Fields:

Field Type Description
action string
val int32
start uint32

SchedWakeupNewFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
prio int32
success int32
target_cpu int32

BlockBioBackmergeFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockBioBounceFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockBioCompleteFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
error int32
rwbs string

BlockBioFrontmergeFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockBioQueueFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockBioRemapFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
old_dev uint64
old_sector uint64
rwbs string

BlockDirtyBufferFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
size uint64

BlockGetrqFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockPlugFtraceEvent

Defined in block.proto

Fields:

Field Type Description
comm string

BlockRqAbortFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
errors int32
rwbs string
cmd string

BlockRqCompleteFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
errors int32
rwbs string
cmd string
error int32

BlockRqInsertFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
bytes uint32
rwbs string
comm string
cmd string

BlockRqRemapFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
old_dev uint64
old_sector uint64
nr_bios uint32
rwbs string

BlockRqRequeueFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
errors int32
rwbs string
cmd string

BlockSleeprqFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
nr_sector uint32
rwbs string
comm string

BlockSplitFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
new_sector uint64
rwbs string
comm string

BlockTouchBufferFtraceEvent

Defined in block.proto

Fields:

Field Type Description
dev uint64
sector uint64
size uint64

BlockUnplugFtraceEvent

Defined in block.proto

Fields:

Field Type Description
nr_rq int32
comm string

Ext4AllocDaBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
data_blocks uint32
meta_blocks uint32

Ext4AllocateBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
block uint64
len uint32
logical uint32
lleft uint32
lright uint32
goal uint64
pleft uint64
pright uint64
flags uint32

Ext4AllocateInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
dir uint64
mode uint32

Ext4BeginOrderedTruncateFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
new_size int64

Ext4CollapseRangeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
offset int64
len int64

Ext4DaReleaseSpaceFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
i_blocks uint64
freed_blocks int32
reserved_data_blocks int32
reserved_meta_blocks int32
allocated_meta_blocks int32
mode uint32

Ext4DaReserveSpaceFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
i_blocks uint64
reserved_data_blocks int32
reserved_meta_blocks int32
mode uint32
md_needed int32

Ext4DaUpdateReserveSpaceFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
i_blocks uint64
used_blocks int32
reserved_data_blocks int32
reserved_meta_blocks int32
allocated_meta_blocks int32
quota_claim int32
mode uint32

Ext4DaWritePagesFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
first_page uint64
nr_to_write int64
sync_mode int32
b_blocknr uint64
b_size uint32
b_state uint32
io_done int32
pages_written int32

Ext4DaWritePagesExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint64
len uint32
flags uint32

Ext4DirectIOEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint64
rw int32

Ext4DirectIOExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint64
rw int32
ret int32

Ext4DiscardBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
blk uint64
count uint64

Ext4DiscardPreallocationsFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
len uint32
needed uint32

Ext4DropInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
drop int32

Ext4EsCacheExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
pblk uint64
status uint32

Ext4EsFindDelayedExtentRangeEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32

Ext4EsFindDelayedExtentRangeExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
pblk uint64
status uint64

Ext4EsInsertExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
pblk uint64
status uint64

Ext4EsLookupExtentEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32

Ext4EsLookupExtentExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
pblk uint64
status uint64
found int32

Ext4EsRemoveExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk int64
len int64

Ext4EsShrinkFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
nr_shrunk int32
scan_time uint64
nr_skipped int32
retried int32

Ext4EsShrinkCountFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
nr_to_scan int32
cache_cnt int32

Ext4EsShrinkScanEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
nr_to_scan int32
cache_cnt int32

Ext4EsShrinkScanExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
nr_shrunk int32
cache_cnt int32

Ext4EvictInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
nlink int32

Ext4ExtConvertToInitializedEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
m_lblk uint32
m_len uint32
u_lblk uint32
u_len uint32
u_pblk uint64

Ext4ExtConvertToInitializedFastpathFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
m_lblk uint32
m_len uint32
u_lblk uint32
u_len uint32
u_pblk uint64
i_lblk uint32
i_len uint32
i_pblk uint64

Ext4ExtHandleUnwrittenExtentsFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
flags int32
lblk uint32
pblk uint64
len uint32
allocated uint32
newblk uint64

Ext4ExtInCacheFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
ret int32

Ext4ExtLoadExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pblk uint64
lblk uint32

Ext4ExtMapBlocksEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
flags uint32

Ext4ExtMapBlocksExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
flags uint32
pblk uint64
lblk uint32
len uint32
mflags uint32
ret int32

Ext4ExtPutInCacheFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
start uint64

Ext4ExtRemoveSpaceFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
start uint32
end uint32
depth int32

Ext4ExtRemoveSpaceDoneFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
start uint32
end uint32
depth int32
partial int64
eh_entries uint32
pc_lblk uint32
pc_pclu uint64
pc_state int32

Ext4ExtRmIdxFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pblk uint64

Ext4ExtRmLeafFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
partial int64
start uint32
ee_lblk uint32
ee_pblk uint64
ee_len int32
pc_lblk uint32
pc_pclu uint64
pc_state int32

Ext4ExtShowExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pblk uint64
lblk uint32
len uint32

Ext4FallocateEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
offset int64
len int64
mode int32
pos int64

Ext4FallocateExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
blocks uint32
ret int32

Ext4FindDelallocRangeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
from uint32
to uint32
reverse int32
found int32
found_blk uint32

Ext4ForgetFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
block uint64
is_metadata int32
mode uint32

Ext4FreeBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
block uint64
count uint64
flags int32
mode uint32

Ext4FreeInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
uid uint32
gid uint32
blocks uint64
mode uint32

Ext4GetImpliedClusterAllocExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
flags uint32
lblk uint32
pblk uint64
len uint32
ret int32

Ext4GetReservedClusterAllocFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32

Ext4IndMapBlocksEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
lblk uint32
len uint32
flags uint32

Ext4IndMapBlocksExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
flags uint32
pblk uint64
lblk uint32
len uint32
mflags uint32
ret int32

Ext4InsertRangeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
offset int64
len int64

Ext4InvalidatepageFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64
offset uint64
length uint32

Ext4JournalStartFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ip uint64
blocks int32
rsv_blocks int32
nblocks int32
revoke_creds int32

Ext4JournalStartReservedFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ip uint64
blocks int32

Ext4JournalledInvalidatepageFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64
offset uint64
length uint32

Ext4JournalledWriteEndFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
copied uint32

Ext4LoadInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64

Ext4LoadInodeBitmapFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
group uint32

Ext4MarkInodeDirtyFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
ip uint64

Ext4MbBitmapLoadFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
group uint32

Ext4MbBuddyBitmapLoadFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
group uint32

Ext4MbDiscardPreallocationsFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
needed int32

Ext4MbNewGroupPaFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pa_pstart uint64
pa_lstart uint64
pa_len uint32

Ext4MbNewInodePaFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pa_pstart uint64
pa_lstart uint64
pa_len uint32

Ext4MbReleaseGroupPaFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
pa_pstart uint64
pa_len uint32

Ext4MbReleaseInodePaFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
block uint64
count uint32

Ext4MballocAllocFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
orig_logical uint32
orig_start int32
orig_group uint32
orig_len int32
goal_logical uint32
goal_start int32
goal_group uint32
goal_len int32
result_logical uint32
result_start int32
result_group uint32
result_len int32
found uint32
groups uint32
buddy uint32
flags uint32
tail uint32
cr uint32

Ext4MballocDiscardFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
result_start int32
result_group uint32
result_len int32

Ext4MballocFreeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
result_start int32
result_group uint32
result_len int32

Ext4MballocPreallocFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
orig_logical uint32
orig_start int32
orig_group uint32
orig_len int32
result_logical uint32
result_start int32
result_group uint32
result_len int32

Ext4OtherInodeUpdateTimeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
orig_ino uint64
uid uint32
gid uint32
mode uint32

Ext4PunchHoleFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
offset int64
len int64
mode int32

Ext4ReadBlockBitmapLoadFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
group uint32
prefetch uint32

Ext4ReadpageFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64

Ext4ReleasepageFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64

Ext4RemoveBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
from uint32
to uint32
partial int64
ee_pblk uint64
ee_lblk uint32
ee_len uint32
pc_lblk uint32
pc_pclu uint64
pc_state int32

Ext4RequestBlocksFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
len uint32
logical uint32
lleft uint32
lright uint32
goal uint64
pleft uint64
pright uint64
flags uint32

Ext4RequestInodeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
dir uint64
mode uint32

Ext4SyncFsFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
wait int32

Ext4TrimAllFreeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev_major int32
dev_minor int32
group uint32
start int32
len int32

Ext4TrimExtentFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev_major int32
dev_minor int32
group uint32
start int32
len int32

Ext4TruncateEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
blocks uint64

Ext4TruncateExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
blocks uint64

Ext4UnlinkEnterFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
parent uint64
size int64

Ext4UnlinkExitFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

Ext4WriteBeginFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
flags uint32

Ext4WriteEndFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
copied uint32

Ext4WritepageFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64

Ext4WritepagesFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
nr_to_write int64
pages_skipped int64
range_start int64
range_end int64
writeback_index uint64
sync_mode int32
for_kupdate uint32
range_cyclic uint32

Ext4WritepagesResultFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32
pages_written int32
pages_skipped int64
writeback_index uint64
sync_mode int32

Ext4ZeroRangeFtraceEvent

Defined in ext4.proto

Fields:

Field Type Description
dev uint64
ino uint64
offset int64
len int64
mode int32

TaskNewtaskFtraceEvent

Defined in task.proto

Fields:

Field Type Description
pid int32
comm string
clone_flags uint64
oom_score_adj int32

TaskRenameFtraceEvent

Defined in task.proto

Fields:

Field Type Description
pid int32
oldcomm string
newcomm string
oom_score_adj int32

SchedProcessExecFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
filename string
pid int32
old_pid int32

SchedProcessExitFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
tgid int32
prio int32

SchedProcessForkFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
parent_comm string
parent_pid int32
child_comm string
child_pid int32

SchedProcessFreeFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
prio int32

SchedProcessHangFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32

SchedProcessWaitFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
pid int32
prio int32

F2fsDoSubmitBioFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
btype int32
sync uint32
sector uint64
size uint32

F2fsEvictInodeFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pino uint64
mode uint32
size int64
nlink uint32
blocks uint64
advise uint32

F2fsFallocateFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
mode int32
offset int64
len int64
size int64
blocks uint64
ret int32

F2fsGetDataBlockFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
iblock uint64
bh_start uint64
bh_size uint64
ret int32

F2fsGetVictimFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
type int32
gc_type int32
alloc_mode int32
gc_mode int32
victim uint32
ofs_unit uint32
pre_victim uint32
prefree uint32
free uint32
cost uint32

F2fsIgetFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pino uint64
mode uint32
size int64
nlink uint32
blocks uint64
advise uint32

F2fsIgetExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsNewInodeFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsReadpageFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
index uint64
blkaddr uint64
type int32
dir int32
dirty int32
uptodate int32

F2fsReserveNewBlockFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
nid uint32
ofs_in_node uint32

F2fsSetPageDirtyFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
type int32
dir int32
index uint64
dirty int32
uptodate int32

F2fsSubmitWritePageFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
type int32
index uint64
block uint32

F2fsSyncFileEnterFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pino uint64
mode uint32
size int64
nlink uint32
blocks uint64
advise uint32

F2fsSyncFileExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
need_cp uint32
datasync int32
ret int32
cp_reason int32

F2fsSyncFsFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
dirty int32
wait int32

F2fsTruncateFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pino uint64
mode uint32
size int64
nlink uint32
blocks uint64
advise uint32

F2fsTruncateBlocksEnterFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
size int64
blocks uint64
from uint64

F2fsTruncateBlocksExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsTruncateDataBlocksRangeFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
nid uint32
ofs uint32
free int32

F2fsTruncateInodeBlocksEnterFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
size int64
blocks uint64
from uint64

F2fsTruncateInodeBlocksExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsTruncateNodeFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
nid uint32
blk_addr uint32

F2fsTruncateNodesEnterFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
nid uint32
blk_addr uint32

F2fsTruncateNodesExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsTruncatePartialNodesFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
nid uint32
depth int32
err int32

F2fsUnlinkEnterFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
size int64
blocks uint64
name string

F2fsUnlinkExitFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
ret int32

F2fsVmPageMkwriteFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
type int32
dir int32
index uint64
dirty int32
uptodate int32

F2fsWriteBeginFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
flags uint32

F2fsWriteCheckpointFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
is_umount uint32
msg string
reason int32

F2fsWriteEndFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
dev uint64
ino uint64
pos int64
len uint32
copied uint32

AllocPagesIommuEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

AllocPagesIommuFailFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

AllocPagesIommuStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

AllocPagesSysEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

AllocPagesSysFailFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

AllocPagesSysStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
order uint32

DmaAllocContiguousRetryFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
tries int32

IommuMapRangeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
chunk_size uint64
len uint64
pa uint64
va uint64

IommuSecPtblMapRangeEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
len uint64
num int32
pa uint32
sec_id int32
va uint64

IommuSecPtblMapRangeStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
len uint64
num int32
pa uint32
sec_id int32
va uint64

IonAllocBufferEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
client_name string
flags uint32
heap_name string
len uint64
mask uint32

IonAllocBufferFailFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
client_name string
error int64
flags uint32
heap_name string
len uint64
mask uint32

IonAllocBufferFallbackFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
client_name string
error int64
flags uint32
heap_name string
len uint64
mask uint32

IonAllocBufferStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
client_name string
flags uint32
heap_name string
len uint64
mask uint32

IonCpAllocRetryFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
tries int32

IonCpSecureBufferEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
align uint64
flags uint64
heap_name string
len uint64

IonCpSecureBufferStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
align uint64
flags uint64
heap_name string
len uint64

IonPrefetchingFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
len uint64

IonSecureCmaAddToPoolEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
is_prefetch uint32
len uint64
pool_total int32

IonSecureCmaAddToPoolStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
is_prefetch uint32
len uint64
pool_total int32

IonSecureCmaAllocateEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
align uint64
flags uint64
heap_name string
len uint64

IonSecureCmaAllocateStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
align uint64
flags uint64
heap_name string
len uint64

IonSecureCmaShrinkPoolEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
drained_size uint64
skipped_size uint64

IonSecureCmaShrinkPoolStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
drained_size uint64
skipped_size uint64

KfreeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
call_site uint64
ptr uint64

KmallocFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
bytes_alloc uint64
bytes_req uint64
call_site uint64
gfp_flags uint32
ptr uint64

KmallocNodeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
bytes_alloc uint64
bytes_req uint64
call_site uint64
gfp_flags uint32
node int32
ptr uint64

KmemCacheAllocFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
bytes_alloc uint64
bytes_req uint64
call_site uint64
gfp_flags uint32
ptr uint64

KmemCacheAllocNodeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
bytes_alloc uint64
bytes_req uint64
call_site uint64
gfp_flags uint32
node int32
ptr uint64

KmemCacheFreeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
call_site uint64
ptr uint64

MigratePagesEndFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
mode int32

MigratePagesStartFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
mode int32

MigrateRetryFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
tries int32

MmPageAllocFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
gfp_flags uint32
migratetype int32
order uint32
page uint64
pfn uint64

MmPageAllocExtfragFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
alloc_migratetype int32
alloc_order int32
fallback_migratetype int32
fallback_order int32
page uint64
change_ownership int32
pfn uint64

MmPageAllocZoneLockedFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
migratetype int32
order uint32
page uint64
pfn uint64

MmPageFreeFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
order uint32
page uint64
pfn uint64

MmPageFreeBatchedFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
cold int32
page uint64
pfn uint64

MmPagePcpuDrainFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
migratetype int32
order uint32
page uint64
pfn uint64

RssStatFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
member int32
size int64
curr uint32
mm_id uint32

IonHeapShrinkFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
heap_name string
len uint64
total_allocated int64

IonHeapGrowFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
heap_name string
len uint64
total_allocated int64

FenceInitFtraceEvent

Defined in fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

FenceDestroyFtraceEvent

Defined in fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

FenceEnableSignalFtraceEvent

Defined in fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

FenceSignaledFtraceEvent

Defined in fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

ClkEnableFtraceEvent

Defined in clk.proto

Fields:

Field Type Description
name string

ClkDisableFtraceEvent

Defined in clk.proto

Fields:

Field Type Description
name string

ClkSetRateFtraceEvent

Defined in clk.proto

Fields:

Field Type Description
name string
rate uint64

BinderTransactionAllocBufFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
data_size uint64
debug_id int32
offsets_size uint64
extra_buffers_size uint64

SignalDeliverFtraceEvent

Defined in signal.proto

Fields:

Field Type Description
code int32
sa_flags uint64
sig int32

SignalGenerateFtraceEvent

Defined in signal.proto

Fields:

Field Type Description
code int32
comm string
group int32
pid int32
result int32
sig int32

OomScoreAdjUpdateFtraceEvent

Defined in oom.proto

Fields:

Field Type Description
comm string
oom_score_adj int32
pid int32

GenericFtraceEvent

This generic proto is used to output events in the trace when a specific proto for that event does not exist.

Defined in generic.proto

Fields:

Field Type Description
event_name string
field Field[]

GenericFtraceEvent.Field

Defined in generic.proto

Fields:

Field Type Description
name string
str_value string
int_value int64
uint_value uint64

MmEventRecordFtraceEvent

Defined in mm_event.proto

Fields:

Field Type Description
avg_lat uint32
count uint32
max_lat uint32
type uint32

SysEnterFtraceEvent

Defined in raw_syscalls.proto

Fields:

Field Type Description
id int64
args uint64[]

SysExitFtraceEvent

Defined in raw_syscalls.proto

Fields:

Field Type Description
id int64
ret int64

ZeroFtraceEvent

Defined in systrace.proto

Fields:

Field Type Description
flag int32
name string
pid int32
value int64

GpuFrequencyFtraceEvent

Defined in power.proto

Fields:

Field Type Description
gpu_id uint32
state uint32

SdeTracingMarkWriteFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
pid int32
trace_name string
trace_type uint32
value int32
trace_begin uint32

MarkVictimFtraceEvent

Defined in oom.proto

Fields:

Field Type Description
pid int32

IonStatFtraceEvent

Defined in ion.proto

Fields:

Field Type Description
buffer_id uint32
len int64
total_allocated uint64

IonBufferCreateFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
addr uint64
len uint64

IonBufferDestroyFtraceEvent

Defined in kmem.proto

Fields:

Field Type Description
addr uint64
len uint64

ScmCallStartFtraceEvent

Defined in scm.proto

Fields:

Field Type Description
arginfo uint32
x0 uint64
x5 uint64

ScmCallEndFtraceEvent

Defined in scm.proto

Fields:

Field Type Description

GpuMemTotalFtraceEvent

Defined in gpu_mem.proto

Fields:

Field Type Description
gpu_id uint32
pid uint32
size uint64

ThermalTemperatureFtraceEvent

Defined in thermal.proto

Fields:

Field Type Description
id int32
temp int32
temp_prev int32
thermal_zone string

CdevUpdateFtraceEvent

Defined in thermal.proto

Fields:

Field Type Description
target uint64
type string

CpuhpExitFtraceEvent

Defined in cpuhp.proto

Fields:

Field Type Description
cpu uint32
idx int32
ret int32
state int32

CpuhpMultiEnterFtraceEvent

Defined in cpuhp.proto

Fields:

Field Type Description
cpu uint32
fun uint64
idx int32
target int32

CpuhpEnterFtraceEvent

Defined in cpuhp.proto

Fields:

Field Type Description
cpu uint32
fun uint64
idx int32
target int32

CpuhpLatencyFtraceEvent

Defined in cpuhp.proto

Fields:

Field Type Description
cpu uint32
ret int32
state uint32
time uint64

FastrpcDmaStatFtraceEvent

Defined in fastrpc.proto

Fields:

Field Type Description
cid int32
len int64
total_allocated uint64

DpuTracingMarkWriteFtraceEvent

Defined in dpu.proto

Fields:

Field Type Description
pid int32
trace_name string
trace_begin uint32
name string
type uint32
value int32

G2dTracingMarkWriteFtraceEvent

Defined in g2d.proto

Fields:

Field Type Description
pid int32
name string
type uint32
value int32

MaliTracingMarkWriteFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
name string
pid int32
type uint32
value int32

DmaHeapStatFtraceEvent

Defined in dmabuf_heap.proto

Fields:

Field Type Description
inode uint64
len int64
total_allocated uint64

CpuhpPauseFtraceEvent

Defined in cpuhp.proto

Fields:

Field Type Description
active_cpus uint32
cpus uint32
pause uint32
time uint32

SchedPiSetprioFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
comm string
newprio int32
oldprio int32
pid int32

SdeSdeEvtlogFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
evtlog_tag string
pid int32
tag_id uint32

SdeSdePerfCalcCrtcFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
bw_ctl_ebi uint64
bw_ctl_llcc uint64
bw_ctl_mnoc uint64
core_clk_rate uint32
crtc uint32
ib_ebi uint64
ib_llcc uint64
ib_mnoc uint64

SdeSdePerfCrtcUpdateFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
bw_ctl_ebi uint64
bw_ctl_llcc uint64
bw_ctl_mnoc uint64
core_clk_rate uint32
crtc uint32
params int32
per_pipe_ib_ebi uint64
per_pipe_ib_llcc uint64
per_pipe_ib_mnoc uint64
stop_req uint32
update_bus uint32
update_clk uint32

SdeSdePerfSetQosLutsFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
fl uint32
fmt uint32
lut uint64
lut_usage uint32
pnum uint32
rt uint32

SdeSdePerfUpdateBusFtraceEvent

Defined in sde.proto

Fields:

Field Type Description
ab_quota uint64
bus_id uint32
client int32
ib_quota uint64

RssStatThrottledFtraceEvent

Defined in synthetic.proto

Fields:

Field Type Description
curr uint32
member int32
mm_id uint32
size int64

NetifReceiveSkbFtraceEvent

Defined in net.proto

Fields:

Field Type Description
len uint32
name string
skbaddr uint64

NetDevXmitFtraceEvent

Defined in net.proto

Fields:

Field Type Description
len uint32
name string
rc int32
skbaddr uint64

InetSockSetStateFtraceEvent

Defined in sock.proto

Fields:

Field Type Description
daddr uint32
dport uint32
family uint32
newstate int32
oldstate int32
protocol uint32
saddr uint32
skaddr uint64
sport uint32

TcpRetransmitSkbFtraceEvent

Defined in tcp.proto

Fields:

Field Type Description
daddr uint32
dport uint32
saddr uint32
skaddr uint64
skbaddr uint64
sport uint32
state int32

CrosEcSensorhubDataFtraceEvent

Defined in cros_ec.proto

Fields:

Field Type Description
current_time int64
current_timestamp int64
delta int64
ec_fifo_timestamp uint32
ec_sensor_num uint32
fifo_timestamp int64

NapiGroReceiveEntryFtraceEvent

Defined in net.proto

Fields:

Field Type Description
data_len uint32
gso_size uint32
gso_type uint32
hash uint32
ip_summed uint32
l4_hash uint32
len uint32
mac_header int32
mac_header_valid uint32
name string
napi_id uint32
nr_frags uint32
protocol uint32
queue_mapping uint32
skbaddr uint64
truesize uint32
vlan_proto uint32
vlan_tagged uint32
vlan_tci uint32

NapiGroReceiveExitFtraceEvent

Defined in net.proto

Fields:

Field Type Description
ret int32

KfreeSkbFtraceEvent

Defined in skb.proto

Fields:

Field Type Description
location uint64
protocol uint32
skbaddr uint64

KvmAccessFaultFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
ipa uint64

KvmAckIrqFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
irqchip uint32
pin uint32

KvmAgeHvaFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
end uint64
start uint64

KvmAgePageFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
gfn uint64
hva uint64
level uint32
referenced uint32

KvmArmClearDebugFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
guest_debug uint32

KvmArmSetDreg32FtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
name string
value uint32

KvmArmSetRegsetFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
len int32
name string

KvmArmSetupDebugFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
guest_debug uint32
vcpu uint64

KvmEntryFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
vcpu_pc uint64

KvmExitFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
esr_ec uint32
ret int32
vcpu_pc uint64

KvmFpuFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
load uint32

KvmGetTimerMapFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
direct_ptimer int32
direct_vtimer int32
emul_ptimer int32
vcpu_id uint64

KvmGuestFaultFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
hsr uint64
hxfar uint64
ipa uint64
vcpu_pc uint64

KvmHandleSysRegFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
hsr uint64

KvmHvcArm64FtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
imm uint64
r0 uint64
vcpu_pc uint64

KvmIrqLineFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
irq_num int32
level int32
type uint32
vcpu_idx int32

KvmMmioFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
gpa uint64
len uint32
type uint32
val uint64

KvmMmioEmulateFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
cpsr uint64
instr uint64
vcpu_pc uint64

KvmSetGuestDebugFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
guest_debug uint32
vcpu uint64

KvmSetIrqFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
gsi uint32
irq_source_id int32
level int32

KvmSetSpteHvaFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
hva uint64

KvmSetWayFlushFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
cache uint32
vcpu_pc uint64

KvmSysAccessFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
CRm uint32
CRn uint32
Op0 uint32
Op1 uint32
Op2 uint32
is_write uint32
name string
vcpu_pc uint64

KvmTestAgeHvaFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
hva uint64

KvmTimerEmulateFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
should_fire uint32
timer_idx int32

KvmTimerHrtimerExpireFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
timer_idx int32

KvmTimerRestoreStateFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
ctl uint64
cval uint64
timer_idx int32

KvmTimerSaveStateFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
ctl uint64
cval uint64
timer_idx int32

KvmTimerUpdateIrqFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
irq uint32
level int32
vcpu_id uint64

KvmToggleCacheFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
now uint32
vcpu_pc uint64
was uint32

KvmUnmapHvaRangeFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
end uint64
start uint64

KvmUserspaceExitFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
reason uint32

KvmVcpuWakeupFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
ns uint64
valid uint32
waited uint32

KvmWfxArm64FtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
is_wfe uint32
vcpu_pc uint64

TrapRegFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
fn string
is_write uint32
reg int32
write_value uint64

VgicUpdateIrqPendingFtraceEvent

Defined in kvm.proto

Fields:

Field Type Description
irq uint32
level uint32
vcpu_id uint64

WakeupSourceActivateFtraceEvent

Defined in power.proto

Fields:

Field Type Description
name string
state uint64

WakeupSourceDeactivateFtraceEvent

Defined in power.proto

Fields:

Field Type Description
name string
state uint64

UfshcdCommandFtraceEvent

Defined in ufs.proto

Fields:

Field Type Description
dev_name string
doorbell uint32
intr uint32
lba uint64
opcode uint32
str string
tag uint32
transfer_len int32
group_id uint32
str_t uint32

UfshcdClkGatingFtraceEvent

Defined in ufs.proto

Fields:

Field Type Description
dev_name string
state int32

ConsoleFtraceEvent

Defined in printk.proto

Fields:

Field Type Description
msg string

DrmVblankEventFtraceEvent

Defined in drm.proto

Fields:

Field Type Description
crtc int32
high_prec uint32
seq uint32
time int64

DrmVblankEventDeliveredFtraceEvent

Defined in drm.proto

Fields:

Field Type Description
crtc int32
file uint64
seq uint32

DrmSchedJobFtraceEvent

Defined in gpu_scheduler.proto

Fields:

Field Type Description
entity uint64
fence uint64
hw_job_count int32
id uint64
job_count uint32
name string

DrmRunJobFtraceEvent

Defined in gpu_scheduler.proto

Fields:

Field Type Description
entity uint64
fence uint64
hw_job_count int32
id uint64
job_count uint32
name string

DrmSchedProcessJobFtraceEvent

Defined in gpu_scheduler.proto

Fields:

Field Type Description
fence uint64

DmaFenceInitFtraceEvent

Defined in dma_fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

DmaFenceEmitFtraceEvent

Defined in dma_fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

DmaFenceSignaledFtraceEvent

Defined in dma_fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

DmaFenceWaitStartFtraceEvent

Defined in dma_fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

DmaFenceWaitEndFtraceEvent

Defined in dma_fence.proto

Fields:

Field Type Description
context uint32
driver string
seqno uint32
timeline string

F2fsIostatFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
app_bio uint64
app_brio uint64
app_dio uint64
app_drio uint64
app_mio uint64
app_mrio uint64
app_rio uint64
app_wio uint64
dev uint64
fs_cdrio uint64
fs_cp_dio uint64
fs_cp_mio uint64
fs_cp_nio uint64
fs_dio uint64
fs_discard uint64
fs_drio uint64
fs_gc_dio uint64
fs_gc_nio uint64
fs_gdrio uint64
fs_mio uint64
fs_mrio uint64
fs_nio uint64
fs_nrio uint64

F2fsIostatLatencyFtraceEvent

Defined in f2fs.proto

Fields:

Field Type Description
d_rd_avg uint32
d_rd_cnt uint32
d_rd_peak uint32
d_wr_as_avg uint32
d_wr_as_cnt uint32
d_wr_as_peak uint32
d_wr_s_avg uint32
d_wr_s_cnt uint32
d_wr_s_peak uint32
dev uint64
m_rd_avg uint32
m_rd_cnt uint32
m_rd_peak uint32
m_wr_as_avg uint32
m_wr_as_cnt uint32
m_wr_as_peak uint32
m_wr_s_avg uint32
m_wr_s_cnt uint32
m_wr_s_peak uint32
n_rd_avg uint32
n_rd_cnt uint32
n_rd_peak uint32
n_wr_as_avg uint32
n_wr_as_cnt uint32
n_wr_as_peak uint32
n_wr_s_avg uint32
n_wr_s_cnt uint32
n_wr_s_peak uint32

SchedCpuUtilCfsFtraceEvent

Defined in sched.proto

Fields:

Field Type Description
active int32
capacity uint64
capacity_orig uint64
cpu uint32
cpu_importance uint64
cpu_util uint64
exit_lat uint32
group_capacity uint64
grp_overutilized uint32
idle_cpu uint32
nr_running uint32
spare_cap int64
task_fits uint32
wake_group_util uint64
wake_util uint64

V4l2QbufFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
bytesused uint32
field uint32
flags uint32
index uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64
type uint32

V4l2DqbufFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
bytesused uint32
field uint32
flags uint32
index uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64
type uint32

Vb2V4l2BufQueueFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
field uint32
flags uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64

Vb2V4l2BufDoneFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
field uint32
flags uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64

Vb2V4l2QbufFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
field uint32
flags uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64

Vb2V4l2DqbufFtraceEvent

Defined in v4l2.proto

Fields:

Field Type Description
field uint32
flags uint32
minor int32
sequence uint32
timecode_flags uint32
timecode_frames uint32
timecode_hours uint32
timecode_minutes uint32
timecode_seconds uint32
timecode_type uint32
timecode_userbits0 uint32
timecode_userbits1 uint32
timecode_userbits2 uint32
timecode_userbits3 uint32
timestamp int64

DsiCmdFifoStatusFtraceEvent

Defined in panel.proto

Fields:

Field Type Description
header uint32
payload uint32

DsiRxFtraceEvent

Defined in panel.proto

Fields:

Field Type Description
cmd uint32
rx_buf uint32

DsiTxFtraceEvent

Defined in panel.proto

Fields:

Field Type Description
last uint32
tx_buf uint32
type uint32

AndroidFsDatareadEndFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
bytes int32
ino uint64
offset int64

AndroidFsDatareadStartFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
bytes int32
cmdline string
i_size int64
ino uint64
offset int64
pathbuf string
pid int32

AndroidFsDatawriteEndFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
bytes int32
ino uint64
offset int64

AndroidFsDatawriteStartFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
bytes int32
cmdline string
i_size int64
ino uint64
offset int64
pathbuf string
pid int32

AndroidFsFsyncEndFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
bytes int32
ino uint64
offset int64

AndroidFsFsyncStartFtraceEvent

Defined in android_fs.proto

Fields:

Field Type Description
cmdline string
i_size int64
ino uint64
pathbuf string
pid int32

FuncgraphEntryFtraceEvent

Defined in ftrace.proto

Fields:

Field Type Description
depth int32
func uint64

FuncgraphExitFtraceEvent

Defined in ftrace.proto

Fields:

Field Type Description
calltime uint64
depth int32
func uint64
overrun uint64
rettime uint64

VirtioVideoCmdFtraceEvent

Defined in virtio_video.proto

Fields:

Field Type Description
stream_id uint32
type uint32

VirtioVideoCmdDoneFtraceEvent

Defined in virtio_video.proto

Fields:

Field Type Description
stream_id uint32
type uint32

VirtioVideoResourceQueueFtraceEvent

Defined in virtio_video.proto

Fields:

Field Type Description
data_size0 uint32
data_size1 uint32
data_size2 uint32
data_size3 uint32
queue_type uint32
resource_id int32
stream_id int32
timestamp uint64

VirtioVideoResourceQueueDoneFtraceEvent

Defined in virtio_video.proto

Fields:

Field Type Description
data_size0 uint32
data_size1 uint32
data_size2 uint32
data_size3 uint32
queue_type uint32
resource_id int32
stream_id int32
timestamp uint64

MmShrinkSlabStartFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
cache_items uint64
delta uint64
gfp_flags uint32
lru_pgs uint64
nr_objects_to_shrink int64
pgs_scanned uint64
shr uint64
shrink uint64
total_scan uint64
nid int32
priority int32

MmShrinkSlabEndFtraceEvent

Defined in vmscan.proto

Fields:

Field Type Description
new_scan int64
retval int32
shr uint64
shrink uint64
total_scan int64
unused_scan int64
nid int32

TrustySmcFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
r0 uint64
r1 uint64
r2 uint64
r3 uint64

TrustySmcDoneFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
ret uint64

TrustyStdCall32FtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
r0 uint64
r1 uint64
r2 uint64
r3 uint64

TrustyStdCall32DoneFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
ret int64

TrustyShareMemoryFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
len uint64
lend uint32
nents uint32

TrustyShareMemoryDoneFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
handle uint64
len uint64
lend uint32
nents uint32
ret int32

TrustyReclaimMemoryFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
id uint64

TrustyReclaimMemoryDoneFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
id uint64
ret int32

TrustyIrqFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
irq int32

TrustyIpcHandleEventFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
chan uint32
event_id uint32
srv_name string

TrustyIpcConnectFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
chan uint32
port string
state int32

TrustyIpcConnectEndFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
chan uint32
err int32
state int32

TrustyIpcWriteFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
buf_id uint64
chan uint32
kind_shm int32
len_or_err int32
shm_cnt uint64
srv_name string

TrustyIpcPollFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
chan uint32
poll_mask uint32
srv_name string

TrustyIpcReadFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
chan uint32
srv_name string

TrustyIpcReadEndFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
buf_id uint64
chan uint32
len_or_err int32
shm_cnt uint64
srv_name string

TrustyIpcRxFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
buf_id uint64
chan uint32
srv_name string

TrustyEnqueueNopFtraceEvent

Defined in trusty.proto

Fields:

Field Type Description
arg1 uint32
arg2 uint32
arg3 uint32

CmaAllocStartFtraceEvent

Defined in cma.proto

Fields:

Field Type Description
align uint32
count uint32
name string

CmaAllocInfoFtraceEvent

Defined in cma.proto

Fields:

Field Type Description
align uint32
count uint32
err_iso uint32
err_mig uint32
err_test uint32
name string
nr_mapped uint64
nr_migrated uint64
nr_reclaimed uint64
pfn uint64

LwisTracingMarkWriteFtraceEvent

Defined in lwis.proto

Fields:

Field Type Description
lwis_name string
type uint32
pid int32
func_name string
value int64

VirtioGpuCmdQueueFtraceEvent

Defined in virtio_gpu.proto

Fields:

Field Type Description
ctx_id uint32
dev int32
fence_id uint64
flags uint32
name string
num_free uint32
seqno uint32
type uint32
vq uint32

VirtioGpuCmdResponseFtraceEvent

Defined in virtio_gpu.proto

Fields:

Field Type Description
ctx_id uint32
dev int32
fence_id uint64
flags uint32
name string
num_free uint32
seqno uint32
type uint32
vq uint32

MaliMaliKCPUCQSSETFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
id uint32
info_val1 uint64
info_val2 uint64
kctx_id uint32
kctx_tgid int32

MaliMaliKCPUCQSWAITSTARTFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
id uint32
info_val1 uint64
info_val2 uint64
kctx_id uint32
kctx_tgid int32

MaliMaliKCPUCQSWAITENDFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
id uint32
info_val1 uint64
info_val2 uint64
kctx_id uint32
kctx_tgid int32

MaliMaliKCPUFENCESIGNALFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
info_val1 uint64
info_val2 uint64
kctx_tgid int32
kctx_id uint32
id uint32

MaliMaliKCPUFENCEWAITSTARTFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
info_val1 uint64
info_val2 uint64
kctx_tgid int32
kctx_id uint32
id uint32

MaliMaliKCPUFENCEWAITENDFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
info_val1 uint64
info_val2 uint64
kctx_tgid int32
kctx_id uint32
id uint32

HypEnterFtraceEvent

Defined in hyp.proto

Fields:

Field Type Description

HypExitFtraceEvent

Defined in hyp.proto

Fields:

Field Type Description

HostHcallFtraceEvent

Defined in hyp.proto

Fields:

Field Type Description
id uint32
invalid uint32

HostSmcFtraceEvent

Defined in hyp.proto

Fields:

Field Type Description
id uint64
forwarded uint32

HostMemAbortFtraceEvent

Defined in hyp.proto

Fields:

Field Type Description
esr uint64
addr uint64

SuspendResumeMinimalFtraceEvent

Defined in synthetic.proto

Fields:

Field Type Description
start uint32

MaliMaliCSFINTERRUPTSTARTFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
kctx_tgid int32
kctx_id uint32
info_val uint64

MaliMaliCSFINTERRUPTENDFtraceEvent

Defined in mali.proto

Fields:

Field Type Description
kctx_tgid int32
kctx_id uint32
info_val uint64

SamsungTracingMarkWriteFtraceEvent

Defined in samsung.proto

Fields:

Field Type Description
pid int32
trace_name string
trace_begin uint32
trace_type uint32
value int32

BinderCommandFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
cmd uint32

BinderReturnFtraceEvent

Defined in binder.proto

Fields:

Field Type Description
cmd uint32

SchedSwitchWithCtrsFtraceEvent

Defined in perf_trace_counters.proto

Fields:

Field Type Description
old_pid int32
new_pid int32
cctr uint32
ctr0 uint32
ctr1 uint32
ctr2 uint32
ctr3 uint32
lctr0 uint32
lctr1 uint32
ctr4 uint32
ctr5 uint32
prev_comm string
prev_pid int32
cyc uint32
inst uint32
stallbm uint32
l3dm uint32

GpuWorkPeriodFtraceEvent

Defined in power.proto

Fields:

Field Type Description
gpu_id uint32
uid uint32
start_time_ns uint64
end_time_ns uint64
total_active_duration_ns uint64

RpmStatusFtraceEvent

Defined in rpm.proto

Fields:

Field Type Description
name string
status int32

FtraceEventBundle.CompactSched

Optionally-enabled compact encoding of a batch of scheduling events. Only a subset of events & their fields is recorded. All fields (except comms) are stored in a structure-of-arrays form, one entry in each repeated field per event.

Defined in ftrace_event_bundle.proto

Fields:

Field Type Description
intern_table string[] Interned table of unique strings for this bundle.
switch_timestamp uint64[] Delta-encoded timestamps across all sched_switch events within this bundle. The first is absolute, each next one is relative to its predecessor.
switch_prev_state int64[]
switch_next_pid int32[]
switch_next_prio int32[]
switch_next_comm_index uint32[] One per event, index into intern_table corresponding to the next_comm field of the event.
waking_timestamp uint64[] Delta-encoded timestamps across all sched_waking events within this bundle. The first is absolute, each next one is relative to its predecessor.
waking_pid int32[]
waking_target_cpu int32[]
waking_prio int32[]
waking_comm_index uint32[] One per event, index into intern_table corresponding to the comm field of the event.
waking_common_flags uint32[]

FtraceClock

Defined in ftrace_event_bundle.proto

Enum values:

Name Value Description
FTRACE_CLOCK_UNSPECIFIED 0 There is no FTRACE_CLOCK_BOOT entry as that's the default assumption. When the ftrace clock is "boot", it's just omitted (so UNSPECIFIED == BOOT).
FTRACE_CLOCK_UNKNOWN 1
FTRACE_CLOCK_GLOBAL 2
FTRACE_CLOCK_LOCAL 3
FTRACE_CLOCK_MONO_RAW 4

FtraceEventBundle.FtraceError

Errors encountered during parsing of the raw ftrace data. In case of ring buffer layout errors, the parser skips the rest of the offending kernel buffer page and continues from the next page. See also FtraceStats.ftrace_parse_errors, which collates all unique errors seen within the duration of the trace (even if the affected bundles get overwritten in ring buffer mode).

Defined in ftrace_event_bundle.proto

Fields:

Field Type Description
timestamp uint64 Timestamp of the data that we're unable to parse, in the ftrace clock domain. Currently, we use the base timestamp of the tracing page containing the bad record rather than the time of the record itself.
status FtraceParseStatus

ExtensionDescriptor

This message contains descriptors used to parse extension fields of TrackEvent.

See docs/design-docs/extensions.md for more details.

Defined in extension_descriptor.proto

Fields:

Field Type Description
extension_set FileDescriptorSet

FileDescriptorSet

The protocol compiler can output a FileDescriptorSet containing the .proto files it parses.

Defined in descriptor.proto

Fields:

Field Type Description
file FileDescriptorProto[]

FileDescriptorProto

Describes a complete .proto file.

Defined in descriptor.proto

Fields:

Field Type Description
name string file name, relative to root of source tree
package string e.g. "foo", "foo.bar", etc.
dependency string[] Names of files imported by this file.
public_dependency int32[] Indexes of the public imported files in the dependency list above.
weak_dependency int32[] Indexes of the weak imported files in the dependency list.
For Google-internal migration only. Do not use.
message_type DescriptorProto[] All top-level definitions in this file.
enum_type EnumDescriptorProto[]
extension FieldDescriptorProto[]

DescriptorProto

Describes a message type.

Defined in descriptor.proto

Fields:

Field Type Description
name string
field FieldDescriptorProto[]
extension FieldDescriptorProto[]
nested_type DescriptorProto[]
enum_type EnumDescriptorProto[]
oneof_decl OneofDescriptorProto[]
reserved_range ReservedRange[]
reserved_name string[] Reserved field names, which may not be used by fields in the same message.
A given name may only be reserved once.

FieldDescriptorProto

Describes a field within a message.

Defined in descriptor.proto

Fields:

Field Type Description
name string
number int32
label Label
type Type If type_name is set, this need not be set. If both this and type_name are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
type_name string For message and enum types, this is the name of the type. If the name starts with a '.', it is fully-qualified. Otherwise, C++-like scoping rules are used to find the type (i.e. first the nested types within this message are searched, then within the parent, on up to the root namespace).
extendee string For extensions, this is the name of the type being extended. It is resolved in the same manner as type_name.
default_value string For numeric types, contains the original text representation of the value.
For booleans, "true" or "false".
For strings, contains the default text contents (not escaped in any way).
For bytes, contains the C escaped value. All bytes >= 128 are escaped.
options FieldOptions
oneof_index int32 If set, gives the index of a oneof in the containing type's oneof_decl list. This field is a member of that oneof.

FieldDescriptorProto.Label

Defined in descriptor.proto

Enum values:

Name Value Description
LABEL_OPTIONAL 1 0 is reserved for errors
LABEL_REQUIRED 2
LABEL_REPEATED 3

FieldDescriptorProto.Type

Defined in descriptor.proto

Enum values:

Name Value Description
TYPE_DOUBLE 1 0 is reserved for errors.
Order is weird for historical reasons.
TYPE_FLOAT 2
TYPE_INT64 3 Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if negative values are likely.
TYPE_UINT64 4
TYPE_INT32 5 Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if negative values are likely.
TYPE_FIXED64 6
TYPE_FIXED32 7
TYPE_BOOL 8
TYPE_STRING 9
TYPE_GROUP 10 Tag-delimited aggregate.
Group type is deprecated and not supported in proto3. However, Proto3 implementations should still be able to parse the group wire format and treat group fields as unknown fields.
TYPE_MESSAGE 11 Length-delimited aggregate.
TYPE_BYTES 12 New in version 2.
TYPE_UINT32 13
TYPE_ENUM 14
TYPE_SFIXED32 15
TYPE_SFIXED64 16
TYPE_SINT32 17 Uses ZigZag encoding.
TYPE_SINT64 18 Uses ZigZag encoding.

FieldOptions

Defined in descriptor.proto

Fields:

Field Type Description
packed bool The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. Rather than repeatedly writing the tag and type for each element, the entire array is encoded as a single length-delimited blob. In proto3, only explicit setting it to false will avoid using packed encoding.
uninterpreted_option UninterpretedOption[] The parser stores options it doesn't recognize here. See above.

UninterpretedOption

A message representing a option the parser does not recognize. This only appears in options protos created by the compiler::Parser class. DescriptorPool resolves these when building Descriptor objects. Therefore, options protos in descriptor objects (e.g. returned by Descriptor::options(), or produced by Descriptor::CopyTo()) will never have UninterpretedOptions in them.

Defined in descriptor.proto

Fields:

Field Type Description
name NamePart[]
identifier_value string The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. Exactly one of these should be set.
positive_int_value uint64
negative_int_value int64
double_value double
string_value bytes
aggregate_value string

UninterpretedOption.NamePart

The name of the uninterpreted option. Each string represents a segment in a dot-separated name. is_extension is true iff a segment represents an extension (denoted with parentheses in options specs in .proto files). E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents "foo.(bar.baz).moo".

Defined in descriptor.proto

Fields:

Field Type Description
name_part string
is_extension bool

EnumDescriptorProto

Describes an enum type.

Defined in descriptor.proto

Fields:

Field Type Description
name string
value EnumValueDescriptorProto[]
reserved_name string[] Reserved enum value names, which may not be reused. A given name may only be reserved once.

EnumValueDescriptorProto

Describes a value within an enum.

Defined in descriptor.proto

Fields:

Field Type Description
name string
number int32

OneofDescriptorProto

Describes a oneof.

Defined in descriptor.proto

Fields:

Field Type Description
name string
options OneofOptions

OneofOptions

Defined in descriptor.proto

Fields:

Field Type Description

DescriptorProto.ReservedRange

Range of reserved tag numbers. Reserved tag numbers may not be used by fields or extension ranges in the same message. Reserved ranges may not overlap.

Defined in descriptor.proto

Fields:

Field Type Description
start int32 Inclusive.
end int32 Exclusive.

NetworkPacketEvent

NetworkPacketEvent records the details of a single packet sent or received on the network (in Linux kernel terminology, one sk_buff struct).

Defined in network_trace.proto

Fields:

Field Type Description
direction TrafficDirection The direction traffic is flowing for this event.
interface string The name of the interface if available (e.g. 'rmnet0').
length uint32 The length of the packet in bytes (wire_size - L2_header_size). Ignored when using NetworkPacketEvent as the ctx in either NetworkPacketBundle or NetworkPacketContext.
uid uint32 The Linux user id associated with the packet's socket.
tag uint32 The Android network tag associated with the packet's socket.
ip_proto uint32 The packet's IP protocol (TCP=6, UDP=17, etc).
tcp_flags uint32 The packet's TCP flags as a bitmask (FIN=0x1, SYN=0x2, RST=0x4, etc).
local_port uint32 The local udp/tcp port of the packet.
remote_port uint32 The remote udp/tcp port of the packet.
icmp_type uint32 The 1-byte ICMP type identifier.
icmp_code uint32 The 1-byte ICMP code identifier.

TrafficDirection

Defined in network_trace.proto

Enum values:

Name Value Description
DIR_UNSPECIFIED 0
DIR_INGRESS 1
DIR_EGRESS 2

NetworkPacketBundle

NetworkPacketBundle bundles one or more packets sharing the same attributes.

Defined in network_trace.proto

Fields:

Field Type Description
iid uint64 The intern id for looking up the associated packet context.
ctx NetworkPacketEvent The inlined context for events in this bundle.
packet_timestamps uint64[] The timestamp of the i-th packet encoded as the nanoseconds since the enclosing TracePacket's timestamp.
packet_lengths uint32[] The length of the i-th packet in bytes (wire_size - L2_header_size).
total_packets uint32 Total number of packets in the bundle (when above aggregation_threshold).
total_duration uint64 Duration between first and last packet (when above aggregation_threshold).
total_length uint64 Total packet length in bytes (when above aggregation_threshold).

TrackEventRangeOfInterest

This message specifies the "range of interest" for track events. With the drop_track_event_data_before option set to kTrackEventRangeOfInterest, Trace Processor drops track events outside of this range.

Defined in range_of_interest.proto

Fields:

Field Type Description
start_us int64

LayersSnapshotProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
elapsed_realtime_nanos sfixed64 elapsed realtime in nanos since boot of when this entry was logged
where string where the trace originated
layers LayersProto
hwc_blob string Blob for the current HWC information for all layers, reported by dumpsys.
excludes_composition_state bool Excludes state sent during composition like visible region and composition type.
missed_entries uint32 Number of missed entries since the last entry was recorded.
displays DisplayProto[]
vsync_id int64

LayersProto

Contains a list of all layers.

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
layers LayerProto[]

LayerProto

Information about each layer.

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
id int32 unique id per layer.
name string unique name per layer.
children int32[] list of children this layer may have. May be empty.
relatives int32[] list of layers that are z order relative to this layer.
type string The type of layer, ex Color, Layer
transparent_region RegionProto
visible_region RegionProto
damage_region RegionProto
layer_stack uint32
z int32 The layer's z order. Can be z order in layer stack, relative to parent, or relative to another layer specified in zOrderRelative.
position PositionProto The layer's position on the display.
requested_position PositionProto The layer's requested position.
size SizeProto The layer's size.
crop RectProto The layer's crop in its own bounds.
final_crop RectProto The layer's crop in its parent's bounds.
is_opaque bool
invalidate bool
dataspace string
pixel_format string
color ColorProto The layer's actual color.
requested_color ColorProto The layer's requested color.
flags uint32 Can be any combination of hidden = 0x01 opaque = 0x02, secure = 0x80,
transform TransformProto The layer's actual transform
requested_transform TransformProto The layer's requested transform.
parent int32 The parent layer. This value can be null if there is no parent.
z_order_relative_of int32 The layer that this layer has a z order relative to. This value can be null.
active_buffer ActiveBufferProto This value can be null if there's nothing to draw.
queued_frames int32 The number of frames available.
refresh_pending bool
hwc_frame RectProto The layer's composer backend destination frame
hwc_crop FloatRectProto The layer's composer backend source crop
hwc_transform int32 The layer's composer backend transform
window_type int32
app_id int32
hwc_composition_type HwcCompositionType The layer's composition type
is_protected bool If it's a buffer layer, indicate if the content is protected
curr_frame uint64 Current frame number being rendered.
barrier_layer BarrierLayerProto[] A list of barriers that the layer is waiting to update state.
buffer_transform TransformProto If active_buffer is not null, record its transform.
effective_scaling_mode int32
corner_radius float Layer's corner radius.
metadata string Metadata map. May be empty.
effective_transform TransformProto
source_bounds FloatRectProto
bounds FloatRectProto
screen_bounds FloatRectProto
input_window_info InputWindowInfoProto
corner_radius_crop FloatRectProto Crop used to draw the rounded corner.
shadow_radius float length of the shadow to draw around the layer, it may be set on the layer or set by a parent layer.
color_transform ColorTransformProto
is_relative_of bool
background_blur_radius int32 Layer's background blur radius in pixels.
owner_uid uint32
blur_regions BlurRegion[] Regions of a layer, where blur should be applied.
is_trusted_overlay bool
requested_corner_radius float Corner radius explicitly set on layer rather than inherited
destination_frame RectProto
original_id uint32

RegionProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
rect RectProto[]

RectProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
left int32
top int32
right int32
bottom int32

PositionProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
x float
y float

SizeProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
w int32
h int32

ColorProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
r float
g float
b float
a float

TransformProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
dsdx float
dtdx float
dsdy float
dtdy float
type int32

ActiveBufferProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
width uint32
height uint32
stride uint32
format int32
usage uint64

FloatRectProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
left float
top float
right float
bottom float

HwcCompositionType

Must match definition in the IComposerClient HAL

Defined in surfaceflinger_layers.proto

Enum values:

Name Value Description
HWC_TYPE_UNSPECIFIED 0 Invalid composition type
HWC_TYPE_CLIENT 1 Layer was composited by the client into the client target buffer
HWC_TYPE_DEVICE 2 Layer was composited by the device through hardware overlays
HWC_TYPE_SOLID_COLOR 3 Layer was composited by the device using a color
HWC_TYPE_CURSOR 4 Similar to DEVICE, but the layer position may have been asynchronously set through setCursorPosition
HWC_TYPE_SIDEBAND 5 Layer was composited by the device via a sideband stream
HWC_TYPE_DISPLAY_DECORATION 6 Layer was composited by hardware optimized for display decoration

BarrierLayerProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
id int32 layer id the barrier is waiting on.
frame_number uint64 frame number the barrier is waiting on.

InputWindowInfoProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
layout_params_flags uint32
layout_params_type int32
frame RectProto
touchable_region RegionProto
surface_inset int32
visible bool
can_receive_keys bool
focusable bool
has_wallpaper bool
global_scale_factor float
window_x_scale float
window_y_scale float
crop_layer_id int32
replace_touchable_region_with_crop bool
touchable_region_crop RectProto
transform TransformProto
input_config uint32

ColorTransformProto

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
val float[] This will be a 4x4 matrix of float values

BlurRegion

Defined in surfaceflinger_common.proto

Fields:

Field Type Description
blur_radius uint32
corner_radius_tl uint32
corner_radius_tr uint32
corner_radius_bl uint32
corner_radius_br float
alpha float
left int32
top int32
right int32
bottom int32

DisplayProto

Defined in surfaceflinger_layers.proto

Fields:

Field Type Description
id uint64
name string
layer_stack uint32
size SizeProto
layer_stack_space_rect RectProto
transform TransformProto
is_virtual bool
dpi_x double
dpi_y double

TransactionTraceEntry

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
elapsed_realtime_nanos int64
vsync_id int64
transactions TransactionState[]
added_layers LayerCreationArgs[]
destroyed_layers uint32[]
added_displays DisplayState[]
removed_displays int32[]
destroyed_layer_handles uint32[]
displays_changed bool
displays DisplayInfo[]

TransactionState

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
pid int32
uid int32
vsync_id int64
input_event_id int32
post_time int64
transaction_id uint64
layer_changes LayerState[]
display_changes DisplayState[]
merged_transaction_ids uint64[]

LayerState

Keep insync with layer_state_t

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
layer_id uint32
what uint64
x float
y float
z int32
w uint32
h uint32
layer_stack uint32
flags uint32
mask uint32
matrix Matrix22
corner_radius float
background_blur_radius uint32
parent_id uint32
relative_parent_id uint32
alpha float
color Color3
transparent_region RegionProto
transform uint32
transform_to_display_inverse bool
crop RectProto
buffer_data BufferData
api int32
has_sideband_stream bool
color_transform ColorTransformProto
blur_regions BlurRegion[]
window_info_handle WindowInfo
bg_color_alpha float
bg_color_dataspace int32
color_space_agnostic bool
shadow_radius float
frame_rate_selection_priority int32
frame_rate float
frame_rate_compatibility int32
change_frame_rate_strategy int32
fixed_transform_hint uint32
frame_number uint64
auto_refresh bool
is_trusted_overlay bool
buffer_crop RectProto
destination_frame RectProto
drop_input_mode DropInputMode

LayerState.Matrix22

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
dsdx float
dtdx float
dtdy float
dsdy float

LayerState.Color3

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
r float
g float
b float

LayerState.BufferData

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
buffer_id uint64
width uint32
height uint32
frame_number uint64
flags uint32
cached_buffer_id uint64
pixel_format PixelFormat
usage uint64

LayerState.BufferData.PixelFormat

Defined in surfaceflinger_transactions.proto

Enum values:

Name Value Description
PIXEL_FORMAT_UNKNOWN 0
PIXEL_FORMAT_CUSTOM -4
PIXEL_FORMAT_TRANSLUCENT -3
PIXEL_FORMAT_TRANSPARENT -2
PIXEL_FORMAT_OPAQUE -1
PIXEL_FORMAT_RGBA_8888 1
PIXEL_FORMAT_RGBX_8888 2
PIXEL_FORMAT_RGB_888 3
PIXEL_FORMAT_RGB_565 4
PIXEL_FORMAT_BGRA_8888 5
PIXEL_FORMAT_RGBA_5551 6
PIXEL_FORMAT_RGBA_4444 7
PIXEL_FORMAT_RGBA_FP16 22
PIXEL_FORMAT_RGBA_1010102 43
PIXEL_FORMAT_R_8 56

LayerState.WindowInfo

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
layout_params_flags uint32
layout_params_type int32
touchable_region RegionProto
surface_inset int32
focusable bool unused
has_wallpaper bool unused
global_scale_factor float
crop_layer_id uint32
replace_touchable_region_with_crop bool
touchable_region_crop RectProto
transform Transform
input_config uint32

Transform

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
dsdx float
dtdx float
dtdy float
dsdy float
tx float
ty float

LayerState.DropInputMode

Defined in surfaceflinger_transactions.proto

Enum values:

Name Value Description
NONE 0
ALL 1
OBSCURED 2

DisplayState

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
id int32
what uint32
flags uint32
layer_stack uint32
orientation uint32
layer_stack_space_rect RectProto
oriented_display_space_rect RectProto
width uint32
height uint32

LayerCreationArgs

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
layer_id uint32
name string
flags uint32
parent_id uint32
mirror_from_id uint32
add_to_root bool
layer_stack_to_mirror uint32

DisplayInfo

Defined in surfaceflinger_transactions.proto

Fields:

Field Type Description
layer_stack uint32
display_id int32
logical_width int32
logical_height int32
transform_inverse Transform
transform Transform
receives_input bool
is_secure bool
is_primary bool
is_virtual bool
rotation_flags int32
transform_hint int32

ShellTransition

ShellTransition messages record information about the shell transitions in the system. This is used to track the animations that are created and execute through the shell transition system.

Defined in shell_transition.proto

Fields:

Field Type Description
id int32 The unique identifier of the transition.
create_time_ns int64 The time the transition was created on the WM side (using SystemClock.elapsedRealtimeNanos())
send_time_ns int64 The time the transition was sent from the WM side to shell (using SystemClock.elapsedRealtimeNanos())
dispatch_time_ns int64 The time the transition was dispatched by shell to execute (using SystemClock.elapsedRealtimeNanos())
merge_time_ns int64 If the transition merge was accepted by the transition handler, this contains the time the transition was merged into transition with id merge_target.
(using SystemClock.elapsedRealtimeNanos())
merge_request_time_ns int64 The time shell proposed the transition should be merged to the transition handler into transition with id merge_target.
(using SystemClock.elapsedRealtimeNanos()).
shell_abort_time_ns int64 If the transition was aborted on the shell side, this is the time that occurred.
(using SystemClock.elapsedRealtimeNanos())
wm_abort_time_ns int64 If the transition was aborted on the wm side, this is the time that occurred.
(using SystemClock.elapsedRealtimeNanos())
finish_time_ns int64 The time WM considers the transition to be complete.
(using SystemClock.elapsedRealtimeNanos())
start_transaction_id uint64 The id of the transaction that WM proposed to use as the starting transaction. It contains all the layer changes required to setup the transition and should be executed right at the start of the transition by the transition handler.
finish_transaction_id uint64 The if of the transaction that WM proposed to use as the finish transaction. It contains all the layer changes required to set the final state of the transition.
handler int32 The id of the handler that executed the transition. A HandlerMappings message in the trace will contain the mapping of id to a string representation of the handler.
type int32 The transition type of this transition (e.g. TO_FRONT, OPEN, CLOSE).
targets Target[] The list of targets that are part of this transition.
merge_target int32 The id of the transition we have requested to merge or have merged this transition into.
flags int32 The flags set on this transition.
starting_window_remove_time_ns int64 The time the starting window was removed. Tracked because this can happen after the transition finishes, but the app may not yet be visible until the starting window is removed. So in a sense the transition is not finished until the starting window is removed. (b/284302118) (using SystemClock.elapsedRealtimeNanos())

ShellTransition.Target

Contains the information about the windows targeted in a transition.

Defined in shell_transition.proto

Fields:

Field Type Description
mode int32 The transition mode of this target (e.g. TO_FRONT, CLOSE...)
layer_id int32 The layer id of this target.
window_id int32 The window id of this target.
flags int32 The flags set on this target.

ShellHandlerMappings

Contains mappings from handler ids to string representation of the handlers.

Defined in shell_transition.proto

Fields:

Field Type Description
mapping ShellHandlerMapping[]

ShellHandlerMapping

Defined in shell_transition.proto

Fields:

Field Type Description
id int32 The id of the handler used in the ShellTransition message.
name string A human readable and meaningful string representation of the handler.

ProtoLogMessage

represents a single log entry

Defined in protolog.proto

Fields:

Field Type Description
message_id fixed64 log statement identifier, created from message string and log level.
str_param_iids uint32[] string parameters passed to the log call that have been interned.
sint64_params sint64[] integer parameters passed to the log call.
double_params double[] floating point parameters passed to the log call.
boolean_params int32[] boolean parameters passed to the log call.
stacktrace_iid uint32 id of the interned stacktrace string (only dumped if explicitly confuigured to do so)

ProtoLogViewerConfig

contains all the data required to fully decode the protolog messages

Defined in protolog.proto

Fields:

Field Type Description
messages MessageData[]
groups Group[]

ProtoLogViewerConfig.MessageData

Defined in protolog.proto

Fields:

Field Type Description
message_id fixed64 the id of the message that is logged in a ProtoLogMessage
message string the string representation of the message
level ProtoLogLevel the level of the message
group_id uint32 the id of the log group this message belongs to

ProtoLogLevel

Defined in protolog_common.proto

Enum values:

Name Value Description
PROTOLOG_LEVEL_UNDEFINED 0
PROTOLOG_LEVEL_DEBUG 1
PROTOLOG_LEVEL_VERBOSE 2
PROTOLOG_LEVEL_INFO 3
PROTOLOG_LEVEL_WARN 4
PROTOLOG_LEVEL_ERROR 5
PROTOLOG_LEVEL_WTF 6

ProtoLogViewerConfig.Group

information about a ProtoLog log group

Defined in protolog.proto

Fields:

Field Type Description
id uint32
name string
tag string

EtwTraceEventBundle

The result of tracing one or more etw event uses per-processor buffers where an in-use buffer is assigned to each processor at all times. Therefore, collecting multiple events they should already be synchronized.

Defined in etw_event_bundle.proto

Fields:

Field Type Description
cpu uint32
event EtwTraceEvent[]

EtwTraceEvent

Defined in etw_event.proto

Fields:

Field Type Description
timestamp uint64
cpu uint32
c_switch CSwitchEtwEvent
ready_thread ReadyThreadEtwEvent

CSwitchEtwEvent

Proto definition based on the Thread_v2 CSwitch class definition See: https://learn.microsoft.com/en-us/windows/win32/etw/cswitch

Defined in etw.proto

Fields:

Field Type Description
new_thread_id uint32 New thread ID after the switch.
old_thread_id uint32 Previous thread ID.
new_thread_priority sint32 Thread priority of the new thread.
old_thread_priority sint32 Thread priority of the previous thread.
previous_c_state uint32 The index of the C-state that was last used by the processor. A value of 0 represents the lightest idle state with higher values representing deeper C-states.
old_thread_wait_reason OldThreadWaitReason
old_thread_wait_mode OldThreadWaitMode
old_thread_state OldThreadState
old_thread_wait_ideal_processor sint32 Ideal wait time of the previous thread.
new_thread_wait_time uint32 Wait time for the new thread.

CSwitchEtwEvent.OldThreadWaitReason

Wait reason for the previous thread. The ordering is important as based on the OldThreadWaitReason definition from the link above. The following are the possible values:

Defined in etw.proto

Enum values:

Name Value Description
EXECUTIVE 0
FREE_PAGE 1
PAGE_IN 2
POOL_ALLOCATION 3
DELAY_EXECUTION 4
SUSPEND 5
USER_REQUEST 6
WR_EXECUTIVE 7
WR_FREE_PAGE 8
WR_PAGE_IN 9
WR_POOL_ALLOCATION 10
WR_DELAY_EXECUTION 11
WR_SUSPENDED 12
WR_USER_REQUEST 13
WR_EVENT_PAIR 14
WR_QUEUE 15
WR_LPC_RECEIVER 16
WR_LPC_REPLY 17
WR_VIRTUAL_MEMORY 18
WR_PAGE_OUT 19
WR_RENDEZ_VOUS 20
WR_KEYED_EVENT 21
WR_TERMINATED 22
WR_PROCESS_IN_SWAP 23
WR_CPU_RATE_CONTROL 24
WR_CALLOUT_STACK 25
WR_KERNEL 26
WR_RESOURCE 27
WR_PUSH_LOCK 28
WR_MUTEX 29
WR_QUANTUM_END 30
WR_DISPATCH_INT 31
WR_PREEMPTED 32
WR_YIELD_EXECUTION 33
WR_FAST_MUTEX 34
WR_GUARD_MUTEX 35
WR_RUNDOWN 36
MAXIMUM_WAIT_REASON 37

CSwitchEtwEvent.OldThreadWaitMode

Wait mode for the previous thread. The ordering is important as based on the OldThreadWaitMode definition from the link above. The following are the possible values:

Defined in etw.proto

Enum values:

Name Value Description
KERNEL_MODE 0
USER_MODE 1

CSwitchEtwEvent.OldThreadState

State of the previous thread. The ordering is important as based on the OldThreadState definition from the link above. The following are the possible state values:

Defined in etw.proto

Enum values:

Name Value Description
INITIALIZED 0
READY 1
RUNNING 2
STANDBY 3
TERMINATED 4
WAITING 5
TRANSITION 6
DEFERRED_READY 7

ReadyThreadEtwEvent

Proto definition based on the Thread_v2 CSwitch class definition See: https://learn.microsoft.com/en-us/windows/win32/etw/readythread

Defined in etw.proto

Fields:

Field Type Description
t_thread_id uint32 The thread identifier of the thread being readied for execution.
adjust_reason AdjustReason
adjust_increment sint32 The value by which the priority is being adjusted.
flag TraceFlag

ReadyThreadEtwEvent.AdjustReason

The reason for the priority boost. The ordering is important as based on the AdjustReason definition from the link above.

Defined in etw.proto

Enum values:

Name Value Description
IGNORE_THE_INCREMENT 0
APPLY_INCREMENT 1 Apply the increment, which will decay incrementally at the end of each quantum.
APPLY_INCREMENT_BOOST 2 Apply the increment as a boost that will decay in its entirety at quantum (typically for priority donation).

ReadyThreadEtwEvent.TraceFlag

Defined in etw.proto

Enum values:

Name Value Description
TRACE_FLAG_UNSPECIFIED 0
THREAD_READIED 1 The thread has been readied from DPC (deferred procedure call).
KERNEL_STACK_SWAPPED_OUT 2 The kernel stack is currently swapped out.
PROCESS_ADDRESS_SWAPPED_OUT 4 The process address space is swapped out.

V8JsCode

Defined in v8.proto

Fields:

Field Type Description
v8_isolate_iid uint64
tid uint32
v8_js_function_iid uint64
tier Tier
instruction_start uint64
instruction_size_bytes uint64
machine_code bytes
bytecode bytes

V8JsCode.Tier

Defined in v8.proto

Enum values:

Name Value Description
TIER_UNKNOWN 0
TIER_IGNITION 1
TIER_SPARKPLUG 2
TIER_MAGLEV 3
TIER_TURBOSHAFT 4
TIER_TURBOFAN 5

V8InternalCode

Defined in v8.proto

Fields:

Field Type Description
v8_isolate_iid uint64
tid uint32
name string
type Type
builtin_id int32
instruction_start uint64
instruction_size_bytes uint64
machine_code bytes

V8InternalCode.Type

Defined in v8.proto

Enum values:

Name Value Description
TYPE_UNKNOWN 0
TYPE_BYTECODE_HANDLER 1
TYPE_FOR_TESTING 2
TYPE_BUILTIN 3
TYPE_WASM_FUNCTION 4
TYPE_WASM_TO_CAPI_FUNCTION 5
TYPE_WASM_TO_JS_FUNCTION 6
TYPE_JS_TO_WASM_FUNCTION 7
TYPE_JS_TO_JS_FUNCTION 8
TYPE_C_WASM_ENTRY 9

V8WasmCode

Defined in v8.proto

Fields:

Field Type Description
v8_isolate_iid uint64
tid uint32
v8_wasm_script_iid uint64
function_name string
tier Tier
code_offset_in_module int32
instruction_start uint64
instruction_size_bytes uint64
machine_code bytes

V8WasmCode.Tier

Defined in v8.proto

Enum values:

Name Value Description
TIER_UNKNOWN 0
TIER_LIFTOFF 1
TIER_TURBOFAN 2

V8RegExpCode

Defined in v8.proto

Fields:

Field Type Description
v8_isolate_iid uint64
tid uint32
pattern V8String
instruction_start uint64
instruction_size_bytes uint64
machine_code bytes

V8String

Strings used by V8 can have different encodings, instead of coverting to a common encoding (e.g. UTF-8) on device is expensive. Instead we send the "raw" string and do the convestion at trace ingestion time.

ATTENTION: There is some overhead in using a message (as opossed to having the `oneof encoded_string`` direcly embedded in the message), so use this message in places were these extra bytes don't matter that much.

Defined in v8.proto

Fields:

Field Type Description
latin1 bytes ISO/IEC 8859-1:1998 encoding aka latin1 https://en.wikipedia.org/wiki/ISO/IEC_8859-1
utf16_le bytes UTF-16 Little Endian Encoding
utf16_be bytes UTF-16 Big Endian Encoding

V8CodeMove

Move event for V8 code (JS / Wasm / Internal / Regexp) that was relocated in memory by V8's GC.

Defined in v8.proto

Fields:

Field Type Description
isolate_iid uint64
tid uint32
from_instruction_start_address uint64
to_instruction_start_address uint64
instruction_size_bytes uint64
to_machine_code bytes
to_bytecode bytes

AndroidInputEvent

Defined in android_input_event.proto

Fields:

Field Type Description
dispatcher_motion_event AndroidMotionEvent Traces input events received by or generated by InputDispatcher
dispatcher_motion_event_redacted AndroidMotionEvent
dispatcher_key_event AndroidKeyEvent
dispatcher_key_event_redacted AndroidKeyEvent
dispatcher_window_dispatch_event AndroidWindowInputDispatchEvent Traces an event being dispatched to a window.
dispatcher_window_dispatch_event_redacted AndroidWindowInputDispatchEvent

AndroidMotionEvent

A representation of an Android MotionEvent. See: https://developer.android.com/reference/android/view/MotionEvent

Defined in android_input_event.proto

Fields:

Field Type Description
event_id fixed32 The randomly-generated ID used to track the event through the pipeline.
event_time_nanos int64 The event's timestamp - generated by the kernel.
source uint32
action int32
device_id int32
display_id sint32 Use a signed int for display_id, because -1 (DISPLAY_IS_NONE) is a common value.
classification int32
flags uint32
pointer Pointer[]
original_event_id fixed32[] If this event was synthesized as a result of one or more different event, original_event_ids are the event_ids associated with the original events.
For example, if this is an ACTION_HOVER_ENTER event that is synthesized due to an ACTION_HOVER_MOVE event entering the bounds of a window, the id of the original hover move event will be listed here.
down_time_nanos int64 The timestamp of the ACTION_DOWN event associated with this gesture.
cursor_position_x float
cursor_position_y float
action_button int32
button_state uint32
meta_state uint32
policy_flags uint32
precision_x float
precision_y float

AndroidMotionEvent.Pointer

A representation of one pointer inside a MotionEvent. Each Pointer contains the values present in its corresponding MotionEvent.PointerCoords and MotionEvent.PointerProperties.

Defined in android_input_event.proto

Fields:

Field Type Description
axis_value AxisValue[]
pointer_id int32
tool_type int32

AndroidMotionEvent.Pointer.AxisValue

Defined in android_input_event.proto

Fields:

Field Type Description
axis int32
value float

AndroidKeyEvent

A representation of an Android KeyEvent. See: https://developer.android.com/reference/android/view/KeyEvent

Defined in android_input_event.proto

Fields:

Field Type Description
event_id fixed32 The randomly-generated ID used to track the event through the pipeline.
event_time_nanos int64 The event's timestamp - generated by the kernel.
down_time_nanos int64 The timestamp of the ACTION_DOWN event associated with this gesture.
source uint32
action int32
device_id int32
display_id sint32 Use a signed int for display_id, because -1 (DISPLAY_IS_NONE) is a common value.
key_code int32
scan_code uint32
meta_state uint32
repeat_count int32
flags uint32
policy_flags uint32

AndroidWindowInputDispatchEvent

An event that traces an input event being dispatched by the system to one window.

Defined in android_input_event.proto

Fields:

Field Type Description
event_id fixed32 The event_id of the event that was dispatched to the window.
vsync_id int64 The vsync_id of the frame in which the decision was made to dispatch the event to the window.
window_id int32 The id of the window to which the event was dispatched.
dispatched_pointer DispatchedPointer[] Only relevant for MotionEvents that are dispatched to a screen location.
Each DispatchedPointer has a 1:1 correspondence with the Pointers in the AndroidMotionEvent.
resolved_flags uint32 The event flags that were used when dispatching the event to this window.
If the same event is dispatched to more than one window, it is possible that they were dispatched using different flag values for each window.

AndroidWindowInputDispatchEvent.DispatchedPointer

Stores x/y values for each pointer sent to the window for events that are dispatched to a certain location on the screen. This is not relevant for KeyEvents and MotionEvents that are dispatched to focused windows.

Defined in android_input_event.proto

Fields:

Field Type Description
pointer_id int32
x_in_display float The coordinates of the pointer in the logical display space, AKA "raw coordinates".
y_in_display float
axis_value_in_window AndroidMotionEvent.Pointer.AxisValue[] The axis values for this pointer that were modified by the window transform.

RemoteClockSync

Records the parameters for aligning clock readings between machines.

Defined in remote_clock_sync.proto

Fields:

Field Type Description
synced_clocks SyncedClocks[]

RemoteClockSync.SyncedClocks

Synchronized clock snapshots taken on both sides of the relay port (the tracing service and the relay service). A round of clock synchronization IPC takes emits 2 SyncedClocks messages, i.e., client snapshot -> host snapshot -> client snapshot -> host snapshot.

Defined in remote_clock_sync.proto

Fields:

Field Type Description
client_clocks ClockSnapshot
host_clocks ClockSnapshot

TestEvent

Event used by testing code.

Defined in test_event.proto

Fields:

Field Type Description
str string Arbitrary string used in tests.
seq_value uint32 The current value of the random number sequence used in tests.
counter uint64 Monotonically increased on each packet.
is_last bool No more packets should follow (from the current sequence).
payload TestPayload

TestEvent.TestPayload

Defined in test_event.proto

Fields:

Field Type Description
str string[]
nested TestPayload[]
single_string string
single_int int32
repeated_ints int32[]
remaining_nesting_depth uint32 When 0 this is the bottom-most nested message.
debug_annotations DebugAnnotation[]

InternedData

Message that contains new entries for the interning indices of a packet sequence.

The writer will usually emit new entries in the same TracePacket that first refers to them (since the last reset of interning state). They may also be emitted proactively in advance of referring to them in later packets.

Defined in interned_data.proto

Fields:

Field Type Description
event_categories EventCategory[] Each field's message type needs to specify an iid field, which is the ID of the entry in the field's interning index. Each field constructs its own index, thus interning IDs are scoped to the tracing session and field (usually as a counter for efficient var-int encoding), and optionally to the incremental state generation of the packet sequence.
event_names EventName[]
debug_annotation_names DebugAnnotationName[]
debug_annotation_value_type_names DebugAnnotationValueTypeName[]
source_locations SourceLocation[]
unsymbolized_source_locations UnsymbolizedSourceLocation[]
log_message_body LogMessageBody[]
histogram_names HistogramName[]
build_ids InternedString[] Build IDs of exectuable files.
mapping_paths InternedString[] Paths to executable files.
source_paths InternedString[] Paths to source files.
function_names InternedString[] Names of functions used in frames below.
profiled_frame_symbols ProfiledFrameSymbols[] Symbols that were added to this trace after the fact.
mappings Mapping[] Executable files mapped into processes.
frames Frame[] Frames of callstacks of a program.
callstacks Callstack[] A callstack of a program.
vulkan_memory_keys InternedString[] Additional Vulkan information sent in a VulkanMemoryEvent message
graphics_contexts InternedGraphicsContext[] Graphics context of a render stage event. This represent the GL context for an OpenGl app or the VkDevice for a Vulkan app.
gpu_specifications InternedGpuRenderStageSpecification[] Description of a GPU hardware queue or render stage.
kernel_symbols InternedString[] This is set when FtraceConfig.symbolize_ksyms = true.
The id of each symbol the number that will be reported in ftrace events like sched_block_reason.caller and is obtained from a monotonic counter.
The same symbol can have different indexes in different bundles.
This is is NOT the real address. This is to avoid disclosing KASLR through traces.
debug_annotation_string_values InternedString[] Interned string values in the DebugAnnotation proto.
packet_context NetworkPacketContext[] Interned packet context for android.network_packets.
v8_js_function_name InternedV8String[] Interned name of a js function. We only intern js functions as there is a lot of duplication for them, but less so for other strings in the V8 data source.
v8_js_function InternedV8JsFunction[] Js functions can be emitted multiple times for various compilation tiers, so it makes sense to deduplicate all this.
v8_js_script InternedV8JsScript[] Interned JS script (there is one associated with each JS function)
v8_wasm_script InternedV8WasmScript[] Interned Wasm script (there is one associated with each Wasm function)
v8_isolate InternedV8Isolate[] Every V8 event is associated with an isolate, intern the isolate to remove duplication.
protolog_string_args InternedString[] Interned protolog strings args.
protolog_stacktrace InternedString[] Interned protolog stacktraces.

EventCategory

Defined in track_event.proto

Fields:

Field Type Description
iid uint64
name string

EventName

Defined in track_event.proto

Fields:

Field Type Description
iid uint64
name string

DebugAnnotationName

Defined in debug_annotation.proto

Fields:

Field Type Description
iid uint64
name string

DebugAnnotationValueTypeName

See the proto_type_descriptor comment.

Defined in debug_annotation.proto

Fields:

Field Type Description
iid uint64
name string

UnsymbolizedSourceLocation

A source location, represented as a native symbol. This is similar to message Frame from protos/perfetto/trace/profiling/profile_common.proto, but for abitrary source code locations (for example in track event args), not stack frames.

Defined in source_location.proto

Fields:

Field Type Description
iid uint64
mapping_id uint64
rel_pc uint64

LogMessageBody

Defined in log_message.proto

Fields:

Field Type Description
iid uint64
body string

HistogramName

Defined in chrome_histogram_sample.proto

Fields:

Field Type Description
iid uint64
name string

InternedGraphicsContext

The iid is the numeric value of either the GL Context or the VkDevice handle.

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
iid uint64
pid int32
api Api

InternedGraphicsContext.Api

Defined in gpu_render_stage_event.proto

Enum values:

Name Value Description
UNDEFINED 0
OPEN_GL 1
VULKAN 2
OPEN_CL 3

InternedGpuRenderStageSpecification

Defined in gpu_render_stage_event.proto

Fields:

Field Type Description
iid uint64
name string
description string
category RenderStageCategory

InternedGpuRenderStageSpecification.RenderStageCategory

Defined in gpu_render_stage_event.proto

Enum values:

Name Value Description
OTHER 0
GRAPHICS 1
COMPUTE 2

NetworkPacketContext

An internable packet context.

Defined in network_trace.proto

Fields:

Field Type Description
iid uint64
ctx NetworkPacketEvent

InternedV8String

Interned version of V8String

Defined in v8.proto

Fields:

Field Type Description
iid uint64
latin1 bytes ISO/IEC 8859-1:1998 encoding aka latin1 https://en.wikipedia.org/wiki/ISO/IEC_8859-1
utf16_le bytes UTF-16 Little Endian Encoding
utf16_be bytes UTF-16 Big Endian Encoding

InternedV8JsFunction

Defined in v8.proto

Fields:

Field Type Description
iid uint64
v8_js_function_name_iid uint64
v8_js_script_iid uint64
is_toplevel bool
kind Kind
byte_offset uint32 Where in the script source this function is defined. This is counted in bytes not characters.

InternedV8JsFunction.Kind

Defined in v8.proto

Enum values:

Name Value Description
KIND_UNKNOWN 0
KIND_NORMAL_FUNCTION 1
KIND_MODULE 2
KIND_ASYNC_MODULE 3
KIND_BASE_CONSTRUCTOR 4
KIND_DEFAULT_BASE_CONSTRUCTOR 5
KIND_DEFAULT_DERIVED_CONSTRUCTOR 6
KIND_DERIVED_CONSTRUCTOR 7
KIND_GETTER_FUNCTION 8
KIND_STATIC_GETTER_FUNCTION 9
KIND_SETTER_FUNCTION 10
KIND_STATIC_SETTER_FUNCTION 11
KIND_ARROW_FUNCTION 12
KIND_ASYNC_ARROW_FUNCTION 13
KIND_ASYNC_FUNCTION 14
KIND_ASYNC_CONCISE_METHOD 15
KIND_STATIC_ASYNC_CONCISE_METHOD 16
KIND_ASYNC_CONCISE_GENERATOR_METHOD 17
KIND_STATIC_ASYNC_CONCISE_GENERATOR_METHOD 18
KIND_ASYNC_GENERATOR_FUNCTION 19
KIND_GENERATOR_FUNCTION 20
KIND_CONCISE_GENERATOR_METHOD 21
KIND_STATIC_CONCISE_GENERATOR_METHOD 22
KIND_CONCISE_METHOD 23
KIND_STATIC_CONCISE_METHOD 24
KIND_CLASS_MEMBERS_INITIALIZER_FUNCTION 25
KIND_CLASS_STATIC_INITIALIZER_FUNCTION 26
KIND_INVALID 27

InternedV8JsScript

Represents a script that was compiled to generate code. Some V8 code is generated out of scripts and will reference a V8Script other types of code will not (e.g. builtins).

Defined in v8.proto

Fields:

Field Type Description
iid uint64
script_id int32 Unique in a given isolate
type Type
name V8String
source V8String Actual source of the script

InternedV8JsScript.Type

Defined in v8.proto

Enum values:

Name Value Description
TYPE_UNKNOWN 0
TYPE_NORMAL 1
TYPE_EVAL 2
TYPE_MODULE 3
TYPE_NATIVE 4
TYPE_EXTENSION 5
TYPE_INSPECTOR 6

InternedV8WasmScript

Defined in v8.proto

Fields:

Field Type Description
iid uint64
script_id int32 Unique in a given isolate
url string

InternedV8Isolate

A V8 Isolate instance. A V8 Isolate represents an isolated instance of the V8 engine.

Defined in v8.proto

Fields:

Field Type Description
iid uint64
pid uint32
isolate_id int32 Process unique isolate id.
code_range CodeRange
embedded_blob_code_start_address uint64 The embedded blob holds code for built in functions that are precompiled in the V8 library.
embedded_blob_code_size uint64

InternedV8Isolate.CodeRange

A code range is a virtual memory cage that may contain executable code. Depending on the Isolate settings the Isolate might have one or not. See: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/code-range.h If the isolate defines code range this will be tracked here.

Defined in v8.proto

Fields:

Field Type Description
base_address uint64
size uint64
embedded_blob_code_copy_start_address uint64 Used when short builtin calls are enabled, where embedded builtins are copied into the CodeRange so calls can be nearer.
is_process_wide bool Whether this code range is shared with other Isolates in the same process

TracePacketDefaults

Default values for TracePacket fields that hold for a particular TraceWriter packet sequence. This message contains a subset of the TracePacket fields with matching IDs. When provided, these fields define the default values that should be applied, at import time, to all TracePacket(s) with the same trusted_packet_sequence_id, unless otherwise specified in each packet.

Should be reemitted whenever incremental state is cleared on the sequence.

Defined in trace_packet_defaults.proto

Fields:

Field Type Description
timestamp_clock_id uint32
track_event_defaults TrackEventDefaults Default values for TrackEvents (e.g. default track).
perf_sample_defaults PerfSampleDefaults Defaults for perf profiler packets (PerfSample).
v8_code_defaults V8CodeDefaults Defaults for V8 code packets (V8JsCode, V8InternalCode, V8WasmCode, V8RegexpCode)

TrackEventDefaults

Default values for fields of all TrackEvents on the same packet sequence. Should be emitted as part of TracePacketDefaults whenever incremental state is cleared. It's defined here because field IDs should match those of the corresponding fields in TrackEvent.

Defined in track_event.proto

Fields:

Field Type Description
track_uuid uint64
extra_counter_track_uuids uint64[]
extra_double_counter_track_uuids uint64[]

PerfSampleDefaults

Submessage for TracePacketDefaults.

Defined in profile_packet.proto

Fields:

Field Type Description
timebase PerfEvents.Timebase The sampling timebase. Might not be identical to the data source config if the implementation decided to default/override some parameters.
process_shard_count uint32 If the config requested process sharding, report back the count and which of those bins was selected. Never changes for the duration of a trace.
chosen_process_shard uint32

PerfEvents.Timebase

What event to sample on, and how often. Commented from the perspective of its use in PerfEventConfig.

Defined in perf_events.proto

Fields:

Field Type Description
frequency uint64 Per-cpu sampling frequency in Hz, as requested from the kernel. Not the same as 1/period.
Details: the actual sampling will still be based on a period, but the kernel will dynamically adjust it based on the observed event rate, to approximate this frequency. Works best with steady-rate events like timers.
period uint64 Per-cpu sampling will occur every period counts of event.
Prefer frequency by default, as it's easier to oversample with a fixed period.
counter Counter
tracepoint Tracepoint
raw_event RawEvent
timestamp_clock PerfClock If set, samples will be timestamped with the given clock.
If unset, the clock is chosen by the implementation.
For software events, prefer PERF_CLOCK_BOOTTIME. However it cannot be used for hardware events (due to interrupt safety), for which the recommendation is to use one of the monotonic clocks.
name string Optional arbitrary name for the event, to identify it in the parsed trace. Does not affect the profiling itself. If unset, the trace parser will choose a suitable name.

PerfEvents.Counter

Builtin counter names from the uapi header. Commented with their perf tool aliases. finite), and generally make this list as extensive as possible. Excluding things like dynamic PMUs since those don't fit into a static enum.

Defined in perf_events.proto

Enum values:

Name Value Description
UNKNOWN_COUNTER 0
SW_CPU_CLOCK 1 cpu-clock
SW_PAGE_FAULTS 2 page-faults, faults
SW_TASK_CLOCK 3 task-clock
SW_CONTEXT_SWITCHES 4 context-switches, cs
SW_CPU_MIGRATIONS 5 cpu-migrations, migrations
SW_PAGE_FAULTS_MIN 6 minor-faults
SW_PAGE_FAULTS_MAJ 7 major-faults
SW_ALIGNMENT_FAULTS 8 alignment-faults
SW_EMULATION_FAULTS 9 emulation-faults
SW_DUMMY 20 dummy
HW_CPU_CYCLES 10 cpu-cycles, cycles
HW_INSTRUCTIONS 11 instructions
HW_CACHE_REFERENCES 12 cache-references
HW_CACHE_MISSES 13 cache-misses
HW_BRANCH_INSTRUCTIONS 14 branch-instructions, branches
HW_BRANCH_MISSES 15 branch-misses
HW_BUS_CYCLES 16 bus-cycles
HW_STALLED_CYCLES_FRONTEND 17 stalled-cycles-frontend, idle-cycles-frontend
HW_STALLED_CYCLES_BACKEND 18 stalled-cycles-backend, idle-cycles-backend
HW_REF_CPU_CYCLES 19 ref-cycles

PerfEvents.Tracepoint

Defined in perf_events.proto

Fields:

Field Type Description
name string Group and name for the tracepoint, acceptable forms:
* "sched/sched_switch" * "sched:sched_switch"
filter string Optional field-level filter for the tracepoint. Only events matching this filter will be counted (and therefore contribute to the sampling period).
Example: "prev_pid >= 42 && next_pid == 0".
For full syntax, see kernel documentation on "Event filtering":
https://www.kernel.org/doc/Documentation/trace/events.txt

PerfEvents.RawEvent

Syscall-level description of the event, propagated to the perf_event_attr struct. Primarily for local use-cases, since the event availability and encoding is hardware-specific.

Defined in perf_events.proto

Fields:

Field Type Description
type uint32
config uint64
config1 uint64
config2 uint64

PerfEvents.PerfClock

Subset of clocks that is supported by perf timestamping. CLOCK_TAI is excluded since it's not expected to be used in practice, but would require additions to the trace clock synchronisation logic.

Defined in perf_events.proto

Enum values:

Name Value Description
UNKNOWN_PERF_CLOCK 0
PERF_CLOCK_REALTIME 1
PERF_CLOCK_MONOTONIC 2
PERF_CLOCK_MONOTONIC_RAW 3
PERF_CLOCK_BOOTTIME 4

V8CodeDefaults

Defined in v8.proto

Fields:

Field Type Description
tid uint32