blob: 00dd032cc2b5f1b33fe2d1455fa5993ad66004d8 [file] [log] [blame]
// AUTOGENERATED - DO NOT EDIT
// ---------------------------
// This file has been generated by
// AOSP://external/perfetto/tools/gen_merged_protos
// merging the perfetto config protos.
// This fused proto is intended to be copied in:
// - Android tree, for statsd.
// - Google internal repos.
syntax = "proto2";
package perfetto.protos;
// Begin of protos/perfetto/common/sys_stats_counters.proto
// When editing entries here remember also to update "sys_stats_counters.h" with
// the corresponding string definitions for the actual /proc files parser.
// Counter definitions for Linux's /proc/meminfo.
enum MeminfoCounters {
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;
}
// Counter definitions for Linux's /proc/vmstat.
enum VmstatCounters {
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;
}
// End of protos/perfetto/common/sys_stats_counters.proto
// Begin of protos/perfetto/trace/clock_snapshot.proto
// A snapshot of clock readings to allow for trace alignment.
message ClockSnapshot {
message Clock {
enum Type {
UNKNOWN = 0;
REALTIME = 1;
REALTIME_COARSE = 2;
MONOTONIC = 3;
MONOTONIC_COARSE = 4;
MONOTONIC_RAW = 5;
BOOTTIME = 6;
PROCESS_CPUTIME = 7;
THREAD_CPUTIME = 8;
}
optional Type type = 1;
optional uint64 timestamp = 2;
}
repeated Clock clocks = 1;
}
// End of protos/perfetto/trace/clock_snapshot.proto
// Begin of protos/perfetto/trace/filesystem/inode_file_map.proto
// Represents the mapping between inode numbers in a block device and their path
// on the filesystem
message InodeFileMap {
// Representation of Entry
message Entry {
optional uint64 inode_number = 1;
// The path to the file, e.g. "etc/file.xml"
// List of strings for multiple hardlinks
repeated string paths = 2;
// The file type
enum Type {
UNKNOWN = 0;
FILE = 1;
DIRECTORY = 2;
}
optional Type type = 3;
}
optional uint64 block_device_id = 1;
// The mount points of the block device, e.g. ["system"].
repeated string mount_points = 2;
// The list of all the entries from the block device
repeated Entry entries = 3;
}
// End of protos/perfetto/trace/filesystem/inode_file_map.proto
// Begin of protos/perfetto/trace/ftrace/binder.proto
message BinderTransactionFtraceEvent {
optional int32 debug_id = 1;
optional int32 target_node = 2;
optional int32 to_proc = 3;
optional int32 to_thread = 4;
optional int32 reply = 5;
optional uint32 code = 6;
optional uint32 flags = 7;
}
message BinderTransactionReceivedFtraceEvent {
optional int32 debug_id = 1;
}
message BinderSetPriorityFtraceEvent {
optional int32 proc = 1;
optional int32 thread = 2;
optional uint32 old_prio = 3;
optional uint32 new_prio = 4;
optional uint32 desired_prio = 5;
}
message BinderLockFtraceEvent {
optional string tag = 1;
}
message BinderLockedFtraceEvent {
optional string tag = 1;
}
message BinderUnlockFtraceEvent {
optional string tag = 1;
}
message BinderTransactionAllocBufFtraceEvent {
optional uint64 data_size = 1;
optional int32 debug_id = 2;
optional uint64 offsets_size = 3;
}
// End of protos/perfetto/trace/ftrace/binder.proto
// Begin of protos/perfetto/trace/ftrace/block.proto
message BlockRqIssueFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint32 bytes = 4;
optional string rwbs = 5;
optional string comm = 6;
optional string cmd = 7;
}
message BlockBioBackmergeFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockBioBounceFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockBioCompleteFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 error = 4;
optional string rwbs = 5;
}
message BlockBioFrontmergeFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockBioQueueFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockBioRemapFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint64 old_dev = 4;
optional uint64 old_sector = 5;
optional string rwbs = 6;
}
message BlockDirtyBufferFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 size = 3;
}
message BlockGetrqFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockPlugFtraceEvent {
optional string comm = 1;
}
message BlockRqAbortFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
optional string rwbs = 5;
optional string cmd = 6;
}
message BlockRqCompleteFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
optional string rwbs = 5;
optional string cmd = 6;
}
message BlockRqInsertFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint32 bytes = 4;
optional string rwbs = 5;
optional string comm = 6;
optional string cmd = 7;
}
message BlockRqRemapFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional uint64 old_dev = 4;
optional uint64 old_sector = 5;
optional uint32 nr_bios = 6;
optional string rwbs = 7;
}
message BlockRqRequeueFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional int32 errors = 4;
optional string rwbs = 5;
optional string cmd = 6;
}
message BlockSleeprqFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint32 nr_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockSplitFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 new_sector = 3;
optional string rwbs = 4;
optional string comm = 5;
}
message BlockTouchBufferFtraceEvent {
optional uint64 dev = 1;
optional uint64 sector = 2;
optional uint64 size = 3;
}
message BlockUnplugFtraceEvent {
optional int32 nr_rq = 1;
optional string comm = 2;
}
// End of protos/perfetto/trace/ftrace/block.proto
// Begin of protos/perfetto/trace/ftrace/clk.proto
message ClkEnableFtraceEvent {
optional string name = 1;
}
message ClkDisableFtraceEvent {
optional string name = 1;
}
message ClkSetRateFtraceEvent {
optional string name = 1;
optional uint64 rate = 2;
}
// End of protos/perfetto/trace/ftrace/clk.proto
// Begin of protos/perfetto/trace/ftrace/ext4.proto
message Ext4DaWriteBeginFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message Ext4DaWriteEndFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 copied = 5;
}
message Ext4SyncFileEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 parent = 3;
optional int32 datasync = 4;
}
message Ext4SyncFileExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message Ext4AllocDaBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 data_blocks = 3;
optional uint32 meta_blocks = 4;
}
message Ext4AllocateBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint32 len = 4;
optional uint32 logical = 5;
optional uint32 lleft = 6;
optional uint32 lright = 7;
optional uint64 goal = 8;
optional uint64 pleft = 9;
optional uint64 pright = 10;
optional uint32 flags = 11;
}
message Ext4AllocateInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 dir = 3;
optional uint32 mode = 4;
}
message Ext4BeginOrderedTruncateFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 new_size = 3;
}
message Ext4CollapseRangeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
}
message Ext4DaReleaseSpaceFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 freed_blocks = 4;
optional int32 reserved_data_blocks = 5;
optional int32 reserved_meta_blocks = 6;
optional int32 allocated_meta_blocks = 7;
optional uint32 mode = 8;
}
message Ext4DaReserveSpaceFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 reserved_data_blocks = 4;
optional int32 reserved_meta_blocks = 5;
optional uint32 mode = 6;
optional int32 md_needed = 7;
}
message Ext4DaUpdateReserveSpaceFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 i_blocks = 3;
optional int32 used_blocks = 4;
optional int32 reserved_data_blocks = 5;
optional int32 reserved_meta_blocks = 6;
optional int32 allocated_meta_blocks = 7;
optional int32 quota_claim = 8;
optional uint32 mode = 9;
}
message Ext4DaWritePagesFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 first_page = 3;
optional int64 nr_to_write = 4;
optional int32 sync_mode = 5;
optional uint64 b_blocknr = 6;
optional uint32 b_size = 7;
optional uint32 b_state = 8;
optional int32 io_done = 9;
optional int32 pages_written = 10;
}
message Ext4DaWritePagesExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 lblk = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message Ext4DirectIOEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint64 len = 4;
optional int32 rw = 5;
}
message Ext4DirectIOExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint64 len = 4;
optional int32 rw = 5;
optional int32 ret = 6;
}
message Ext4DiscardBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 blk = 2;
optional uint64 count = 3;
}
message Ext4DiscardPreallocationsFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
}
message Ext4DropInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 drop = 3;
}
message Ext4EsCacheExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint64 pblk = 5;
optional uint32 status = 6;
}
message Ext4EsFindDelayedExtentRangeEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
}
message Ext4EsFindDelayedExtentRangeExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint64 pblk = 5;
optional uint64 status = 6;
}
message Ext4EsInsertExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint64 pblk = 5;
optional uint64 status = 6;
}
message Ext4EsLookupExtentEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
}
message Ext4EsLookupExtentExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint64 pblk = 5;
optional uint64 status = 6;
optional int32 found = 7;
}
message Ext4EsRemoveExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 lblk = 3;
optional int64 len = 4;
}
message Ext4EsShrinkFtraceEvent {
optional uint64 dev = 1;
optional int32 nr_shrunk = 2;
optional uint64 scan_time = 3;
optional int32 nr_skipped = 4;
optional int32 retried = 5;
}
message Ext4EsShrinkCountFtraceEvent {
optional uint64 dev = 1;
optional int32 nr_to_scan = 2;
optional int32 cache_cnt = 3;
}
message Ext4EsShrinkScanEnterFtraceEvent {
optional uint64 dev = 1;
optional int32 nr_to_scan = 2;
optional int32 cache_cnt = 3;
}
message Ext4EsShrinkScanExitFtraceEvent {
optional uint64 dev = 1;
optional int32 nr_shrunk = 2;
optional int32 cache_cnt = 3;
}
message Ext4EvictInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 nlink = 3;
}
message Ext4ExtConvertToInitializedEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 m_lblk = 3;
optional uint32 m_len = 4;
optional uint32 u_lblk = 5;
optional uint32 u_len = 6;
optional uint64 u_pblk = 7;
}
message Ext4ExtConvertToInitializedFastpathFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 m_lblk = 3;
optional uint32 m_len = 4;
optional uint32 u_lblk = 5;
optional uint32 u_len = 6;
optional uint64 u_pblk = 7;
optional uint32 i_lblk = 8;
optional uint32 i_len = 9;
optional uint64 i_pblk = 10;
}
message Ext4ExtHandleUnwrittenExtentsFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 flags = 3;
optional uint32 lblk = 4;
optional uint64 pblk = 5;
optional uint32 len = 6;
optional uint32 allocated = 7;
optional uint64 newblk = 8;
}
message Ext4ExtInCacheFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional int32 ret = 4;
}
message Ext4ExtLoadExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
optional uint32 lblk = 4;
}
message Ext4ExtMapBlocksEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message Ext4ExtMapBlocksExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 flags = 3;
optional uint64 pblk = 4;
optional uint32 lblk = 5;
optional uint32 len = 6;
optional uint32 mflags = 7;
optional int32 ret = 8;
}
message Ext4ExtPutInCacheFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint64 start = 5;
}
message Ext4ExtRemoveSpaceFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 start = 3;
optional uint32 end = 4;
optional int32 depth = 5;
}
message Ext4ExtRemoveSpaceDoneFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 start = 3;
optional uint32 end = 4;
optional int32 depth = 5;
optional int64 partial = 6;
optional uint32 eh_entries = 7;
}
message Ext4ExtRmIdxFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
}
message Ext4ExtRmLeafFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 partial = 3;
optional uint32 start = 4;
optional uint32 ee_lblk = 5;
optional uint64 ee_pblk = 6;
optional int32 ee_len = 7;
}
message Ext4ExtShowExtentFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pblk = 3;
optional uint32 lblk = 4;
optional uint32 len = 5;
}
message Ext4FallocateEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
optional int32 mode = 5;
optional int64 pos = 6;
}
message Ext4FallocateExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 blocks = 4;
optional int32 ret = 5;
}
message Ext4FindDelallocRangeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 from = 3;
optional uint32 to = 4;
optional int32 reverse = 5;
optional int32 found = 6;
optional uint32 found_blk = 7;
}
message Ext4ForgetFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional int32 is_metadata = 4;
optional uint32 mode = 5;
}
message Ext4FreeBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint64 count = 4;
optional int32 flags = 5;
optional uint32 mode = 6;
}
message Ext4FreeInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 uid = 3;
optional uint32 gid = 4;
optional uint64 blocks = 5;
optional uint32 mode = 6;
}
message Ext4GetImpliedClusterAllocExitFtraceEvent {
optional uint64 dev = 1;
optional uint32 flags = 2;
optional uint32 lblk = 3;
optional uint64 pblk = 4;
optional uint32 len = 5;
optional int32 ret = 6;
}
message Ext4GetReservedClusterAllocFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
}
message Ext4IndMapBlocksEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 lblk = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message Ext4IndMapBlocksExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 flags = 3;
optional uint64 pblk = 4;
optional uint32 lblk = 5;
optional uint32 len = 6;
optional uint32 mflags = 7;
optional int32 ret = 8;
}
message Ext4InsertRangeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
}
message Ext4InvalidatepageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
optional uint64 offset = 4;
optional uint32 length = 5;
}
message Ext4JournalStartFtraceEvent {
optional uint64 dev = 1;
optional uint64 ip = 2;
optional int32 blocks = 3;
optional int32 rsv_blocks = 4;
optional int32 nblocks = 5;
}
message Ext4JournalStartReservedFtraceEvent {
optional uint64 dev = 1;
optional uint64 ip = 2;
optional int32 blocks = 3;
}
message Ext4JournalledInvalidatepageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
optional uint64 offset = 4;
optional uint32 length = 5;
}
message Ext4JournalledWriteEndFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 copied = 5;
}
message Ext4LoadInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
}
message Ext4LoadInodeBitmapFtraceEvent {
optional uint64 dev = 1;
optional uint32 group = 2;
}
message Ext4MarkInodeDirtyFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 ip = 3;
}
message Ext4MbBitmapLoadFtraceEvent {
optional uint64 dev = 1;
optional uint32 group = 2;
}
message Ext4MbBuddyBitmapLoadFtraceEvent {
optional uint64 dev = 1;
optional uint32 group = 2;
}
message Ext4MbDiscardPreallocationsFtraceEvent {
optional uint64 dev = 1;
optional int32 needed = 2;
}
message Ext4MbNewGroupPaFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pa_pstart = 3;
optional uint64 pa_lstart = 4;
optional uint32 pa_len = 5;
}
message Ext4MbNewInodePaFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pa_pstart = 3;
optional uint64 pa_lstart = 4;
optional uint32 pa_len = 5;
}
message Ext4MbReleaseGroupPaFtraceEvent {
optional uint64 dev = 1;
optional uint64 pa_pstart = 2;
optional uint32 pa_len = 3;
}
message Ext4MbReleaseInodePaFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 block = 3;
optional uint32 count = 4;
}
message Ext4MballocAllocFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 orig_logical = 3;
optional int32 orig_start = 4;
optional uint32 orig_group = 5;
optional int32 orig_len = 6;
optional uint32 goal_logical = 7;
optional int32 goal_start = 8;
optional uint32 goal_group = 9;
optional int32 goal_len = 10;
optional uint32 result_logical = 11;
optional int32 result_start = 12;
optional uint32 result_group = 13;
optional int32 result_len = 14;
optional uint32 found = 15;
optional uint32 groups = 16;
optional uint32 buddy = 17;
optional uint32 flags = 18;
optional uint32 tail = 19;
optional uint32 cr = 20;
}
message Ext4MballocDiscardFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 result_start = 3;
optional uint32 result_group = 4;
optional int32 result_len = 5;
}
message Ext4MballocFreeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 result_start = 3;
optional uint32 result_group = 4;
optional int32 result_len = 5;
}
message Ext4MballocPreallocFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 orig_logical = 3;
optional int32 orig_start = 4;
optional uint32 orig_group = 5;
optional int32 orig_len = 6;
optional uint32 result_logical = 7;
optional int32 result_start = 8;
optional uint32 result_group = 9;
optional int32 result_len = 10;
}
message Ext4OtherInodeUpdateTimeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 orig_ino = 3;
optional uint32 uid = 4;
optional uint32 gid = 5;
optional uint32 mode = 6;
}
message Ext4PunchHoleFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
optional int32 mode = 5;
}
message Ext4ReadBlockBitmapLoadFtraceEvent {
optional uint64 dev = 1;
optional uint32 group = 2;
}
message Ext4ReadpageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
message Ext4ReleasepageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
message Ext4RemoveBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 from = 3;
optional uint32 to = 4;
optional int64 partial = 5;
optional uint64 ee_pblk = 6;
optional uint32 ee_lblk = 7;
optional uint32 ee_len = 8;
}
message Ext4RequestBlocksFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 len = 3;
optional uint32 logical = 4;
optional uint32 lleft = 5;
optional uint32 lright = 6;
optional uint64 goal = 7;
optional uint64 pleft = 8;
optional uint64 pright = 9;
optional uint32 flags = 10;
}
message Ext4RequestInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 dir = 2;
optional uint32 mode = 3;
}
message Ext4SyncFsFtraceEvent {
optional uint64 dev = 1;
optional int32 wait = 2;
}
message Ext4TrimAllFreeFtraceEvent {
optional int32 dev_major = 1;
optional int32 dev_minor = 2;
optional uint32 group = 3;
optional int32 start = 4;
optional int32 len = 5;
}
message Ext4TrimExtentFtraceEvent {
optional int32 dev_major = 1;
optional int32 dev_minor = 2;
optional uint32 group = 3;
optional int32 start = 4;
optional int32 len = 5;
}
message Ext4TruncateEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 blocks = 3;
}
message Ext4TruncateExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 blocks = 3;
}
message Ext4UnlinkEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 parent = 3;
optional int64 size = 4;
}
message Ext4UnlinkExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message Ext4WriteBeginFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message Ext4WriteEndFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 copied = 5;
}
message Ext4WritepageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
}
message Ext4WritepagesFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 nr_to_write = 3;
optional int64 pages_skipped = 4;
optional int64 range_start = 5;
optional int64 range_end = 6;
optional uint64 writeback_index = 7;
optional int32 sync_mode = 8;
optional uint32 for_kupdate = 9;
optional uint32 range_cyclic = 10;
}
message Ext4WritepagesResultFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
optional int32 pages_written = 4;
optional int64 pages_skipped = 5;
optional uint64 writeback_index = 6;
optional int32 sync_mode = 7;
}
message Ext4ZeroRangeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 offset = 3;
optional int64 len = 4;
optional int32 mode = 5;
}
// End of protos/perfetto/trace/ftrace/ext4.proto
// Begin of protos/perfetto/trace/ftrace/f2fs.proto
message F2fsDoSubmitBioFtraceEvent {
optional uint64 dev = 1;
optional int32 btype = 2;
optional uint32 sync = 3;
optional uint64 sector = 4;
optional uint32 size = 5;
}
message F2fsEvictInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pino = 3;
optional uint32 mode = 4;
optional int64 size = 5;
optional uint32 nlink = 6;
optional uint64 blocks = 7;
optional uint32 advise = 8;
}
message F2fsFallocateFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 mode = 3;
optional int64 offset = 4;
optional int64 len = 5;
optional int64 size = 6;
optional uint64 blocks = 7;
optional int32 ret = 8;
}
message F2fsGetDataBlockFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 iblock = 3;
optional uint64 bh_start = 4;
optional uint64 bh_size = 5;
optional int32 ret = 6;
}
message F2fsGetVictimFtraceEvent {
optional uint64 dev = 1;
optional int32 type = 2;
optional int32 gc_type = 3;
optional int32 alloc_mode = 4;
optional int32 gc_mode = 5;
optional uint32 victim = 6;
optional uint32 ofs_unit = 7;
optional uint32 pre_victim = 8;
optional uint32 prefree = 9;
optional uint32 free = 10;
}
message F2fsIgetFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pino = 3;
optional uint32 mode = 4;
optional int64 size = 5;
optional uint32 nlink = 6;
optional uint64 blocks = 7;
optional uint32 advise = 8;
}
message F2fsIgetExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsNewInodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsReadpageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 index = 3;
optional uint64 blkaddr = 4;
optional int32 type = 5;
}
message F2fsReserveNewBlockFtraceEvent {
optional uint64 dev = 1;
optional uint32 nid = 2;
optional uint32 ofs_in_node = 3;
}
message F2fsSetPageDirtyFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 type = 3;
optional int32 dir = 4;
optional uint64 index = 5;
optional int32 dirty = 6;
}
message F2fsSubmitWritePageFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 type = 3;
optional uint64 index = 4;
optional uint32 block = 5;
}
message F2fsSyncFileEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pino = 3;
optional uint32 mode = 4;
optional int64 size = 5;
optional uint32 nlink = 6;
optional uint64 blocks = 7;
optional uint32 advise = 8;
}
message F2fsSyncFileExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 need_cp = 3;
optional int32 datasync = 4;
optional int32 ret = 5;
}
message F2fsSyncFsFtraceEvent {
optional uint64 dev = 1;
optional int32 dirty = 2;
optional int32 wait = 3;
}
message F2fsTruncateFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint64 pino = 3;
optional uint32 mode = 4;
optional int64 size = 5;
optional uint32 nlink = 6;
optional uint64 blocks = 7;
optional uint32 advise = 8;
}
message F2fsTruncateBlocksEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 size = 3;
optional uint64 blocks = 4;
optional uint64 from = 5;
}
message F2fsTruncateBlocksExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsTruncateDataBlocksRangeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 nid = 3;
optional uint32 ofs = 4;
optional int32 free = 5;
}
message F2fsTruncateInodeBlocksEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 size = 3;
optional uint64 blocks = 4;
optional uint64 from = 5;
}
message F2fsTruncateInodeBlocksExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsTruncateNodeFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 nid = 3;
optional uint32 blk_addr = 4;
}
message F2fsTruncateNodesEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 nid = 3;
optional uint32 blk_addr = 4;
}
message F2fsTruncateNodesExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsTruncatePartialNodesFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional uint32 nid = 3;
optional int32 depth = 4;
optional int32 err = 5;
}
message F2fsUnlinkEnterFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 size = 3;
optional uint64 blocks = 4;
optional string name = 5;
}
message F2fsUnlinkExitFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 ret = 3;
}
message F2fsVmPageMkwriteFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int32 type = 3;
optional int32 dir = 4;
optional uint64 index = 5;
optional int32 dirty = 6;
}
message F2fsWriteBeginFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 flags = 5;
}
message F2fsWriteCheckpointFtraceEvent {
optional uint64 dev = 1;
optional uint32 is_umount = 2;
optional string msg = 3;
}
message F2fsWriteEndFtraceEvent {
optional uint64 dev = 1;
optional uint64 ino = 2;
optional int64 pos = 3;
optional uint32 len = 4;
optional uint32 copied = 5;
}
// End of protos/perfetto/trace/ftrace/f2fs.proto
// Begin of protos/perfetto/trace/ftrace/filemap.proto
message MmFilemapAddToPageCacheFtraceEvent {
optional uint64 pfn = 1;
optional uint64 i_ino = 2;
optional uint64 index = 3;
optional uint64 s_dev = 4;
optional uint64 page = 5;
}
message MmFilemapDeleteFromPageCacheFtraceEvent {
optional uint64 pfn = 1;
optional uint64 i_ino = 2;
optional uint64 index = 3;
optional uint64 s_dev = 4;
optional uint64 page = 5;
}
// End of protos/perfetto/trace/ftrace/filemap.proto
// Begin of protos/perfetto/trace/ftrace/ftrace.proto
message PrintFtraceEvent {
optional uint64 ip = 1;
optional string buf = 2;
}
// End of protos/perfetto/trace/ftrace/ftrace.proto
// Begin of protos/perfetto/trace/ftrace/ftrace_event.proto
message FtraceEvent {
// 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.
optional uint64 timestamp = 1;
// Kernel pid (do not confuse with userspace pid aka tgid)
optional uint32 pid = 2;
oneof event {
PrintFtraceEvent print = 3;
SchedSwitchFtraceEvent sched_switch = 4;
// 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;
CpuFrequencyFtraceEvent cpu_frequency = 11;
CpuFrequencyLimitsFtraceEvent cpu_frequency_limits = 12;
CpuIdleFtraceEvent cpu_idle = 13;
ClockEnableFtraceEvent clock_enable = 14;
ClockDisableFtraceEvent clock_disable = 15;
ClockSetRateFtraceEvent clock_set_rate = 16;
SchedWakeupFtraceEvent sched_wakeup = 17;
SchedBlockedReasonFtraceEvent sched_blocked_reason = 18;
SchedCpuHotplugFtraceEvent sched_cpu_hotplug = 19;
SchedWakingFtraceEvent sched_waking = 20;
// removed field with id 21
// removed field with id 22
// removed field with id 23
// removed field with id 24
// removed field with id 25
// removed field with id 26
// removed field with id 27
// removed field with id 28
// removed field with id 29
// removed field with id 30
// removed field with id 31
// removed field with id 32
// removed field with id 33
// removed field with id 34
LowmemoryKillFtraceEvent lowmemory_kill = 35;
// removed field with id 36
// removed field with id 37
// removed field with id 38
// removed field with id 39
// removed field with id 40
Ext4DaWriteBeginFtraceEvent ext4_da_write_begin = 41;
Ext4DaWriteEndFtraceEvent ext4_da_write_end = 42;
Ext4SyncFileEnterFtraceEvent ext4_sync_file_enter = 43;
Ext4SyncFileExitFtraceEvent ext4_sync_file_exit = 44;
BlockRqIssueFtraceEvent block_rq_issue = 45;
MmVmscanDirectReclaimBeginFtraceEvent mm_vmscan_direct_reclaim_begin = 46;
MmVmscanDirectReclaimEndFtraceEvent mm_vmscan_direct_reclaim_end = 47;
MmVmscanKswapdWakeFtraceEvent mm_vmscan_kswapd_wake = 48;
MmVmscanKswapdSleepFtraceEvent mm_vmscan_kswapd_sleep = 49;
BinderTransactionFtraceEvent binder_transaction = 50;
BinderTransactionReceivedFtraceEvent binder_transaction_received = 51;
BinderSetPriorityFtraceEvent binder_set_priority = 52;
BinderLockFtraceEvent binder_lock = 53;
BinderLockedFtraceEvent binder_locked = 54;
BinderUnlockFtraceEvent binder_unlock = 55;
// removed field with id 56
// removed field with id 57
// removed field with id 58
// removed field with id 59
// removed field with id 60
// removed field with id 61
// removed field with id 62
// removed field with id 63
// removed field with id 64
// removed field with id 65
// removed field with id 66
// removed field with id 67
// removed field with id 68
// removed field with id 69
// removed field with id 70
// removed field with id 71
// removed field with id 72
// removed field with id 73
// removed field with id 74
// removed field with id 75
// removed field with id 76
// removed field with id 77
// removed field with id 78
// removed field with id 79
// removed field with id 80
// removed field with id 81
// removed field with id 82
// removed field with id 83
// removed field with id 84
// removed field with id 85
// removed field with id 86
// removed field with id 87
// removed field with id 88
// removed field with id 89
// removed field with id 90
// removed field with id 91
// removed field with id 92
// removed field with id 93
// removed field with id 94
// removed field with id 95
// removed field with id 96
MmFilemapAddToPageCacheFtraceEvent mm_filemap_add_to_page_cache = 97;
MmFilemapDeleteFromPageCacheFtraceEvent mm_filemap_delete_from_page_cache =
98;
// removed field with id 99
// removed field with id 100
// removed field with id 101
// removed field with id 102
// removed field with id 103
// removed field with id 104
// removed field with id 105
// removed field with id 106
// removed field with id 107
// removed field with id 108
// removed field with id 109
// removed field with id 110
// removed field with id 111
// removed field with id 112
SuspendResumeFtraceEvent suspend_resume = 113;
SchedWakeupNewFtraceEvent sched_wakeup_new = 114;
BlockBioBackmergeFtraceEvent block_bio_backmerge = 115;
BlockBioBounceFtraceEvent block_bio_bounce = 116;
BlockBioCompleteFtraceEvent block_bio_complete = 117;
BlockBioFrontmergeFtraceEvent block_bio_frontmerge = 118;
BlockBioQueueFtraceEvent block_bio_queue = 119;
BlockBioRemapFtraceEvent block_bio_remap = 120;
BlockDirtyBufferFtraceEvent block_dirty_buffer = 121;
BlockGetrqFtraceEvent block_getrq = 122;
BlockPlugFtraceEvent block_plug = 123;
BlockRqAbortFtraceEvent block_rq_abort = 124;
BlockRqCompleteFtraceEvent block_rq_complete = 125;
BlockRqInsertFtraceEvent block_rq_insert = 126;
// removed field with id 127;
BlockRqRemapFtraceEvent block_rq_remap = 128;
BlockRqRequeueFtraceEvent block_rq_requeue = 129;
BlockSleeprqFtraceEvent block_sleeprq = 130;
BlockSplitFtraceEvent block_split = 131;
BlockTouchBufferFtraceEvent block_touch_buffer = 132;
BlockUnplugFtraceEvent block_unplug = 133;
Ext4AllocDaBlocksFtraceEvent ext4_alloc_da_blocks = 134;
Ext4AllocateBlocksFtraceEvent ext4_allocate_blocks = 135;
Ext4AllocateInodeFtraceEvent ext4_allocate_inode = 136;
Ext4BeginOrderedTruncateFtraceEvent ext4_begin_ordered_truncate = 137;
Ext4CollapseRangeFtraceEvent ext4_collapse_range = 138;
Ext4DaReleaseSpaceFtraceEvent ext4_da_release_space = 139;
Ext4DaReserveSpaceFtraceEvent ext4_da_reserve_space = 140;
Ext4DaUpdateReserveSpaceFtraceEvent ext4_da_update_reserve_space = 141;
Ext4DaWritePagesFtraceEvent ext4_da_write_pages = 142;
Ext4DaWritePagesExtentFtraceEvent ext4_da_write_pages_extent = 143;
Ext4DirectIOEnterFtraceEvent ext4_direct_IO_enter = 144;
Ext4DirectIOExitFtraceEvent ext4_direct_IO_exit = 145;
Ext4DiscardBlocksFtraceEvent ext4_discard_blocks = 146;
Ext4DiscardPreallocationsFtraceEvent ext4_discard_preallocations = 147;
Ext4DropInodeFtraceEvent ext4_drop_inode = 148;
Ext4EsCacheExtentFtraceEvent ext4_es_cache_extent = 149;
Ext4EsFindDelayedExtentRangeEnterFtraceEvent
ext4_es_find_delayed_extent_range_enter = 150;
Ext4EsFindDelayedExtentRangeExitFtraceEvent
ext4_es_find_delayed_extent_range_exit = 151;
Ext4EsInsertExtentFtraceEvent ext4_es_insert_extent = 152;
Ext4EsLookupExtentEnterFtraceEvent ext4_es_lookup_extent_enter = 153;
Ext4EsLookupExtentExitFtraceEvent ext4_es_lookup_extent_exit = 154;
Ext4EsRemoveExtentFtraceEvent ext4_es_remove_extent = 155;
Ext4EsShrinkFtraceEvent ext4_es_shrink = 156;
Ext4EsShrinkCountFtraceEvent ext4_es_shrink_count = 157;
Ext4EsShrinkScanEnterFtraceEvent ext4_es_shrink_scan_enter = 158;
Ext4EsShrinkScanExitFtraceEvent ext4_es_shrink_scan_exit = 159;
Ext4EvictInodeFtraceEvent ext4_evict_inode = 160;
Ext4ExtConvertToInitializedEnterFtraceEvent
ext4_ext_convert_to_initialized_enter = 161;
Ext4ExtConvertToInitializedFastpathFtraceEvent
ext4_ext_convert_to_initialized_fastpath = 162;
Ext4ExtHandleUnwrittenExtentsFtraceEvent ext4_ext_handle_unwritten_extents =
163;
Ext4ExtInCacheFtraceEvent ext4_ext_in_cache = 164;
Ext4ExtLoadExtentFtraceEvent ext4_ext_load_extent = 165;
Ext4ExtMapBlocksEnterFtraceEvent ext4_ext_map_blocks_enter = 166;
Ext4ExtMapBlocksExitFtraceEvent ext4_ext_map_blocks_exit = 167;
Ext4ExtPutInCacheFtraceEvent ext4_ext_put_in_cache = 168;
Ext4ExtRemoveSpaceFtraceEvent ext4_ext_remove_space = 169;
Ext4ExtRemoveSpaceDoneFtraceEvent ext4_ext_remove_space_done = 170;
Ext4ExtRmIdxFtraceEvent ext4_ext_rm_idx = 171;
Ext4ExtRmLeafFtraceEvent ext4_ext_rm_leaf = 172;
Ext4ExtShowExtentFtraceEvent ext4_ext_show_extent = 173;
Ext4FallocateEnterFtraceEvent ext4_fallocate_enter = 174;
Ext4FallocateExitFtraceEvent ext4_fallocate_exit = 175;
Ext4FindDelallocRangeFtraceEvent ext4_find_delalloc_range = 176;
Ext4ForgetFtraceEvent ext4_forget = 177;
Ext4FreeBlocksFtraceEvent ext4_free_blocks = 178;
Ext4FreeInodeFtraceEvent ext4_free_inode = 179;
Ext4GetImpliedClusterAllocExitFtraceEvent
ext4_get_implied_cluster_alloc_exit = 180;
Ext4GetReservedClusterAllocFtraceEvent ext4_get_reserved_cluster_alloc =
181;
Ext4IndMapBlocksEnterFtraceEvent ext4_ind_map_blocks_enter = 182;
Ext4IndMapBlocksExitFtraceEvent ext4_ind_map_blocks_exit = 183;
Ext4InsertRangeFtraceEvent ext4_insert_range = 184;
Ext4InvalidatepageFtraceEvent ext4_invalidatepage = 185;
Ext4JournalStartFtraceEvent ext4_journal_start = 186;
Ext4JournalStartReservedFtraceEvent ext4_journal_start_reserved = 187;
Ext4JournalledInvalidatepageFtraceEvent ext4_journalled_invalidatepage =
188;
Ext4JournalledWriteEndFtraceEvent ext4_journalled_write_end = 189;
Ext4LoadInodeFtraceEvent ext4_load_inode = 190;
Ext4LoadInodeBitmapFtraceEvent ext4_load_inode_bitmap = 191;
Ext4MarkInodeDirtyFtraceEvent ext4_mark_inode_dirty = 192;
Ext4MbBitmapLoadFtraceEvent ext4_mb_bitmap_load = 193;
Ext4MbBuddyBitmapLoadFtraceEvent ext4_mb_buddy_bitmap_load = 194;
Ext4MbDiscardPreallocationsFtraceEvent ext4_mb_discard_preallocations = 195;
Ext4MbNewGroupPaFtraceEvent ext4_mb_new_group_pa = 196;
Ext4MbNewInodePaFtraceEvent ext4_mb_new_inode_pa = 197;
Ext4MbReleaseGroupPaFtraceEvent ext4_mb_release_group_pa = 198;
Ext4MbReleaseInodePaFtraceEvent ext4_mb_release_inode_pa = 199;
Ext4MballocAllocFtraceEvent ext4_mballoc_alloc = 200;
Ext4MballocDiscardFtraceEvent ext4_mballoc_discard = 201;
Ext4MballocFreeFtraceEvent ext4_mballoc_free = 202;
Ext4MballocPreallocFtraceEvent ext4_mballoc_prealloc = 203;
Ext4OtherInodeUpdateTimeFtraceEvent ext4_other_inode_update_time = 204;
Ext4PunchHoleFtraceEvent ext4_punch_hole = 205;
Ext4ReadBlockBitmapLoadFtraceEvent ext4_read_block_bitmap_load = 206;
Ext4ReadpageFtraceEvent ext4_readpage = 207;
Ext4ReleasepageFtraceEvent ext4_releasepage = 208;
Ext4RemoveBlocksFtraceEvent ext4_remove_blocks = 209;
Ext4RequestBlocksFtraceEvent ext4_request_blocks = 210;
Ext4RequestInodeFtraceEvent ext4_request_inode = 211;
Ext4SyncFsFtraceEvent ext4_sync_fs = 212;
Ext4TrimAllFreeFtraceEvent ext4_trim_all_free = 213;
Ext4TrimExtentFtraceEvent ext4_trim_extent = 214;
Ext4TruncateEnterFtraceEvent ext4_truncate_enter = 215;
Ext4TruncateExitFtraceEvent ext4_truncate_exit = 216;
Ext4UnlinkEnterFtraceEvent ext4_unlink_enter = 217;
Ext4UnlinkExitFtraceEvent ext4_unlink_exit = 218;
Ext4WriteBeginFtraceEvent ext4_write_begin = 219;
// 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;
Ext4WriteEndFtraceEvent ext4_write_end = 230;
Ext4WritepageFtraceEvent ext4_writepage = 231;
Ext4WritepagesFtraceEvent ext4_writepages = 232;
Ext4WritepagesResultFtraceEvent ext4_writepages_result = 233;
Ext4ZeroRangeFtraceEvent ext4_zero_range = 234;
TaskNewtaskFtraceEvent task_newtask = 235;
TaskRenameFtraceEvent task_rename = 236;
SchedProcessExecFtraceEvent sched_process_exec = 237;
SchedProcessExitFtraceEvent sched_process_exit = 238;
SchedProcessForkFtraceEvent sched_process_fork = 239;
SchedProcessFreeFtraceEvent sched_process_free = 240;
SchedProcessHangFtraceEvent sched_process_hang = 241;
SchedProcessWaitFtraceEvent sched_process_wait = 242;
F2fsDoSubmitBioFtraceEvent f2fs_do_submit_bio = 243;
F2fsEvictInodeFtraceEvent f2fs_evict_inode = 244;
F2fsFallocateFtraceEvent f2fs_fallocate = 245;
F2fsGetDataBlockFtraceEvent f2fs_get_data_block = 246;
F2fsGetVictimFtraceEvent f2fs_get_victim = 247;
F2fsIgetFtraceEvent f2fs_iget = 248;
F2fsIgetExitFtraceEvent f2fs_iget_exit = 249;
F2fsNewInodeFtraceEvent f2fs_new_inode = 250;
F2fsReadpageFtraceEvent f2fs_readpage = 251;
F2fsReserveNewBlockFtraceEvent f2fs_reserve_new_block = 252;
F2fsSetPageDirtyFtraceEvent f2fs_set_page_dirty = 253;
F2fsSubmitWritePageFtraceEvent f2fs_submit_write_page = 254;
F2fsSyncFileEnterFtraceEvent f2fs_sync_file_enter = 255;
F2fsSyncFileExitFtraceEvent f2fs_sync_file_exit = 256;
F2fsSyncFsFtraceEvent f2fs_sync_fs = 257;
F2fsTruncateFtraceEvent f2fs_truncate = 258;
F2fsTruncateBlocksEnterFtraceEvent f2fs_truncate_blocks_enter = 259;
F2fsTruncateBlocksExitFtraceEvent f2fs_truncate_blocks_exit = 260;
F2fsTruncateDataBlocksRangeFtraceEvent f2fs_truncate_data_blocks_range =
261;
F2fsTruncateInodeBlocksEnterFtraceEvent f2fs_truncate_inode_blocks_enter =
262;
F2fsTruncateInodeBlocksExitFtraceEvent f2fs_truncate_inode_blocks_exit =
263;
F2fsTruncateNodeFtraceEvent f2fs_truncate_node = 264;
F2fsTruncateNodesEnterFtraceEvent f2fs_truncate_nodes_enter = 265;
F2fsTruncateNodesExitFtraceEvent f2fs_truncate_nodes_exit = 266;
F2fsTruncatePartialNodesFtraceEvent f2fs_truncate_partial_nodes = 267;
F2fsUnlinkEnterFtraceEvent f2fs_unlink_enter = 268;
F2fsUnlinkExitFtraceEvent f2fs_unlink_exit = 269;
F2fsVmPageMkwriteFtraceEvent f2fs_vm_page_mkwrite = 270;
F2fsWriteBeginFtraceEvent f2fs_write_begin = 271;
F2fsWriteCheckpointFtraceEvent f2fs_write_checkpoint = 272;
F2fsWriteEndFtraceEvent f2fs_write_end = 273;
AllocPagesIommuEndFtraceEvent alloc_pages_iommu_end = 274;
AllocPagesIommuFailFtraceEvent alloc_pages_iommu_fail = 275;
AllocPagesIommuStartFtraceEvent alloc_pages_iommu_start = 276;
AllocPagesSysEndFtraceEvent alloc_pages_sys_end = 277;
AllocPagesSysFailFtraceEvent alloc_pages_sys_fail = 278;
AllocPagesSysStartFtraceEvent alloc_pages_sys_start = 279;
DmaAllocContiguousRetryFtraceEvent dma_alloc_contiguous_retry = 280;
IommuMapRangeFtraceEvent iommu_map_range = 281;
IommuSecPtblMapRangeEndFtraceEvent iommu_sec_ptbl_map_range_end = 282;
IommuSecPtblMapRangeStartFtraceEvent iommu_sec_ptbl_map_range_start = 283;
IonAllocBufferEndFtraceEvent ion_alloc_buffer_end = 284;
IonAllocBufferFailFtraceEvent ion_alloc_buffer_fail = 285;
IonAllocBufferFallbackFtraceEvent ion_alloc_buffer_fallback = 286;
IonAllocBufferStartFtraceEvent ion_alloc_buffer_start = 287;
IonCpAllocRetryFtraceEvent ion_cp_alloc_retry = 288;
IonCpSecureBufferEndFtraceEvent ion_cp_secure_buffer_end = 289;
IonCpSecureBufferStartFtraceEvent ion_cp_secure_buffer_start = 290;
IonPrefetchingFtraceEvent ion_prefetching = 291;
IonSecureCmaAddToPoolEndFtraceEvent ion_secure_cma_add_to_pool_end = 292;
IonSecureCmaAddToPoolStartFtraceEvent ion_secure_cma_add_to_pool_start =
293;
IonSecureCmaAllocateEndFtraceEvent ion_secure_cma_allocate_end = 294;
IonSecureCmaAllocateStartFtraceEvent ion_secure_cma_allocate_start = 295;
IonSecureCmaShrinkPoolEndFtraceEvent ion_secure_cma_shrink_pool_end = 296;
IonSecureCmaShrinkPoolStartFtraceEvent ion_secure_cma_shrink_pool_start =
297;
KfreeFtraceEvent kfree = 298;
KmallocFtraceEvent kmalloc = 299;
KmallocNodeFtraceEvent kmalloc_node = 300;
KmemCacheAllocFtraceEvent kmem_cache_alloc = 301;
KmemCacheAllocNodeFtraceEvent kmem_cache_alloc_node = 302;
KmemCacheFreeFtraceEvent kmem_cache_free = 303;
MigratePagesEndFtraceEvent migrate_pages_end = 304;
MigratePagesStartFtraceEvent migrate_pages_start = 305;
MigrateRetryFtraceEvent migrate_retry = 306;
MmPageAllocFtraceEvent mm_page_alloc = 307;
MmPageAllocExtfragFtraceEvent mm_page_alloc_extfrag = 308;
MmPageAllocZoneLockedFtraceEvent mm_page_alloc_zone_locked = 309;
MmPageFreeFtraceEvent mm_page_free = 310;
MmPageFreeBatchedFtraceEvent mm_page_free_batched = 311;
MmPagePcpuDrainFtraceEvent mm_page_pcpu_drain = 312;
RssStatFtraceEvent rss_stat = 313;
IonHeapShrinkFtraceEvent ion_heap_shrink = 314;
IonHeapGrowFtraceEvent ion_heap_grow = 315;
// removed field with id 316
// removed field with id 317
// removed field with id 318
// removed field with id 319
ClkEnableFtraceEvent clk_enable = 320;
ClkDisableFtraceEvent clk_disable = 321;
ClkSetRateFtraceEvent clk_set_rate = 322;
BinderTransactionAllocBufFtraceEvent binder_transaction_alloc_buf = 323;
SignalDeliverFtraceEvent signal_deliver = 324;
SignalGenerateFtraceEvent signal_generate = 325;
// removed field with id 326
GenericFtraceEvent generic = 327;
}
}
// End of protos/perfetto/trace/ftrace/ftrace_event.proto
// Begin of protos/perfetto/trace/ftrace/ftrace_event_bundle.proto
message FtraceEventBundle {
optional uint32 cpu = 1;
repeated FtraceEvent event = 2;
// Total of all overwrite fields from the headers of all kernel
// ftrace pages we parsed into this FtraceEventBundle. Zero if
// no overwriting occurred, a number larger than zero if some overwriting
// occurred.
optional uint32 overwrite_count = 3;
}
// End of protos/perfetto/trace/ftrace/ftrace_event_bundle.proto
// Begin of protos/perfetto/trace/ftrace/ftrace_stats.proto
// Per-CPU stats for the ftrace data source gathered from the kernel from
// /sys/kernel/debug/tracing/per_cpu/cpuX/stats.
message FtraceCpuStats {
// CPU index.
optional uint64 cpu = 1;
// 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).
optional uint64 entries = 2;
// Number of events lost in kernel buffers due to overwriting of old events
// before userspace had a chance to drain them.
optional uint64 overrun = 3;
// This should always be zero. If not the buffer size is way too small or
// something went wrong with the tracer.
optional uint64 commit_overrun = 4;
// Bytes actually read (not overwritten).
optional uint64 bytes_read = 5;
// The timestamp for the oldest event still in the ring buffer.
optional double oldest_event_ts = 6;
// The current timestamp.
optional double now_ts = 7;
// If the kernel buffer has overwrite mode disabled, this will show the number
// of new events that were lost because the buffer was full. This is similar
// to |overrun| but only for the overwrite=false case.
optional uint64 dropped_events = 8;
// The number of events read.
optional uint64 read_events = 9;
}
// Ftrace stats for all CPUs.
message FtraceStats {
enum Phase {
UNSPECIFIED = 0;
START_OF_TRACE = 1;
END_OF_TRACE = 2;
}
// Tells when stats were sampled. There should be one sample at the beginning
// of the trace and one sample at the end.
optional Phase phase = 1;
// Per-CPU stats (one entry for each CPU).
repeated FtraceCpuStats cpu_stats = 2;
}
// End of protos/perfetto/trace/ftrace/ftrace_stats.proto
// Begin of protos/perfetto/trace/ftrace/generic.proto
// This generic proto is used to output events in the trace
// when a specific proto for that event does not exist.
message GenericFtraceEvent {
message Field {
optional string name = 1;
oneof value {
string str_value = 3;
int64 int_value = 4;
uint64 uint_value = 5;
}
}
optional string event_name = 1;
repeated Field field = 2;
}
// End of protos/perfetto/trace/ftrace/generic.proto
// Begin of protos/perfetto/trace/ftrace/kmem.proto
message AllocPagesIommuEndFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message AllocPagesIommuFailFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message AllocPagesIommuStartFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message AllocPagesSysEndFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message AllocPagesSysFailFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message AllocPagesSysStartFtraceEvent {
optional uint32 gfp_flags = 1;
optional uint32 order = 2;
}
message DmaAllocContiguousRetryFtraceEvent {
optional int32 tries = 1;
}
message IommuMapRangeFtraceEvent {
optional uint64 chunk_size = 1;
optional uint64 len = 2;
optional uint64 pa = 3;
optional uint64 va = 4;
}
message IommuSecPtblMapRangeEndFtraceEvent {
optional uint64 len = 1;
optional int32 num = 2;
optional uint32 pa = 3;
optional int32 sec_id = 4;
optional uint64 va = 5;
}
message IommuSecPtblMapRangeStartFtraceEvent {
optional uint64 len = 1;
optional int32 num = 2;
optional uint32 pa = 3;
optional int32 sec_id = 4;
optional uint64 va = 5;
}
message IonAllocBufferEndFtraceEvent {
optional string client_name = 1;
optional uint32 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
optional uint32 mask = 5;
}
message IonAllocBufferFailFtraceEvent {
optional string client_name = 1;
optional int64 error = 2;
optional uint32 flags = 3;
optional string heap_name = 4;
optional uint64 len = 5;
optional uint32 mask = 6;
}
message IonAllocBufferFallbackFtraceEvent {
optional string client_name = 1;
optional int64 error = 2;
optional uint32 flags = 3;
optional string heap_name = 4;
optional uint64 len = 5;
optional uint32 mask = 6;
}
message IonAllocBufferStartFtraceEvent {
optional string client_name = 1;
optional uint32 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
optional uint32 mask = 5;
}
message IonCpAllocRetryFtraceEvent {
optional int32 tries = 1;
}
message IonCpSecureBufferEndFtraceEvent {
optional uint64 align = 1;
optional uint64 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
}
message IonCpSecureBufferStartFtraceEvent {
optional uint64 align = 1;
optional uint64 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
}
message IonPrefetchingFtraceEvent {
optional uint64 len = 1;
}
message IonSecureCmaAddToPoolEndFtraceEvent {
optional uint32 is_prefetch = 1;
optional uint64 len = 2;
optional int32 pool_total = 3;
}
message IonSecureCmaAddToPoolStartFtraceEvent {
optional uint32 is_prefetch = 1;
optional uint64 len = 2;
optional int32 pool_total = 3;
}
message IonSecureCmaAllocateEndFtraceEvent {
optional uint64 align = 1;
optional uint64 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
}
message IonSecureCmaAllocateStartFtraceEvent {
optional uint64 align = 1;
optional uint64 flags = 2;
optional string heap_name = 3;
optional uint64 len = 4;
}
message IonSecureCmaShrinkPoolEndFtraceEvent {
optional uint64 drained_size = 1;
optional uint64 skipped_size = 2;
}
message IonSecureCmaShrinkPoolStartFtraceEvent {
optional uint64 drained_size = 1;
optional uint64 skipped_size = 2;
}
message KfreeFtraceEvent {
optional uint64 call_site = 1;
optional uint64 ptr = 2;
}
message KmallocFtraceEvent {
optional uint64 bytes_alloc = 1;
optional uint64 bytes_req = 2;
optional uint64 call_site = 3;
optional uint32 gfp_flags = 4;
optional uint64 ptr = 5;
}
message KmallocNodeFtraceEvent {
optional uint64 bytes_alloc = 1;
optional uint64 bytes_req = 2;
optional uint64 call_site = 3;
optional uint32 gfp_flags = 4;
optional int32 node = 5;
optional uint64 ptr = 6;
}
message KmemCacheAllocFtraceEvent {
optional uint64 bytes_alloc = 1;
optional uint64 bytes_req = 2;
optional uint64 call_site = 3;
optional uint32 gfp_flags = 4;
optional uint64 ptr = 5;
}
message KmemCacheAllocNodeFtraceEvent {
optional uint64 bytes_alloc = 1;
optional uint64 bytes_req = 2;
optional uint64 call_site = 3;
optional uint32 gfp_flags = 4;
optional int32 node = 5;
optional uint64 ptr = 6;
}
message KmemCacheFreeFtraceEvent {
optional uint64 call_site = 1;
optional uint64 ptr = 2;
}
message MigratePagesEndFtraceEvent {
optional int32 mode = 1;
}
message MigratePagesStartFtraceEvent {
optional int32 mode = 1;
}
message MigrateRetryFtraceEvent {
optional int32 tries = 1;
}
message MmPageAllocFtraceEvent {
optional uint32 gfp_flags = 1;
optional int32 migratetype = 2;
optional uint32 order = 3;
optional uint64 page = 4;
optional uint64 pfn = 5;
}
message MmPageAllocExtfragFtraceEvent {
optional int32 alloc_migratetype = 1;
optional int32 alloc_order = 2;
optional int32 fallback_migratetype = 3;
optional int32 fallback_order = 4;
optional uint64 page = 5;
optional int32 change_ownership = 6;
optional uint64 pfn = 7;
}
message MmPageAllocZoneLockedFtraceEvent {
optional int32 migratetype = 1;
optional uint32 order = 2;
optional uint64 page = 3;
optional uint64 pfn = 4;
}
message MmPageFreeFtraceEvent {
optional uint32 order = 1;
optional uint64 page = 2;
optional uint64 pfn = 3;
}
message MmPageFreeBatchedFtraceEvent {
optional int32 cold = 1;
optional uint64 page = 2;
optional uint64 pfn = 3;
}
message MmPagePcpuDrainFtraceEvent {
optional int32 migratetype = 1;
optional uint32 order = 2;
optional uint64 page = 3;
optional uint64 pfn = 4;
}
message RssStatFtraceEvent {
optional int32 member = 1;
optional int64 size = 2;
}
message IonHeapShrinkFtraceEvent {
optional string heap_name = 1;
optional uint64 len = 2;
optional int64 total_allocated = 3;
}
message IonHeapGrowFtraceEvent {
optional string heap_name = 1;
optional uint64 len = 2;
optional int64 total_allocated = 3;
}
// End of protos/perfetto/trace/ftrace/kmem.proto
// Begin of protos/perfetto/trace/ftrace/lowmemorykiller.proto
message LowmemoryKillFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int64 pagecache_size = 3;
optional int64 pagecache_limit = 4;
optional int64 free = 5;
}
// End of protos/perfetto/trace/ftrace/lowmemorykiller.proto
// Begin of protos/perfetto/trace/ftrace/power.proto
message CpuFrequencyFtraceEvent {
optional uint32 state = 1;
optional uint32 cpu_id = 2;
}
message CpuFrequencyLimitsFtraceEvent {
optional uint32 min_freq = 1;
optional uint32 max_freq = 2;
optional uint32 cpu_id = 3;
}
message CpuIdleFtraceEvent {
optional uint32 state = 1;
optional uint32 cpu_id = 2;
}
message ClockEnableFtraceEvent {
optional string name = 1;
optional uint64 state = 2;
optional uint64 cpu_id = 3;
}
message ClockDisableFtraceEvent {
optional string name = 1;
optional uint64 state = 2;
optional uint64 cpu_id = 3;
}
message ClockSetRateFtraceEvent {
optional string name = 1;
optional uint64 state = 2;
optional uint64 cpu_id = 3;
}
message SuspendResumeFtraceEvent {
optional string action = 1;
optional int32 val = 2;
optional uint32 start = 3;
}
// End of protos/perfetto/trace/ftrace/power.proto
// Begin of protos/perfetto/trace/ftrace/sched.proto
message SchedSwitchFtraceEvent {
optional string prev_comm = 1;
optional int32 prev_pid = 2;
optional int32 prev_prio = 3;
optional int64 prev_state = 4;
optional string next_comm = 5;
optional int32 next_pid = 6;
optional int32 next_prio = 7;
}
message SchedWakeupFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 prio = 3;
optional int32 success = 4;
optional int32 target_cpu = 5;
}
message SchedBlockedReasonFtraceEvent {
optional int32 pid = 1;
optional uint64 caller = 2;
optional uint32 io_wait = 3;
}
message SchedCpuHotplugFtraceEvent {
optional int32 affected_cpu = 1;
optional int32 error = 2;
optional int32 status = 3;
}
message SchedWakingFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 prio = 3;
optional int32 success = 4;
optional int32 target_cpu = 5;
}
message SchedWakeupNewFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 prio = 3;
optional int32 success = 4;
optional int32 target_cpu = 5;
}
message SchedProcessExecFtraceEvent {
optional string filename = 1;
optional int32 pid = 2;
optional int32 old_pid = 3;
}
message SchedProcessExitFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 tgid = 3;
optional int32 prio = 4;
}
message SchedProcessForkFtraceEvent {
optional string parent_comm = 1;
optional int32 parent_pid = 2;
optional string child_comm = 3;
optional int32 child_pid = 4;
}
message SchedProcessFreeFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 prio = 3;
}
message SchedProcessHangFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
}
message SchedProcessWaitFtraceEvent {
optional string comm = 1;
optional int32 pid = 2;
optional int32 prio = 3;
}
// End of protos/perfetto/trace/ftrace/sched.proto
// Begin of protos/perfetto/trace/ftrace/signal.proto
message SignalDeliverFtraceEvent {
optional int32 code = 1;
optional uint64 sa_flags = 2;
optional int32 sig = 3;
}
message SignalGenerateFtraceEvent {
optional int32 code = 1;
optional string comm = 2;
optional int32 group = 3;
optional int32 pid = 4;
optional int32 result = 5;
optional int32 sig = 6;
}
// End of protos/perfetto/trace/ftrace/signal.proto
// Begin of protos/perfetto/trace/ftrace/task.proto
message TaskNewtaskFtraceEvent {
optional int32 pid = 1;
optional string comm = 2;
optional uint64 clone_flags = 3;
optional int32 oom_score_adj = 4;
}
message TaskRenameFtraceEvent {
optional int32 pid = 1;
optional string oldcomm = 2;
optional string newcomm = 3;
optional int32 oom_score_adj = 4;
}
// End of protos/perfetto/trace/ftrace/task.proto
// Begin of protos/perfetto/trace/ftrace/vmscan.proto
message MmVmscanDirectReclaimBeginFtraceEvent {
optional int32 order = 1;
optional int32 may_writepage = 2;
optional uint32 gfp_flags = 3;
}
message MmVmscanDirectReclaimEndFtraceEvent {
optional uint64 nr_reclaimed = 1;
}
message MmVmscanKswapdWakeFtraceEvent {
optional int32 nid = 1;
optional int32 order = 2;
}
message MmVmscanKswapdSleepFtraceEvent {
optional int32 nid = 1;
}
// End of protos/perfetto/trace/ftrace/vmscan.proto
// Begin of protos/perfetto/trace/power/battery_counters.proto
message BatteryCounters {
// Battery capacity in microampere-hours(µAh). Also known as Coulomb counter.
optional int64 charge_counter_uah = 1;
// Remaining battery capacity percentage of total capacity
optional float capacity_percent = 2;
// 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.
optional int64 current_ua = 3;
// Instantaneous battery current in microamperes(µA).
optional int64 current_avg_ua = 4;
}
// End of protos/perfetto/trace/power/battery_counters.proto
// Begin of protos/perfetto/trace/ps/process_stats.proto
// 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.
message ProcessStats {
// See /proc/[pid]/stats in `man 5 proc` for a description of these fields.
message MemCounters {
optional int32 pid = 1;
optional uint64 vm_size_kb = 2;
optional uint64 vm_rss_kb = 3;
optional uint64 rss_anon_kb = 4;
optional uint64 rss_file_kb = 5;
optional uint64 rss_shmem_kb = 6;
optional uint64 vm_swap_kb = 7;
optional uint64 vm_locked_kb = 8;
optional uint64 vm_hwm_kb = 9;
// When adding a new field remember to update kProcMemCounterSize in
// the trace processor.
}
repeated MemCounters mem_counters = 1;
}
// End of protos/perfetto/trace/ps/process_stats.proto
// Begin of protos/perfetto/trace/ps/process_tree.proto
message ProcessTree {
// Representation of a thread.
message Thread {
// The thread id (as per gettid())
optional int32 tid = 1;
// Thread group id (i.e. the PID of the process, == TID of the main thread)
optional int32 tgid = 3;
// The name of the thread.
optional string name = 2;
}
// Representation of a process.
message Process {
// The UNIX process ID, aka thread group ID (as per getpid()).
optional int32 pid = 1;
// The parent process ID, as per getppid().
optional int32 ppid = 2;
// 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.
repeated string cmdline = 3;
// No longer used as of Apr 2018, when the dedicated |threads| field was
// introduced in ProcessTree.
repeated Thread threads_deprecated = 4 [deprecated = true];
}
// 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}] }
repeated Process processes = 1;
repeated Thread threads = 2;
}
// End of protos/perfetto/trace/ps/process_tree.proto
// Begin of protos/perfetto/trace/sys_stats/sys_stats.proto
// 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.
message SysStats {
// Counters from /proc/meminfo. Values are in KB.
message MeminfoValue {
optional MeminfoCounters key = 1;
optional uint64 value = 2;
};
repeated MeminfoValue meminfo = 1;
// Counter from /proc/vmstat. Units are often pages, not KB.
message VmstatValue {
optional VmstatCounters key = 1;
optional uint64 value = 2;
};
repeated VmstatValue vmstat = 2;
// Times in each mode, since boot. Unit: nanoseconds.
message CpuTimes {
optional uint32 cpu_id = 1;
optional uint64 user_ns = 2; // Time spent in user mode.
optional uint64 user_ice_ns = 3; // Time spent in user mode (low prio).
optional uint64 system_mode_ns = 4; // Time spent in system mode.
optional uint64 idle_ns = 5; // Time spent in the idle task.
optional uint64 io_wait_ns = 6; // Time spent waiting for I/O.
optional uint64 irq_ns = 7; // Time spent servicing interrupts.
optional uint64 softirq_ns = 8; // Time spent servicing softirqs.
}
repeated CpuTimes cpu_stat = 3; // One entry per cpu.
// Num processes forked since boot.
// Populated only if FORK_COUNT in config.stat_counters.
optional uint64 num_forks = 4;
message InterruptCount {
optional int32 irq = 1;
optional uint64 count = 2;
}
// Number of interrupts, broken by IRQ number.
// Populated only if IRQ_COUNTS in config.stat_counters.
optional uint64 num_irq_total = 5; // Total num of irqs serviced since boot.
repeated InterruptCount num_irq = 6;
// Number of softirqs, broken by softirq number.
// Populated only if SOFTIRQ_COUNTS in config.stat_counters.
optional uint64 num_softirq_total = 7; // Total num of softirqs since boot.
repeated InterruptCount num_softirq = 8; // Per-softirq count.
}
// End of protos/perfetto/trace/sys_stats/sys_stats.proto
// Begin of protos/perfetto/trace/trace.proto
message Trace {
repeated TracePacket packet = 1;
// Do NOT add any other field here. This is just a convenience wrapper for
// the use case of a trace being saved to a file. There are other cases
// (streaming) where TracePacket are directly streamed without being wrapped
// in a Trace proto. Nothing should ever rely on the full trace, all the
// logic should be based on TracePacket(s).
}
// End of protos/perfetto/trace/trace.proto
// Begin of protos/perfetto/trace/trace_packet.proto
// The root object emitted by Perfetto. A perfetto trace is just a stream of
// TracePacket(s).
//
// Next id: 39.
message TracePacket {
// TODO(primiano): in future we should add a timestamp_clock_domain field to
// allow mixing timestamps from different clock domains.
optional uint64 timestamp = 8; // Timestamp [ns].
oneof data {
FtraceEventBundle ftrace_events = 1;
ProcessTree process_tree = 2;
ProcessStats process_stats = 9;
InodeFileMap inode_file_map = 4;
// removed field with id 5
ClockSnapshot clock_snapshot = 6;
SysStats sys_stats = 7;
// IDs up to 32 are reserved for events that are quite frequent because they
// take only one byte to encode their preamble.
// removed field with id 33
FtraceStats ftrace_stats = 34;
// removed field with id 35
// removed field with id 37
BatteryCounters battery = 38;
// 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.
bytes synchronization_marker = 36;
// This field is only used for testing.
// removed field with id 268435455 // 2^28 - 1, max field id for protos.
}
// Trusted user id of the producer which generated this packet. Keep in sync
// with TrustedPacket.trusted_uid.
oneof optional_trusted_uid { int32 trusted_uid = 3; };
}
// End of protos/perfetto/trace/trace_packet.proto