TracePacket

TracePacket is the root object of a Perfeto 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
process_tree ProcessTree
process_stats ProcessStats
inode_file_map InodeFileMap
chrome_events ChromeEventBundle
clock_snapshot ClockSnapshot
sys_stats SysStats
track_event TrackEvent
trace_config TraceConfig
ftrace_stats FtraceStats
trace_stats TraceStats
profile_packet ProfilePacket
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
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.
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
TODO(eseckler): Emit this field in a PacketSequenceDescriptor message instead.
trusted_packet_sequence_id uint32
interned_data InternedData Incrementally emitted interned data, valid only on the packet's sequence (packets with the same
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
previous_packet_dropped bool Flag set by the service if, for the current packet sequence (see

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()).
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.
threads_deprecated Thread[] No longer used as of Apr 2018, when the dedicated
uid int32 The uid for the process, as per /proc/pid/status.

ProcessTree.Thread

Representation of a thread.

Defined in process_tree.proto

Fields:

Field Type Description
tid int32 The thread id (as per gettid())
tgid int32 Thread group id (i.e. the PID of the process, == TID of the main thread)
name string The name of the thread.

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
TODO(dancol): analysis might be improved by time-bracketing each sample as well as the whole ProcessStats, but doing that is probably gated on a vdso for CLOCK_BOOTTIME.

ProcessStats.Process

Defined in process_stats.proto

Fields:

Field Type Description
pid int32
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
threads Thread[]
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

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
cpu_freq_indices uint32[] Pairs of frequency (represented as a (1-based) index to CpuInfo frequencies) and time at that frequency (represented as a number of ticks, see SystemInfo for the HZ (ticks / second) value to convert this to time). Frequencies with zero ticks are never uploaded. Read from /proc/tid/time_in_state.
cpu_freq_ticks uint64[]
cpu_freq_full bool Whether all frequencies with non-zero ticks are present in cpu_freq_indices. This marker is used to detect packets that describe time_in_state exhaustively.

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[]
legacy_ftrace_output string[] ftrace output from CrOS and Cast system tracing agents
TODO(eseckler): Replace system traces with native perfetto service.
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
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

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. TODO(eseckler): Update these agents to become perfetto producers.

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
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
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.

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

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_ice_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

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 A new value for a counter track.
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_values int64[]
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
source_location SourceLocation Non-interned field.
source_location_iid uint64 TODO(ssid): The interned source locations are not parsed by trace processor
Interned field.
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
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
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_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.

DebugAnnotation

Key/value annotations provided in untyped TRACE_EVENT macros. These annotations are intended for debug use and are not considered a stable API surface. As such, they should not be relied upon to implement (new) metrics.

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
string_value string
pointer_value uint64 Pointers are stored in a separate type as the JSON output treats them differently from other uint64 values.
nested_value NestedValue
legacy_json_value string Legacy instrumentation may not support conversion of nested data to NestedValue yet.

DebugAnnotation.NestedValue

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.

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
skipped_last_frame_to_reduce_latency 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
skip_next_begin_main_frame_to_reduce_latency 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
last_args BeginFrameArgs Only set if
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
TODO(nuskos): Eventually we will support interning inside of 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

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 We intend to add a binary symbol version of this in the future.
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. TODO(eseckler): Also use this message on the receiving side?

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 string
sample int64

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

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.

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
frame_source uint64
frame_sequence uint64
affects_smoothness bool If this is a droped frame (i.e. if

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.).

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
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

FtraceStats

Ftrace stats for all CPUs.

Defined in ftrace_stats.proto

Fields:

Field Type Description
phase Phase Tells when stats were sampled. There should be one sample at the beginning of the trace and one sample at the end.
cpu_stats FtraceCpuStats[] Per-CPU stats (one entry for each CPU).

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 stats for the ftrace data source gathered from the kernel from /sys/kernel/debug/tracing/per_cpu/cpuX/stats.

Defined in ftrace_stats.proto

Fields:

Field Type Description
cpu uint64 CPU index.
entries uint64 Number of entries still in the kernel buffer. Ideally this should be close to zero, as events are consumed regularly and moved into the userspace buffers (or file).
overrun uint64 Number of events lost in kernel buffers due to overwriting of old events before userspace had a chance to drain them.
commit_overrun uint64 This should always be zero. If not the buffer size is way too small or something went wrong with the tracer.
bytes_read uint64 Bytes actually read (not overwritten).
oldest_event_ts double The timestamp for the oldest event still in the ring buffer.
now_ts double The current timestamp.
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
read_events uint64 The number of events read.

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.
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.

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
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
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_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.

ProfilePacket

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. TODO(fmayer): Move to the intern tables to a common location.

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.
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
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
TODO(fmayer): This is MONOTONIC_COARSE. Refactor ClockSnapshot::Clock to have a type enum that we can reuse here.
stats ProcessStats Metadata about heapprofd.
samples HeapSample[]

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_idle uint64 bytes allocated at this callstack but not used since the last dump
See documentation of idle_allocations in HeapprofdConfig for more details.
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.

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)
Positive values indicate net current entering the battery from a charge source, negative values indicate net current discharging from the battery.
current_avg_ua int64 Instantaneous battery current in microamperes(µA).

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,
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
hz int64 Ticks per second - sysconf(_SC_CLK_TCK).

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
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.
counter_name string
event_duration_ns uint32 Only when using
counter_value int32 Only when using
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.

PerfettoMetatrace.Arg

Defined in perfetto_metatrace.proto

Fields:

Field Type Description
key string
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.

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.

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

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

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
TEST_RULE 1000

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

Message used to represent 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[] TODO(eseckler): ThreadDescriptor-based timestamps are deprecated. Replace 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 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
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 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.

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 TODO(fmayer): Consider removing this and using the index in the repeaed 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

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

Individual performance sampling packet payload. Typically corresponds to a stack sample on a configration-dependent counter overflow. Timestamps are within the root packet (in the CLOCK_BOOTTIME domain). There are three 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.
callstack_iid uint64 Unwound callstack. Might be partial, in which case a synthetic "error" frame is appended, and
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
sample_skipped_reason SampleSkipReason

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

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

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
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.

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 uint64 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

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

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
chrome_process_type ChromeProcessType
legacy_sort_index int32 To support old UI. New UI should determine default sorting by process_type.

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.

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

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
TODO(eseckler): Deprecated. Replace these with ClockSnapshot encoding.
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 Scheduler:
THREAD_POOL_FG_WORKER 4
THREAD_POOL_BG_BLOCKING 6
THREAD_POOL_FG_BLOCKING 5
THREAD_POOL_SERVICE 7
THREAD_COMPOSITOR 8 Compositor:
THREAD_VIZ_COMPOSITOR 9
THREAD_COMPOSITOR_WORKER 10
THREAD_SERVICE_WORKER 11 Renderer:
THREAD_MEMORY_INFRA 50 Tracing related threads:
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_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

FtraceEvent

Defined in ftrace_event.proto

Fields:

Field Type Description
timestamp uint64 Nanoseconds since an epoch
Epoch is configurable by writing into trace_clock
By default this timestamp is CPU local
TODO: Figure out a story for reconciling the various clocks.
pid uint32 Kernel pid (do not confuse with userspace pid aka tgid)
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

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

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

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

CgroupMkdirFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname 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

CgroupTransferTasksFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
dst_root int32
dst_id int32
pid int32
comm string
cname 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

CgroupRenameFtraceEvent

Defined in cgroup.proto

Fields:

Field Type Description
root int32
id int32
cname 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

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

MmCompactionWakeupKcompactdFtraceEvent

Defined in compaction.proto

Fields:

Field Type Description
nid int32
order int32
classzone_idx 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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
TODO(kenton): Base-64 encode?
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.

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.

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[]
remaining_nesting_depth uint32 When 0 this is the bottom-most nested message.

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
event_names EventName[]
debug_annotation_names DebugAnnotationName[]
source_locations SourceLocation[]
log_message_body LogMessageBody[]
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.

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

LogMessageBody

Defined in log_message.proto

Fields:

Field Type Description
iid uint64
body 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

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).

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[]