ftrace_reader: Adding events for IO
Bug: 73625480
Change-Id: I6856afe6e10b2fba7a25fe700cb250e81847f6cf
diff --git a/Android.bp b/Android.bp
index 04e899d..a5c266d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -391,7 +391,25 @@
"protos/perfetto/trace/ftrace/binder_transaction.proto",
"protos/perfetto/trace/ftrace/binder_transaction_received.proto",
"protos/perfetto/trace/ftrace/binder_unlock.proto",
+ "protos/perfetto/trace/ftrace/block_bio_backmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_bounce.proto",
+ "protos/perfetto/trace/ftrace/block_bio_complete.proto",
+ "protos/perfetto/trace/ftrace/block_bio_frontmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_queue.proto",
+ "protos/perfetto/trace/ftrace/block_bio_remap.proto",
+ "protos/perfetto/trace/ftrace/block_dirty_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_getrq.proto",
+ "protos/perfetto/trace/ftrace/block_plug.proto",
+ "protos/perfetto/trace/ftrace/block_rq_abort.proto",
+ "protos/perfetto/trace/ftrace/block_rq_complete.proto",
+ "protos/perfetto/trace/ftrace/block_rq_insert.proto",
"protos/perfetto/trace/ftrace/block_rq_issue.proto",
+ "protos/perfetto/trace/ftrace/block_rq_remap.proto",
+ "protos/perfetto/trace/ftrace/block_rq_requeue.proto",
+ "protos/perfetto/trace/ftrace/block_sleeprq.proto",
+ "protos/perfetto/trace/ftrace/block_split.proto",
+ "protos/perfetto/trace/ftrace/block_touch_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_unplug.proto",
"protos/perfetto/trace/ftrace/cgroup_attach_task.proto",
"protos/perfetto/trace/ftrace/cgroup_destroy_root.proto",
"protos/perfetto/trace/ftrace/cgroup_mkdir.proto",
@@ -413,10 +431,101 @@
"protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_target.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.proto",
+ "protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto",
+ "protos/perfetto/trace/ftrace/ext4_collapse_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_release_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_begin.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_drop_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_evict_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_forget.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_insert_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto",
+ "protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto",
+ "protos/perfetto/trace/ftrace/ext4_punch_hole.proto",
+ "protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_readpage.proto",
+ "protos/perfetto/trace/ftrace/ext4_releasepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_remove_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_inode.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_sync_fs.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_all_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_begin.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages_result.proto",
+ "protos/perfetto/trace/ftrace/ext4_zero_range.proto",
"protos/perfetto/trace/ftrace/ftrace_event.proto",
"protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
"protos/perfetto/trace/ftrace/i2c_read.proto",
@@ -512,7 +621,25 @@
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction_received.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_unlock.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_backmerge.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_bounce.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_complete.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_frontmerge.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_queue.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_remap.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_dirty_buffer.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_getrq.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_plug.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_abort.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_complete.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_insert.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/block_rq_issue.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_remap.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_requeue.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_sleeprq.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_split.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_touch_buffer.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_unplug.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_attach_task.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_destroy_root.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_mkdir.pb.cc",
@@ -534,10 +661,101 @@
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_target.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_inode.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_collapse_range.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_release_space.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_reserve_space.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_begin.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_preallocations.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_drop_inode.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_cache_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_insert_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_remove_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_count.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_evict_inode.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_in_cache.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_load_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_show_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_forget.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_inode.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_insert_range.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_invalidatepage.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_write_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_discard.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_free.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_punch_hole.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_readpage.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_releasepage.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_remove_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_blocks.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_inode.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_enter.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_fs.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_all_free.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_extent.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_enter.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_begin.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepage.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages_result.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_zero_range.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_read.pb.cc",
@@ -634,7 +852,25 @@
"protos/perfetto/trace/ftrace/binder_transaction.proto",
"protos/perfetto/trace/ftrace/binder_transaction_received.proto",
"protos/perfetto/trace/ftrace/binder_unlock.proto",
+ "protos/perfetto/trace/ftrace/block_bio_backmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_bounce.proto",
+ "protos/perfetto/trace/ftrace/block_bio_complete.proto",
+ "protos/perfetto/trace/ftrace/block_bio_frontmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_queue.proto",
+ "protos/perfetto/trace/ftrace/block_bio_remap.proto",
+ "protos/perfetto/trace/ftrace/block_dirty_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_getrq.proto",
+ "protos/perfetto/trace/ftrace/block_plug.proto",
+ "protos/perfetto/trace/ftrace/block_rq_abort.proto",
+ "protos/perfetto/trace/ftrace/block_rq_complete.proto",
+ "protos/perfetto/trace/ftrace/block_rq_insert.proto",
"protos/perfetto/trace/ftrace/block_rq_issue.proto",
+ "protos/perfetto/trace/ftrace/block_rq_remap.proto",
+ "protos/perfetto/trace/ftrace/block_rq_requeue.proto",
+ "protos/perfetto/trace/ftrace/block_sleeprq.proto",
+ "protos/perfetto/trace/ftrace/block_split.proto",
+ "protos/perfetto/trace/ftrace/block_touch_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_unplug.proto",
"protos/perfetto/trace/ftrace/cgroup_attach_task.proto",
"protos/perfetto/trace/ftrace/cgroup_destroy_root.proto",
"protos/perfetto/trace/ftrace/cgroup_mkdir.proto",
@@ -656,10 +892,101 @@
"protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_target.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.proto",
+ "protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto",
+ "protos/perfetto/trace/ftrace/ext4_collapse_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_release_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_begin.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_drop_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_evict_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_forget.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_insert_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto",
+ "protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto",
+ "protos/perfetto/trace/ftrace/ext4_punch_hole.proto",
+ "protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_readpage.proto",
+ "protos/perfetto/trace/ftrace/ext4_releasepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_remove_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_inode.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_sync_fs.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_all_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_begin.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages_result.proto",
+ "protos/perfetto/trace/ftrace/ext4_zero_range.proto",
"protos/perfetto/trace/ftrace/ftrace_event.proto",
"protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
"protos/perfetto/trace/ftrace/i2c_read.proto",
@@ -755,7 +1082,25 @@
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction_received.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_unlock.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_backmerge.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_bounce.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_complete.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_frontmerge.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_queue.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_remap.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_dirty_buffer.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_getrq.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_plug.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_abort.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_complete.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_insert.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/block_rq_issue.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_remap.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_requeue.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_sleeprq.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_split.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_touch_buffer.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_unplug.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_attach_task.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_destroy_root.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_mkdir.pb.h",
@@ -777,10 +1122,101 @@
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_target.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_inode.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_collapse_range.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_release_space.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_reserve_space.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_begin.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_preallocations.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_drop_inode.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_cache_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_insert_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_remove_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_count.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_evict_inode.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_in_cache.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_load_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_show_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_forget.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_inode.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_insert_range.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_invalidatepage.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_write_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_discard.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_free.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_punch_hole.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_readpage.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_releasepage.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_remove_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_blocks.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_inode.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_enter.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_fs.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_all_free.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_extent.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_enter.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_begin.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepage.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages_result.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_zero_range.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_read.pb.h",
@@ -880,7 +1316,25 @@
"protos/perfetto/trace/ftrace/binder_transaction.proto",
"protos/perfetto/trace/ftrace/binder_transaction_received.proto",
"protos/perfetto/trace/ftrace/binder_unlock.proto",
+ "protos/perfetto/trace/ftrace/block_bio_backmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_bounce.proto",
+ "protos/perfetto/trace/ftrace/block_bio_complete.proto",
+ "protos/perfetto/trace/ftrace/block_bio_frontmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_queue.proto",
+ "protos/perfetto/trace/ftrace/block_bio_remap.proto",
+ "protos/perfetto/trace/ftrace/block_dirty_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_getrq.proto",
+ "protos/perfetto/trace/ftrace/block_plug.proto",
+ "protos/perfetto/trace/ftrace/block_rq_abort.proto",
+ "protos/perfetto/trace/ftrace/block_rq_complete.proto",
+ "protos/perfetto/trace/ftrace/block_rq_insert.proto",
"protos/perfetto/trace/ftrace/block_rq_issue.proto",
+ "protos/perfetto/trace/ftrace/block_rq_remap.proto",
+ "protos/perfetto/trace/ftrace/block_rq_requeue.proto",
+ "protos/perfetto/trace/ftrace/block_sleeprq.proto",
+ "protos/perfetto/trace/ftrace/block_split.proto",
+ "protos/perfetto/trace/ftrace/block_touch_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_unplug.proto",
"protos/perfetto/trace/ftrace/cgroup_attach_task.proto",
"protos/perfetto/trace/ftrace/cgroup_destroy_root.proto",
"protos/perfetto/trace/ftrace/cgroup_mkdir.proto",
@@ -902,10 +1356,101 @@
"protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_target.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.proto",
+ "protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto",
+ "protos/perfetto/trace/ftrace/ext4_collapse_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_release_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_begin.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_drop_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_evict_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_forget.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_insert_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto",
+ "protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto",
+ "protos/perfetto/trace/ftrace/ext4_punch_hole.proto",
+ "protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_readpage.proto",
+ "protos/perfetto/trace/ftrace/ext4_releasepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_remove_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_inode.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_sync_fs.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_all_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_begin.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages_result.proto",
+ "protos/perfetto/trace/ftrace/ext4_zero_range.proto",
"protos/perfetto/trace/ftrace/ftrace_event.proto",
"protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
"protos/perfetto/trace/ftrace/i2c_read.proto",
@@ -1002,7 +1547,25 @@
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction_received.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_unlock.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_backmerge.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_bounce.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_complete.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_frontmerge.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_queue.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_remap.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_dirty_buffer.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_getrq.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_plug.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_abort.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_complete.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_insert.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/block_rq_issue.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_remap.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_requeue.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_sleeprq.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_split.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_touch_buffer.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_unplug.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_attach_task.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_destroy_root.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_mkdir.pbzero.cc",
@@ -1024,10 +1587,101 @@
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_target.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_inode.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_collapse_range.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_release_space.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_reserve_space.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_begin.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_preallocations.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_drop_inode.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_cache_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_insert_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_remove_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_count.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_evict_inode.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_in_cache.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_load_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_show_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_forget.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_inode.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_insert_range.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_invalidatepage.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_write_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_discard.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_free.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_punch_hole.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_readpage.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_releasepage.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_remove_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_blocks.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_inode.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_enter.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_fs.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_all_free.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_extent.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_enter.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_begin.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepage.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages_result.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_zero_range.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_read.pbzero.cc",
@@ -1124,7 +1778,25 @@
"protos/perfetto/trace/ftrace/binder_transaction.proto",
"protos/perfetto/trace/ftrace/binder_transaction_received.proto",
"protos/perfetto/trace/ftrace/binder_unlock.proto",
+ "protos/perfetto/trace/ftrace/block_bio_backmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_bounce.proto",
+ "protos/perfetto/trace/ftrace/block_bio_complete.proto",
+ "protos/perfetto/trace/ftrace/block_bio_frontmerge.proto",
+ "protos/perfetto/trace/ftrace/block_bio_queue.proto",
+ "protos/perfetto/trace/ftrace/block_bio_remap.proto",
+ "protos/perfetto/trace/ftrace/block_dirty_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_getrq.proto",
+ "protos/perfetto/trace/ftrace/block_plug.proto",
+ "protos/perfetto/trace/ftrace/block_rq_abort.proto",
+ "protos/perfetto/trace/ftrace/block_rq_complete.proto",
+ "protos/perfetto/trace/ftrace/block_rq_insert.proto",
"protos/perfetto/trace/ftrace/block_rq_issue.proto",
+ "protos/perfetto/trace/ftrace/block_rq_remap.proto",
+ "protos/perfetto/trace/ftrace/block_rq_requeue.proto",
+ "protos/perfetto/trace/ftrace/block_sleeprq.proto",
+ "protos/perfetto/trace/ftrace/block_split.proto",
+ "protos/perfetto/trace/ftrace/block_touch_buffer.proto",
+ "protos/perfetto/trace/ftrace/block_unplug.proto",
"protos/perfetto/trace/ftrace/cgroup_attach_task.proto",
"protos/perfetto/trace/ftrace/cgroup_destroy_root.proto",
"protos/perfetto/trace/ftrace/cgroup_mkdir.proto",
@@ -1146,10 +1818,101 @@
"protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_target.proto",
"protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.proto",
+ "protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_allocate_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto",
+ "protos/perfetto/trace/ftrace/ext4_collapse_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_release_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_begin.proto",
"protos/perfetto/trace/ftrace/ext4_da_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages.proto",
+ "protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_drop_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_evict_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto",
+ "protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_forget.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_free_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_insert_range.proto",
+ "protos/perfetto/trace/ftrace/ext4_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start.proto",
+ "protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode.proto",
+ "protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto",
+ "protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto",
+ "protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto",
+ "protos/perfetto/trace/ftrace/ext4_punch_hole.proto",
+ "protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto",
+ "protos/perfetto/trace/ftrace/ext4_readpage.proto",
+ "protos/perfetto/trace/ftrace/ext4_releasepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_remove_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_blocks.proto",
+ "protos/perfetto/trace/ftrace/ext4_request_inode.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_enter.proto",
"protos/perfetto/trace/ftrace/ext4_sync_file_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_sync_fs.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_all_free.proto",
+ "protos/perfetto/trace/ftrace/ext4_trim_extent.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_truncate_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_enter.proto",
+ "protos/perfetto/trace/ftrace/ext4_unlink_exit.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_begin.proto",
+ "protos/perfetto/trace/ftrace/ext4_write_end.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepage.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages.proto",
+ "protos/perfetto/trace/ftrace/ext4_writepages_result.proto",
+ "protos/perfetto/trace/ftrace/ext4_zero_range.proto",
"protos/perfetto/trace/ftrace/ftrace_event.proto",
"protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
"protos/perfetto/trace/ftrace/i2c_read.proto",
@@ -1246,7 +2009,25 @@
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_transaction_received.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_unlock.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_backmerge.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_bounce.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_complete.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_frontmerge.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_queue.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_bio_remap.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_dirty_buffer.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_getrq.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_plug.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_abort.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_complete.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_insert.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/block_rq_issue.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_remap.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_rq_requeue.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_sleeprq.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_split.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_touch_buffer.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/block_unplug.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_attach_task.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_destroy_root.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup_mkdir.pbzero.h",
@@ -1268,10 +2049,101 @@
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_setspeed.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_target.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpufreq_interactive_unboost.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_allocate_inode.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_collapse_range.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_release_space.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_reserve_space.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_begin.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_discard_preallocations.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_drop_inode.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_cache_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_insert_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_remove_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_count.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_evict_inode.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_in_cache.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_load_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ext_show_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_fallocate_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_forget.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_free_inode.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_insert_range.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_invalidatepage.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_journalled_write_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_discard.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_free.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_punch_hole.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_readpage.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_releasepage.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_remove_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_blocks.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_request_inode.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_enter.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_file_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_sync_fs.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_all_free.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_trim_extent.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_truncate_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_enter.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_unlink_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_begin.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_write_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepage.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_writepages_result.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ext4_zero_range.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_read.pbzero.h",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index ae406db..0cacf3f 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -128,4 +128,113 @@
"workqueue_execute_end.proto",
"workqueue_execute_start.proto",
"workqueue_queue_work.proto",
+ "ext4_allocate_blocks.proto",
+ "ext4_allocate_inode.proto",
+ "ext4_alloc_da_blocks.proto",
+ "ext4_begin_ordered_truncate.proto",
+ "ext4_collapse_range.proto",
+ "ext4_da_release_space.proto",
+ "ext4_da_reserve_space.proto",
+ "ext4_da_update_reserve_space.proto",
+ "ext4_da_write_pages.proto",
+ "ext4_da_write_pages_extent.proto",
+ "ext4_direct_IO_enter.proto",
+ "ext4_direct_IO_exit.proto",
+ "ext4_discard_blocks.proto",
+ "ext4_discard_preallocations.proto",
+ "ext4_drop_inode.proto",
+ "ext4_es_cache_extent.proto",
+ "ext4_es_find_delayed_extent_range_enter.proto",
+ "ext4_es_find_delayed_extent_range_exit.proto",
+ "ext4_es_insert_extent.proto",
+ "ext4_es_lookup_extent_enter.proto",
+ "ext4_es_lookup_extent_exit.proto",
+ "ext4_es_remove_extent.proto",
+ "ext4_es_shrink.proto",
+ "ext4_es_shrink_count.proto",
+ "ext4_es_shrink_scan_enter.proto",
+ "ext4_es_shrink_scan_exit.proto",
+ "ext4_evict_inode.proto",
+ "ext4_ext_convert_to_initialized_enter.proto",
+ "ext4_ext_convert_to_initialized_fastpath.proto",
+ "ext4_ext_handle_unwritten_extents.proto",
+ "ext4_ext_in_cache.proto",
+ "ext4_ext_load_extent.proto",
+ "ext4_ext_map_blocks_enter.proto",
+ "ext4_ext_map_blocks_exit.proto",
+ "ext4_ext_put_in_cache.proto",
+ "ext4_ext_remove_space.proto",
+ "ext4_ext_remove_space_done.proto",
+ "ext4_ext_rm_idx.proto",
+ "ext4_ext_rm_leaf.proto",
+ "ext4_ext_show_extent.proto",
+ "ext4_fallocate_enter.proto",
+ "ext4_fallocate_exit.proto",
+ "ext4_find_delalloc_range.proto",
+ "ext4_forget.proto",
+ "ext4_free_blocks.proto",
+ "ext4_free_inode.proto",
+ "ext4_get_implied_cluster_alloc_exit.proto",
+ "ext4_get_reserved_cluster_alloc.proto",
+ "ext4_ind_map_blocks_enter.proto",
+ "ext4_ind_map_blocks_exit.proto",
+ "ext4_insert_range.proto",
+ "ext4_invalidatepage.proto",
+ "ext4_journalled_invalidatepage.proto",
+ "ext4_journalled_write_end.proto",
+ "ext4_journal_start.proto",
+ "ext4_journal_start_reserved.proto",
+ "ext4_load_inode.proto",
+ "ext4_load_inode_bitmap.proto",
+ "ext4_mark_inode_dirty.proto",
+ "ext4_mballoc_alloc.proto",
+ "ext4_mballoc_discard.proto",
+ "ext4_mballoc_free.proto",
+ "ext4_mballoc_prealloc.proto",
+ "ext4_mb_bitmap_load.proto",
+ "ext4_mb_buddy_bitmap_load.proto",
+ "ext4_mb_discard_preallocations.proto",
+ "ext4_mb_new_group_pa.proto",
+ "ext4_mb_new_inode_pa.proto",
+ "ext4_mb_release_group_pa.proto",
+ "ext4_mb_release_inode_pa.proto",
+ "ext4_other_inode_update_time.proto",
+ "ext4_punch_hole.proto",
+ "ext4_read_block_bitmap_load.proto",
+ "ext4_readpage.proto",
+ "ext4_releasepage.proto",
+ "ext4_remove_blocks.proto",
+ "ext4_request_blocks.proto",
+ "ext4_request_inode.proto",
+ "ext4_sync_fs.proto",
+ "ext4_trim_all_free.proto",
+ "ext4_trim_extent.proto",
+ "ext4_truncate_enter.proto",
+ "ext4_truncate_exit.proto",
+ "ext4_unlink_enter.proto",
+ "ext4_unlink_exit.proto",
+ "ext4_write_begin.proto",
+ "ext4_write_end.proto",
+ "ext4_writepage.proto",
+ "ext4_writepages.proto",
+ "ext4_writepages_result.proto",
+ "ext4_zero_range.proto",
+ "block_bio_backmerge.proto",
+ "block_bio_bounce.proto",
+ "block_bio_complete.proto",
+ "block_bio_frontmerge.proto",
+ "block_bio_queue.proto",
+ "block_bio_remap.proto",
+ "block_dirty_buffer.proto",
+ "block_getrq.proto",
+ "block_plug.proto",
+ "block_rq_abort.proto",
+ "block_rq_complete.proto",
+ "block_rq_insert.proto",
+ "block_rq_remap.proto",
+ "block_rq_requeue.proto",
+ "block_sleeprq.proto",
+ "block_split.proto",
+ "block_touch_buffer.proto",
+ "block_unplug.proto",
]
diff --git a/protos/perfetto/trace/ftrace/block_bio_backmerge.proto b/protos/perfetto/trace/ftrace/block_bio_backmerge.proto
new file mode 100644
index 0000000..ffc4c26
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_backmerge.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioBackmergeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_bio_bounce.proto b/protos/perfetto/trace/ftrace/block_bio_bounce.proto
new file mode 100644
index 0000000..b8c3c54
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_bounce.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioBounceFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_bio_complete.proto b/protos/perfetto/trace/ftrace/block_bio_complete.proto
new file mode 100644
index 0000000..3e60f48
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_complete.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioCompleteFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional int32 error = 4;
+ optional string rwbs = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto b/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto
new file mode 100644
index 0000000..1f065a8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_frontmerge.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioFrontmergeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_bio_queue.proto b/protos/perfetto/trace/ftrace/block_bio_queue.proto
new file mode 100644
index 0000000..c531f14
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_queue.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioQueueFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_bio_remap.proto b/protos/perfetto/trace/ftrace/block_bio_remap.proto
new file mode 100644
index 0000000..6f82a22
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_bio_remap.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockBioRemapFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional uint32 old_dev = 4;
+ optional uint64 old_sector = 5;
+ optional string rwbs = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/block_dirty_buffer.proto b/protos/perfetto/trace/ftrace/block_dirty_buffer.proto
new file mode 100644
index 0000000..f59bfe5
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_dirty_buffer.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockDirtyBufferFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint64 size = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/block_getrq.proto b/protos/perfetto/trace/ftrace/block_getrq.proto
new file mode 100644
index 0000000..2b52d52
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_getrq.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockGetrqFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_plug.proto b/protos/perfetto/trace/ftrace/block_plug.proto
new file mode 100644
index 0000000..03c96e3
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_plug.proto
@@ -0,0 +1,11 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockPlugFtraceEvent {
+ optional string comm = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/block_rq_abort.proto b/protos/perfetto/trace/ftrace/block_rq_abort.proto
new file mode 100644
index 0000000..fdaba4d
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_rq_abort.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockRqAbortFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional int32 errors = 4;
+ optional string rwbs = 5;
+ optional string cmd = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/block_rq_complete.proto b/protos/perfetto/trace/ftrace/block_rq_complete.proto
new file mode 100644
index 0000000..98f410b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_rq_complete.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockRqCompleteFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional int32 errors = 4;
+ optional string rwbs = 5;
+ optional string cmd = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/block_rq_insert.proto b/protos/perfetto/trace/ftrace/block_rq_insert.proto
new file mode 100644
index 0000000..9cb4c8f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_rq_insert.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockRqInsertFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/block_rq_remap.proto b/protos/perfetto/trace/ftrace/block_rq_remap.proto
new file mode 100644
index 0000000..5491f09
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_rq_remap.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockRqRemapFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional uint32 old_dev = 4;
+ optional uint64 old_sector = 5;
+ optional uint32 nr_bios = 6;
+ optional string rwbs = 7;
+}
diff --git a/protos/perfetto/trace/ftrace/block_rq_requeue.proto b/protos/perfetto/trace/ftrace/block_rq_requeue.proto
new file mode 100644
index 0000000..4a1a9b2
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_rq_requeue.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockRqRequeueFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional int32 errors = 4;
+ optional string rwbs = 5;
+ optional string cmd = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/block_sleeprq.proto b/protos/perfetto/trace/ftrace/block_sleeprq.proto
new file mode 100644
index 0000000..f00c291
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_sleeprq.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockSleeprqFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint32 nr_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_split.proto b/protos/perfetto/trace/ftrace/block_split.proto
new file mode 100644
index 0000000..c00b19b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_split.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockSplitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint64 new_sector = 3;
+ optional string rwbs = 4;
+ optional string comm = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/block_touch_buffer.proto b/protos/perfetto/trace/ftrace/block_touch_buffer.proto
new file mode 100644
index 0000000..63908cf
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_touch_buffer.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockTouchBufferFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 sector = 2;
+ optional uint64 size = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/block_unplug.proto b/protos/perfetto/trace/ftrace/block_unplug.proto
new file mode 100644
index 0000000..e244c15
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/block_unplug.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message BlockUnplugFtraceEvent {
+ optional int32 nr_rq = 1;
+ optional string comm = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto b/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto
new file mode 100644
index 0000000..633a636
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_alloc_da_blocks.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4AllocDaBlocksFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 data_blocks = 3;
+ optional uint32 meta_blocks = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto b/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto
new file mode 100644
index 0000000..450ea71
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_allocate_blocks.proto
@@ -0,0 +1,21 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4AllocateBlocksFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto b/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto
new file mode 100644
index 0000000..f158a4e
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_allocate_inode.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4AllocateInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 dir = 3;
+ optional uint32 mode = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto b/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto
new file mode 100644
index 0000000..9dec91f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4BeginOrderedTruncateFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 new_size = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_collapse_range.proto b/protos/perfetto/trace/ftrace/ext4_collapse_range.proto
new file mode 100644
index 0000000..b8a2068
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_collapse_range.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4CollapseRangeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 offset = 3;
+ optional int64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_da_release_space.proto b/protos/perfetto/trace/ftrace/ext4_da_release_space.proto
new file mode 100644
index 0000000..08bde5e
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_da_release_space.proto
@@ -0,0 +1,18 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DaReleaseSpaceFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto b/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto
new file mode 100644
index 0000000..5815f7d
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_da_reserve_space.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DaReserveSpaceFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto b/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto
new file mode 100644
index 0000000..c1c2f15
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_da_update_reserve_space.proto
@@ -0,0 +1,19 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DaUpdateReserveSpaceFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto b/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto
new file mode 100644
index 0000000..3c7b96e
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_pages.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DaWritePagesFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 first_page = 3;
+ optional int64 nr_to_write = 4;
+ optional int32 sync_mode = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto b/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto
new file mode 100644
index 0000000..7a13f9d
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_da_write_pages_extent.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DaWritePagesExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 lblk = 3;
+ optional uint32 len = 4;
+ optional uint32 flags = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto b/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto
new file mode 100644
index 0000000..59688c9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_direct_IO_enter.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DirectIOEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint64 len = 4;
+ optional int32 rw = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto b/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto
new file mode 100644
index 0000000..b58f6ca
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_direct_IO_exit.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DirectIOExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint64 len = 4;
+ optional int32 rw = 5;
+ optional int32 ret = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto b/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto
new file mode 100644
index 0000000..2b3e777
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_discard_blocks.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DiscardBlocksFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 blk = 2;
+ optional uint64 count = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto b/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto
new file mode 100644
index 0000000..4152887
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_discard_preallocations.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DiscardPreallocationsFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_drop_inode.proto b/protos/perfetto/trace/ftrace/ext4_drop_inode.proto
new file mode 100644
index 0000000..f9785b7
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_drop_inode.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4DropInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int32 drop = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto
new file mode 100644
index 0000000..95408f6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_cache_extent.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsCacheExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint64 pblk = 5;
+ optional uint32 status = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto
new file mode 100644
index 0000000..fda9034
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsFindDelayedExtentRangeEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto
new file mode 100644
index 0000000..21630d3
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsFindDelayedExtentRangeExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint64 pblk = 5;
+ optional uint32 status = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto
new file mode 100644
index 0000000..c29641c
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_insert_extent.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsInsertExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint64 pblk = 5;
+ optional uint32 status = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto
new file mode 100644
index 0000000..2f82152
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsLookupExtentEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto
new file mode 100644
index 0000000..df475fb
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsLookupExtentExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint64 pblk = 5;
+ optional uint32 status = 6;
+ optional int32 found = 7;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto b/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto
new file mode 100644
index 0000000..7e67019
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_remove_extent.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsRemoveExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 lblk = 3;
+ optional int64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink.proto
new file mode 100644
index 0000000..3ef83a7
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsShrinkFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 nr_shrunk = 2;
+ optional uint64 scan_time = 3;
+ optional int32 nr_skipped = 4;
+ optional int32 retried = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto
new file mode 100644
index 0000000..aac2143
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_count.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsShrinkCountFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 nr_to_scan = 2;
+ optional int32 cache_cnt = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto
new file mode 100644
index 0000000..a98ab0b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsShrinkScanEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 nr_to_scan = 2;
+ optional int32 cache_cnt = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto
new file mode 100644
index 0000000..a959b40
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EsShrinkScanExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 nr_shrunk = 2;
+ optional int32 cache_cnt = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_evict_inode.proto b/protos/perfetto/trace/ftrace/ext4_evict_inode.proto
new file mode 100644
index 0000000..763a916
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_evict_inode.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4EvictInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int32 nlink = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto
new file mode 100644
index 0000000..18d000a
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtConvertToInitializedEnterFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto
new file mode 100644
index 0000000..f25d01f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto
@@ -0,0 +1,20 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtConvertToInitializedFastpathFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto b/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto
new file mode 100644
index 0000000..6a84188
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto
@@ -0,0 +1,18 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtHandleUnwrittenExtentsFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto b/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto
new file mode 100644
index 0000000..ee61bc6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_in_cache.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtInCacheFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional int32 ret = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto b/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto
new file mode 100644
index 0000000..070c6d6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_load_extent.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtLoadExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 pblk = 3;
+ optional uint32 lblk = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto
new file mode 100644
index 0000000..f561978
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtMapBlocksEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint32 flags = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto
new file mode 100644
index 0000000..a0c6a50
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto
@@ -0,0 +1,18 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtMapBlocksExitFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto b/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto
new file mode 100644
index 0000000..58ad6b0
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_put_in_cache.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtPutInCacheFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint64 start = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto b/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto
new file mode 100644
index 0000000..93d9bf3
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_remove_space.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtRemoveSpaceFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 start = 3;
+ optional uint32 end = 4;
+ optional int32 depth = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto b/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto
new file mode 100644
index 0000000..da8566f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_remove_space_done.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtRemoveSpaceDoneFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto b/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto
new file mode 100644
index 0000000..ac81910
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_rm_idx.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtRmIdxFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 pblk = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto b/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto
new file mode 100644
index 0000000..f7b8e69
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_rm_leaf.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtRmLeafFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto b/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto
new file mode 100644
index 0000000..37a2dab
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ext_show_extent.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ExtShowExtentFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 pblk = 3;
+ optional uint32 lblk = 4;
+ optional uint32 len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto b/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto
new file mode 100644
index 0000000..f6f783a
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_fallocate_enter.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4FallocateEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 offset = 3;
+ optional int64 len = 4;
+ optional int32 mode = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto b/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto
new file mode 100644
index 0000000..a44cbe9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_fallocate_exit.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4FallocateExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint32 blocks = 4;
+ optional int32 ret = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto b/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto
new file mode 100644
index 0000000..6a0d2b4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_find_delalloc_range.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4FindDelallocRangeFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_forget.proto b/protos/perfetto/trace/ftrace/ext4_forget.proto
new file mode 100644
index 0000000..8a8acc8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_forget.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ForgetFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 block = 3;
+ optional int32 is_metadata = 4;
+ optional uint32 mode = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_free_blocks.proto b/protos/perfetto/trace/ftrace/ext4_free_blocks.proto
new file mode 100644
index 0000000..9e652c4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_free_blocks.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4FreeBlocksFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 block = 3;
+ optional uint64 count = 4;
+ optional int32 flags = 5;
+ optional uint32 mode = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_free_inode.proto b/protos/perfetto/trace/ftrace/ext4_free_inode.proto
new file mode 100644
index 0000000..c1d240f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_free_inode.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4FreeInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 uid = 3;
+ optional uint32 gid = 4;
+ optional uint64 blocks = 5;
+ optional uint32 mode = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto b/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto
new file mode 100644
index 0000000..b500d1f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4GetImpliedClusterAllocExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint32 flags = 2;
+ optional uint32 lblk = 3;
+ optional uint64 pblk = 4;
+ optional uint32 len = 5;
+ optional int32 ret = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto b/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto
new file mode 100644
index 0000000..cb9cdfc
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4GetReservedClusterAllocFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto
new file mode 100644
index 0000000..cfa6304
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4IndMapBlocksEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint32 lblk = 3;
+ optional uint32 len = 4;
+ optional uint32 flags = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto
new file mode 100644
index 0000000..bd368eb
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto
@@ -0,0 +1,18 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4IndMapBlocksExitFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_insert_range.proto b/protos/perfetto/trace/ftrace/ext4_insert_range.proto
new file mode 100644
index 0000000..4010cf0
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_insert_range.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4InsertRangeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 offset = 3;
+ optional int64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto b/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto
new file mode 100644
index 0000000..951ff05
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_invalidatepage.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4InvalidatepageFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 index = 3;
+ optional uint32 offset = 4;
+ optional uint32 length = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_journal_start.proto b/protos/perfetto/trace/ftrace/ext4_journal_start.proto
new file mode 100644
index 0000000..f361673
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_journal_start.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4JournalStartFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ip = 2;
+ optional int32 blocks = 3;
+ optional int32 rsv_blocks = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto b/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto
new file mode 100644
index 0000000..61d3cc7
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_journal_start_reserved.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4JournalStartReservedFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ip = 2;
+ optional int32 blocks = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto b/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto
new file mode 100644
index 0000000..4503ec2
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4JournalledInvalidatepageFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 index = 3;
+ optional uint32 offset = 4;
+ optional uint32 length = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto b/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto
new file mode 100644
index 0000000..8cebed4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_journalled_write_end.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4JournalledWriteEndFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint32 len = 4;
+ optional uint32 copied = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_load_inode.proto b/protos/perfetto/trace/ftrace/ext4_load_inode.proto
new file mode 100644
index 0000000..3bfa913
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_load_inode.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4LoadInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto b/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto
new file mode 100644
index 0000000..41082d8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_load_inode_bitmap.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4LoadInodeBitmapFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint32 group = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto b/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto
new file mode 100644
index 0000000..e291d9f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mark_inode_dirty.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MarkInodeDirtyFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 ip = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto
new file mode 100644
index 0000000..471b417
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_bitmap_load.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbBitmapLoadFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint32 group = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto
new file mode 100644
index 0000000..4f4286b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbBuddyBitmapLoadFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint32 group = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto b/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto
new file mode 100644
index 0000000..1ff579a
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbDiscardPreallocationsFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 needed = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto
new file mode 100644
index 0000000..fec3b6b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_new_group_pa.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbNewGroupPaFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 pa_pstart = 3;
+ optional uint64 pa_lstart = 4;
+ optional uint32 pa_len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto
new file mode 100644
index 0000000..36dae58
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbNewInodePaFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 pa_pstart = 3;
+ optional uint64 pa_lstart = 4;
+ optional uint32 pa_len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto
new file mode 100644
index 0000000..d720fdf
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_release_group_pa.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbReleaseGroupPaFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 pa_pstart = 2;
+ optional uint32 pa_len = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto b/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto
new file mode 100644
index 0000000..7601e49
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MbReleaseInodePaFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 block = 3;
+ optional uint32 count = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto
new file mode 100644
index 0000000..6218492
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_alloc.proto
@@ -0,0 +1,30 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MballocAllocFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto
new file mode 100644
index 0000000..e299416
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_discard.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MballocDiscardFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int32 result_start = 3;
+ optional uint32 result_group = 4;
+ optional int32 result_len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto
new file mode 100644
index 0000000..4ce2184
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_free.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MballocFreeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int32 result_start = 3;
+ optional uint32 result_group = 4;
+ optional int32 result_len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto b/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto
new file mode 100644
index 0000000..310b940
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_mballoc_prealloc.proto
@@ -0,0 +1,20 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4MballocPreallocFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto b/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto
new file mode 100644
index 0000000..ec50a8d
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_other_inode_update_time.proto
@@ -0,0 +1,16 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4OtherInodeUpdateTimeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 orig_ino = 3;
+ optional uint32 uid = 4;
+ optional uint32 gid = 5;
+ optional uint32 mode = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_punch_hole.proto b/protos/perfetto/trace/ftrace/ext4_punch_hole.proto
new file mode 100644
index 0000000..9fe0b19
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_punch_hole.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4PunchHoleFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 offset = 3;
+ optional int64 len = 4;
+ optional int32 mode = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto b/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto
new file mode 100644
index 0000000..f31b196
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ReadBlockBitmapLoadFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint32 group = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_readpage.proto b/protos/perfetto/trace/ftrace/ext4_readpage.proto
new file mode 100644
index 0000000..2a80964
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_readpage.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ReadpageFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 index = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_releasepage.proto b/protos/perfetto/trace/ftrace/ext4_releasepage.proto
new file mode 100644
index 0000000..63039b9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_releasepage.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ReleasepageFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 index = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto b/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto
new file mode 100644
index 0000000..3eef63f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_remove_blocks.proto
@@ -0,0 +1,18 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4RemoveBlocksFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_request_blocks.proto b/protos/perfetto/trace/ftrace/ext4_request_blocks.proto
new file mode 100644
index 0000000..19044d8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_request_blocks.proto
@@ -0,0 +1,20 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4RequestBlocksFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_request_inode.proto b/protos/perfetto/trace/ftrace/ext4_request_inode.proto
new file mode 100644
index 0000000..5bf9b35
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_request_inode.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4RequestInodeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 dir = 2;
+ optional uint32 mode = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_sync_fs.proto b/protos/perfetto/trace/ftrace/ext4_sync_fs.proto
new file mode 100644
index 0000000..be5ce76
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_sync_fs.proto
@@ -0,0 +1,12 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4SyncFsFtraceEvent {
+ optional uint32 dev = 1;
+ optional int32 wait = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_trim_all_free.proto b/protos/perfetto/trace/ftrace/ext4_trim_all_free.proto
new file mode 100644
index 0000000..4d3ee82
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_trim_all_free.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4TrimAllFreeFtraceEvent {
+ optional int32 dev_major = 1;
+ optional int32 dev_minor = 2;
+ optional uint32 group = 3;
+ optional int32 start = 4;
+ optional int32 len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_trim_extent.proto b/protos/perfetto/trace/ftrace/ext4_trim_extent.proto
new file mode 100644
index 0000000..ba6040a
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_trim_extent.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4TrimExtentFtraceEvent {
+ optional int32 dev_major = 1;
+ optional int32 dev_minor = 2;
+ optional uint32 group = 3;
+ optional int32 start = 4;
+ optional int32 len = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto b/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto
new file mode 100644
index 0000000..305aeac
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_truncate_enter.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4TruncateEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 blocks = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto b/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto
new file mode 100644
index 0000000..37c7ede
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_truncate_exit.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4TruncateExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 blocks = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto b/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto
new file mode 100644
index 0000000..408db09
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_unlink_enter.proto
@@ -0,0 +1,14 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4UnlinkEnterFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 parent = 3;
+ optional int64 size = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto b/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto
new file mode 100644
index 0000000..e9538aa
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_unlink_exit.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4UnlinkExitFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int32 ret = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_write_begin.proto b/protos/perfetto/trace/ftrace/ext4_write_begin.proto
new file mode 100644
index 0000000..1a63dd4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_write_begin.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4WriteBeginFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint32 len = 4;
+ optional uint32 flags = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_write_end.proto b/protos/perfetto/trace/ftrace/ext4_write_end.proto
new file mode 100644
index 0000000..b34805f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_write_end.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4WriteEndFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 pos = 3;
+ optional uint32 len = 4;
+ optional uint32 copied = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_writepage.proto b/protos/perfetto/trace/ftrace/ext4_writepage.proto
new file mode 100644
index 0000000..ae79ba5
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_writepage.proto
@@ -0,0 +1,13 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4WritepageFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional uint64 index = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_writepages.proto b/protos/perfetto/trace/ftrace/ext4_writepages.proto
new file mode 100644
index 0000000..870ed70
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_writepages.proto
@@ -0,0 +1,20 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4WritepagesFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_writepages_result.proto b/protos/perfetto/trace/ftrace/ext4_writepages_result.proto
new file mode 100644
index 0000000..dfefa79
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_writepages_result.proto
@@ -0,0 +1,17 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4WritepagesResultFtraceEvent {
+ optional uint32 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;
+}
diff --git a/protos/perfetto/trace/ftrace/ext4_zero_range.proto b/protos/perfetto/trace/ftrace/ext4_zero_range.proto
new file mode 100644
index 0000000..904b7cb
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ext4_zero_range.proto
@@ -0,0 +1,15 @@
+// Autogenerated by:
+// ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message Ext4ZeroRangeFtraceEvent {
+ optional uint32 dev = 1;
+ optional uint64 ino = 2;
+ optional int64 offset = 3;
+ optional int64 len = 4;
+ optional int32 mode = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index b11748a..2a43db4 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -129,6 +129,115 @@
import "perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto";
import "perfetto/trace/ftrace/suspend_resume.proto";
import "perfetto/trace/ftrace/sched_wakeup_new.proto";
+import "perfetto/trace/ftrace/ext4_allocate_blocks.proto";
+import "perfetto/trace/ftrace/ext4_allocate_inode.proto";
+import "perfetto/trace/ftrace/ext4_alloc_da_blocks.proto";
+import "perfetto/trace/ftrace/ext4_begin_ordered_truncate.proto";
+import "perfetto/trace/ftrace/ext4_collapse_range.proto";
+import "perfetto/trace/ftrace/ext4_da_release_space.proto";
+import "perfetto/trace/ftrace/ext4_da_reserve_space.proto";
+import "perfetto/trace/ftrace/ext4_da_update_reserve_space.proto";
+import "perfetto/trace/ftrace/ext4_da_write_pages.proto";
+import "perfetto/trace/ftrace/ext4_da_write_pages_extent.proto";
+import "perfetto/trace/ftrace/ext4_direct_IO_enter.proto";
+import "perfetto/trace/ftrace/ext4_direct_IO_exit.proto";
+import "perfetto/trace/ftrace/ext4_discard_blocks.proto";
+import "perfetto/trace/ftrace/ext4_discard_preallocations.proto";
+import "perfetto/trace/ftrace/ext4_drop_inode.proto";
+import "perfetto/trace/ftrace/ext4_es_cache_extent.proto";
+import "perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_enter.proto";
+import "perfetto/trace/ftrace/ext4_es_find_delayed_extent_range_exit.proto";
+import "perfetto/trace/ftrace/ext4_es_insert_extent.proto";
+import "perfetto/trace/ftrace/ext4_es_lookup_extent_enter.proto";
+import "perfetto/trace/ftrace/ext4_es_lookup_extent_exit.proto";
+import "perfetto/trace/ftrace/ext4_es_remove_extent.proto";
+import "perfetto/trace/ftrace/ext4_es_shrink.proto";
+import "perfetto/trace/ftrace/ext4_es_shrink_count.proto";
+import "perfetto/trace/ftrace/ext4_es_shrink_scan_enter.proto";
+import "perfetto/trace/ftrace/ext4_es_shrink_scan_exit.proto";
+import "perfetto/trace/ftrace/ext4_evict_inode.proto";
+import "perfetto/trace/ftrace/ext4_ext_convert_to_initialized_enter.proto";
+import "perfetto/trace/ftrace/ext4_ext_convert_to_initialized_fastpath.proto";
+import "perfetto/trace/ftrace/ext4_ext_handle_unwritten_extents.proto";
+import "perfetto/trace/ftrace/ext4_ext_in_cache.proto";
+import "perfetto/trace/ftrace/ext4_ext_load_extent.proto";
+import "perfetto/trace/ftrace/ext4_ext_map_blocks_enter.proto";
+import "perfetto/trace/ftrace/ext4_ext_map_blocks_exit.proto";
+import "perfetto/trace/ftrace/ext4_ext_put_in_cache.proto";
+import "perfetto/trace/ftrace/ext4_ext_remove_space.proto";
+import "perfetto/trace/ftrace/ext4_ext_remove_space_done.proto";
+import "perfetto/trace/ftrace/ext4_ext_rm_idx.proto";
+import "perfetto/trace/ftrace/ext4_ext_rm_leaf.proto";
+import "perfetto/trace/ftrace/ext4_ext_show_extent.proto";
+import "perfetto/trace/ftrace/ext4_fallocate_enter.proto";
+import "perfetto/trace/ftrace/ext4_fallocate_exit.proto";
+import "perfetto/trace/ftrace/ext4_find_delalloc_range.proto";
+import "perfetto/trace/ftrace/ext4_forget.proto";
+import "perfetto/trace/ftrace/ext4_free_blocks.proto";
+import "perfetto/trace/ftrace/ext4_free_inode.proto";
+import "perfetto/trace/ftrace/ext4_get_implied_cluster_alloc_exit.proto";
+import "perfetto/trace/ftrace/ext4_get_reserved_cluster_alloc.proto";
+import "perfetto/trace/ftrace/ext4_ind_map_blocks_enter.proto";
+import "perfetto/trace/ftrace/ext4_ind_map_blocks_exit.proto";
+import "perfetto/trace/ftrace/ext4_insert_range.proto";
+import "perfetto/trace/ftrace/ext4_invalidatepage.proto";
+import "perfetto/trace/ftrace/ext4_journalled_invalidatepage.proto";
+import "perfetto/trace/ftrace/ext4_journalled_write_end.proto";
+import "perfetto/trace/ftrace/ext4_journal_start.proto";
+import "perfetto/trace/ftrace/ext4_journal_start_reserved.proto";
+import "perfetto/trace/ftrace/ext4_load_inode.proto";
+import "perfetto/trace/ftrace/ext4_load_inode_bitmap.proto";
+import "perfetto/trace/ftrace/ext4_mark_inode_dirty.proto";
+import "perfetto/trace/ftrace/ext4_mballoc_alloc.proto";
+import "perfetto/trace/ftrace/ext4_mballoc_discard.proto";
+import "perfetto/trace/ftrace/ext4_mballoc_free.proto";
+import "perfetto/trace/ftrace/ext4_mballoc_prealloc.proto";
+import "perfetto/trace/ftrace/ext4_mb_bitmap_load.proto";
+import "perfetto/trace/ftrace/ext4_mb_buddy_bitmap_load.proto";
+import "perfetto/trace/ftrace/ext4_mb_discard_preallocations.proto";
+import "perfetto/trace/ftrace/ext4_mb_new_group_pa.proto";
+import "perfetto/trace/ftrace/ext4_mb_new_inode_pa.proto";
+import "perfetto/trace/ftrace/ext4_mb_release_group_pa.proto";
+import "perfetto/trace/ftrace/ext4_mb_release_inode_pa.proto";
+import "perfetto/trace/ftrace/ext4_other_inode_update_time.proto";
+import "perfetto/trace/ftrace/ext4_punch_hole.proto";
+import "perfetto/trace/ftrace/ext4_read_block_bitmap_load.proto";
+import "perfetto/trace/ftrace/ext4_readpage.proto";
+import "perfetto/trace/ftrace/ext4_releasepage.proto";
+import "perfetto/trace/ftrace/ext4_remove_blocks.proto";
+import "perfetto/trace/ftrace/ext4_request_blocks.proto";
+import "perfetto/trace/ftrace/ext4_request_inode.proto";
+import "perfetto/trace/ftrace/ext4_sync_fs.proto";
+import "perfetto/trace/ftrace/ext4_trim_all_free.proto";
+import "perfetto/trace/ftrace/ext4_trim_extent.proto";
+import "perfetto/trace/ftrace/ext4_truncate_enter.proto";
+import "perfetto/trace/ftrace/ext4_truncate_exit.proto";
+import "perfetto/trace/ftrace/ext4_unlink_enter.proto";
+import "perfetto/trace/ftrace/ext4_unlink_exit.proto";
+import "perfetto/trace/ftrace/ext4_write_begin.proto";
+import "perfetto/trace/ftrace/ext4_write_end.proto";
+import "perfetto/trace/ftrace/ext4_writepage.proto";
+import "perfetto/trace/ftrace/ext4_writepages.proto";
+import "perfetto/trace/ftrace/ext4_writepages_result.proto";
+import "perfetto/trace/ftrace/ext4_zero_range.proto";
+import "perfetto/trace/ftrace/block_bio_backmerge.proto";
+import "perfetto/trace/ftrace/block_bio_bounce.proto";
+import "perfetto/trace/ftrace/block_bio_complete.proto";
+import "perfetto/trace/ftrace/block_bio_frontmerge.proto";
+import "perfetto/trace/ftrace/block_bio_queue.proto";
+import "perfetto/trace/ftrace/block_bio_remap.proto";
+import "perfetto/trace/ftrace/block_dirty_buffer.proto";
+import "perfetto/trace/ftrace/block_getrq.proto";
+import "perfetto/trace/ftrace/block_plug.proto";
+import "perfetto/trace/ftrace/block_rq_abort.proto";
+import "perfetto/trace/ftrace/block_rq_complete.proto";
+import "perfetto/trace/ftrace/block_rq_insert.proto";
+import "perfetto/trace/ftrace/block_rq_remap.proto";
+import "perfetto/trace/ftrace/block_rq_requeue.proto";
+import "perfetto/trace/ftrace/block_sleeprq.proto";
+import "perfetto/trace/ftrace/block_split.proto";
+import "perfetto/trace/ftrace/block_touch_buffer.proto";
+import "perfetto/trace/ftrace/block_unplug.proto";
package perfetto.protos;
@@ -258,5 +367,122 @@
MmCompactionWakeupKcompactdFtraceEvent mm_compaction_wakeup_kcompactd = 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;
+ 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;
+ Ext4WriteEndFtraceEvent ext4_write_end = 230;
+ Ext4WritepageFtraceEvent ext4_writepage = 231;
+ Ext4WritepagesFtraceEvent ext4_writepages = 232;
+ Ext4WritepagesResultFtraceEvent ext4_writepages_result = 233;
+ Ext4ZeroRangeFtraceEvent ext4_zero_range = 234;
}
}
diff --git a/src/ftrace_reader/event_info.cc b/src/ftrace_reader/event_info.cc
index a4c3933..913db2b 100644
--- a/src/ftrace_reader/event_info.cc
+++ b/src/ftrace_reader/event_info.cc
@@ -76,6 +76,161 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "block_bio_backmerge";
+ event->group = "block";
+ event->proto_field_id = 115;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_bio_bounce";
+ event->group = "block";
+ event->proto_field_id = 116;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_bio_complete";
+ event->group = "block";
+ event->proto_field_id = 117;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("error", 4, kProtoInt32));
+ event->fields.push_back(MakeField("rwbs", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_bio_frontmerge";
+ event->group = "block";
+ event->proto_field_id = 118;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_bio_queue";
+ event->group = "block";
+ event->proto_field_id = 119;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_bio_remap";
+ event->group = "block";
+ event->proto_field_id = 120;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("old_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("old_sector", 5, kProtoUint64));
+ event->fields.push_back(MakeField("rwbs", 6, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_dirty_buffer";
+ event->group = "block";
+ event->proto_field_id = 121;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("size", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_getrq";
+ event->group = "block";
+ event->proto_field_id = 122;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_plug";
+ event->group = "block";
+ event->proto_field_id = 123;
+ event->fields.push_back(MakeField("comm", 1, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_rq_abort";
+ event->group = "block";
+ event->proto_field_id = 124;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("errors", 4, kProtoInt32));
+ event->fields.push_back(MakeField("rwbs", 5, kProtoString));
+ event->fields.push_back(MakeField("cmd", 6, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_rq_complete";
+ event->group = "block";
+ event->proto_field_id = 125;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("errors", 4, kProtoInt32));
+ event->fields.push_back(MakeField("rwbs", 5, kProtoString));
+ event->fields.push_back(MakeField("cmd", 6, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_rq_insert";
+ event->group = "block";
+ event->proto_field_id = 126;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("bytes", 4, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 5, kProtoString));
+ event->fields.push_back(MakeField("comm", 6, kProtoString));
+ event->fields.push_back(MakeField("cmd", 7, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "block_rq_issue";
event->group = "block";
event->proto_field_id = 45;
@@ -91,6 +246,82 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "block_rq_remap";
+ event->group = "block";
+ event->proto_field_id = 128;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("old_dev", 4, kProtoUint32));
+ event->fields.push_back(MakeField("old_sector", 5, kProtoUint64));
+ event->fields.push_back(MakeField("nr_bios", 6, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 7, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_rq_requeue";
+ event->group = "block";
+ event->proto_field_id = 129;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("errors", 4, kProtoInt32));
+ event->fields.push_back(MakeField("rwbs", 5, kProtoString));
+ event->fields.push_back(MakeField("cmd", 6, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_sleeprq";
+ event->group = "block";
+ event->proto_field_id = 130;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_sector", 3, kProtoUint32));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_split";
+ event->group = "block";
+ event->proto_field_id = 131;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("new_sector", 3, kProtoUint64));
+ event->fields.push_back(MakeField("rwbs", 4, kProtoString));
+ event->fields.push_back(MakeField("comm", 5, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_touch_buffer";
+ event->group = "block";
+ event->proto_field_id = 132;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("sector", 2, kProtoUint64));
+ event->fields.push_back(MakeField("size", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "block_unplug";
+ event->group = "block";
+ event->proto_field_id = 133;
+ event->fields.push_back(MakeField("nr_rq", 1, kProtoInt32));
+ event->fields.push_back(MakeField("comm", 2, kProtoString));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "cgroup_attach_task";
event->group = "cgroup";
event->proto_field_id = 67;
@@ -431,6 +662,119 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "ext4_alloc_da_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 134;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("data_blocks", 3, kProtoUint32));
+ event->fields.push_back(MakeField("meta_blocks", 4, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_allocate_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 135;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("block", 3, kProtoUint64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("logical", 5, kProtoUint32));
+ event->fields.push_back(MakeField("lleft", 6, kProtoUint32));
+ event->fields.push_back(MakeField("lright", 7, kProtoUint32));
+ event->fields.push_back(MakeField("goal", 8, kProtoUint64));
+ event->fields.push_back(MakeField("pleft", 9, kProtoUint64));
+ event->fields.push_back(MakeField("pright", 10, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 11, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_allocate_inode";
+ event->group = "ext4";
+ event->proto_field_id = 136;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("dir", 3, kProtoUint64));
+ event->fields.push_back(MakeField("mode", 4, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_begin_ordered_truncate";
+ event->group = "ext4";
+ event->proto_field_id = 137;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("new_size", 3, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_collapse_range";
+ event->group = "ext4";
+ event->proto_field_id = 138;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_da_release_space";
+ event->group = "ext4";
+ event->proto_field_id = 139;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
+ event->fields.push_back(MakeField("freed_blocks", 4, kProtoInt32));
+ event->fields.push_back(MakeField("reserved_data_blocks", 5, kProtoInt32));
+ event->fields.push_back(MakeField("reserved_meta_blocks", 6, kProtoInt32));
+ event->fields.push_back(MakeField("allocated_meta_blocks", 7, kProtoInt32));
+ event->fields.push_back(MakeField("mode", 8, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_da_reserve_space";
+ event->group = "ext4";
+ event->proto_field_id = 140;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
+ event->fields.push_back(MakeField("reserved_data_blocks", 4, kProtoInt32));
+ event->fields.push_back(MakeField("reserved_meta_blocks", 5, kProtoInt32));
+ event->fields.push_back(MakeField("mode", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_da_update_reserve_space";
+ event->group = "ext4";
+ event->proto_field_id = 141;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("i_blocks", 3, kProtoUint64));
+ event->fields.push_back(MakeField("used_blocks", 4, kProtoInt32));
+ event->fields.push_back(MakeField("reserved_data_blocks", 5, kProtoInt32));
+ event->fields.push_back(MakeField("reserved_meta_blocks", 6, kProtoInt32));
+ event->fields.push_back(MakeField("allocated_meta_blocks", 7, kProtoInt32));
+ event->fields.push_back(MakeField("quota_claim", 8, kProtoInt32));
+ event->fields.push_back(MakeField("mode", 9, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "ext4_da_write_begin";
event->group = "ext4";
event->proto_field_id = 41;
@@ -457,6 +801,918 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "ext4_da_write_pages";
+ event->group = "ext4";
+ event->proto_field_id = 142;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("first_page", 3, kProtoUint64));
+ event->fields.push_back(MakeField("nr_to_write", 4, kProtoInt64));
+ event->fields.push_back(MakeField("sync_mode", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_da_write_pages_extent";
+ event->group = "ext4";
+ event->proto_field_id = 143;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_direct_IO_enter";
+ event->group = "ext4";
+ event->proto_field_id = 144;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ event->fields.push_back(MakeField("rw", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_direct_IO_exit";
+ event->group = "ext4";
+ event->proto_field_id = 145;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ event->fields.push_back(MakeField("rw", 5, kProtoInt32));
+ event->fields.push_back(MakeField("ret", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_discard_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 146;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("blk", 2, kProtoUint64));
+ event->fields.push_back(MakeField("count", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_discard_preallocations";
+ event->group = "ext4";
+ event->proto_field_id = 147;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_drop_inode";
+ event->group = "ext4";
+ event->proto_field_id = 148;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("drop", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_cache_extent";
+ event->group = "ext4";
+ event->proto_field_id = 149;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 5, kProtoUint64));
+ event->fields.push_back(MakeField("status", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_find_delayed_extent_range_enter";
+ event->group = "ext4";
+ event->proto_field_id = 150;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_find_delayed_extent_range_exit";
+ event->group = "ext4";
+ event->proto_field_id = 151;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 5, kProtoUint64));
+ event->fields.push_back(MakeField("status", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_insert_extent";
+ event->group = "ext4";
+ event->proto_field_id = 152;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 5, kProtoUint64));
+ event->fields.push_back(MakeField("status", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_lookup_extent_enter";
+ event->group = "ext4";
+ event->proto_field_id = 153;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_lookup_extent_exit";
+ event->group = "ext4";
+ event->proto_field_id = 154;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 5, kProtoUint64));
+ event->fields.push_back(MakeField("status", 6, kProtoUint32));
+ event->fields.push_back(MakeField("found", 7, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_remove_extent";
+ event->group = "ext4";
+ event->proto_field_id = 155;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_shrink";
+ event->group = "ext4";
+ event->proto_field_id = 156;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("nr_shrunk", 2, kProtoInt32));
+ event->fields.push_back(MakeField("scan_time", 3, kProtoUint64));
+ event->fields.push_back(MakeField("nr_skipped", 4, kProtoInt32));
+ event->fields.push_back(MakeField("retried", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_shrink_count";
+ event->group = "ext4";
+ event->proto_field_id = 157;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("nr_to_scan", 2, kProtoInt32));
+ event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_shrink_scan_enter";
+ event->group = "ext4";
+ event->proto_field_id = 158;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("nr_to_scan", 2, kProtoInt32));
+ event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_es_shrink_scan_exit";
+ event->group = "ext4";
+ event->proto_field_id = 159;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("nr_shrunk", 2, kProtoInt32));
+ event->fields.push_back(MakeField("cache_cnt", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_evict_inode";
+ event->group = "ext4";
+ event->proto_field_id = 160;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nlink", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_convert_to_initialized_enter";
+ event->group = "ext4";
+ event->proto_field_id = 161;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("m_lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("m_len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("u_lblk", 5, kProtoUint32));
+ event->fields.push_back(MakeField("u_len", 6, kProtoUint32));
+ event->fields.push_back(MakeField("u_pblk", 7, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_convert_to_initialized_fastpath";
+ event->group = "ext4";
+ event->proto_field_id = 162;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("m_lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("m_len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("u_lblk", 5, kProtoUint32));
+ event->fields.push_back(MakeField("u_len", 6, kProtoUint32));
+ event->fields.push_back(MakeField("u_pblk", 7, kProtoUint64));
+ event->fields.push_back(MakeField("i_lblk", 8, kProtoUint32));
+ event->fields.push_back(MakeField("i_len", 9, kProtoUint32));
+ event->fields.push_back(MakeField("i_pblk", 10, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_handle_unwritten_extents";
+ event->group = "ext4";
+ event->proto_field_id = 163;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 3, kProtoInt32));
+ event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 5, kProtoUint64));
+ event->fields.push_back(MakeField("len", 6, kProtoUint32));
+ event->fields.push_back(MakeField("allocated", 7, kProtoUint32));
+ event->fields.push_back(MakeField("newblk", 8, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_in_cache";
+ event->group = "ext4";
+ event->proto_field_id = 164;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("ret", 4, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_load_extent";
+ event->group = "ext4";
+ event->proto_field_id = 165;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_map_blocks_enter";
+ event->group = "ext4";
+ event->proto_field_id = 166;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_map_blocks_exit";
+ event->group = "ext4";
+ event->proto_field_id = 167;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 3, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 5, kProtoUint32));
+ event->fields.push_back(MakeField("len", 6, kProtoUint32));
+ event->fields.push_back(MakeField("mflags", 7, kProtoUint32));
+ event->fields.push_back(MakeField("ret", 8, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_put_in_cache";
+ event->group = "ext4";
+ event->proto_field_id = 168;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("start", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_remove_space";
+ event->group = "ext4";
+ event->proto_field_id = 169;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("start", 3, kProtoUint32));
+ event->fields.push_back(MakeField("end", 4, kProtoUint32));
+ event->fields.push_back(MakeField("depth", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_remove_space_done";
+ event->group = "ext4";
+ event->proto_field_id = 170;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("start", 3, kProtoUint32));
+ event->fields.push_back(MakeField("end", 4, kProtoUint32));
+ event->fields.push_back(MakeField("depth", 5, kProtoInt32));
+ event->fields.push_back(MakeField("partial", 6, kProtoInt64));
+ event->fields.push_back(MakeField("eh_entries", 7, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_rm_idx";
+ event->group = "ext4";
+ event->proto_field_id = 171;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_rm_leaf";
+ event->group = "ext4";
+ event->proto_field_id = 172;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("partial", 3, kProtoInt64));
+ event->fields.push_back(MakeField("start", 4, kProtoUint32));
+ event->fields.push_back(MakeField("ee_lblk", 5, kProtoUint32));
+ event->fields.push_back(MakeField("ee_pblk", 6, kProtoUint64));
+ event->fields.push_back(MakeField("ee_len", 7, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ext_show_extent";
+ event->group = "ext4";
+ event->proto_field_id = 173;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pblk", 3, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 4, kProtoUint32));
+ event->fields.push_back(MakeField("len", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_fallocate_enter";
+ event->group = "ext4";
+ event->proto_field_id = 174;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ event->fields.push_back(MakeField("mode", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_fallocate_exit";
+ event->group = "ext4";
+ event->proto_field_id = 175;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("blocks", 4, kProtoUint32));
+ event->fields.push_back(MakeField("ret", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_find_delalloc_range";
+ event->group = "ext4";
+ event->proto_field_id = 176;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("from", 3, kProtoUint32));
+ event->fields.push_back(MakeField("to", 4, kProtoUint32));
+ event->fields.push_back(MakeField("reverse", 5, kProtoInt32));
+ event->fields.push_back(MakeField("found", 6, kProtoInt32));
+ event->fields.push_back(MakeField("found_blk", 7, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_forget";
+ event->group = "ext4";
+ event->proto_field_id = 177;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("block", 3, kProtoUint64));
+ event->fields.push_back(MakeField("is_metadata", 4, kProtoInt32));
+ event->fields.push_back(MakeField("mode", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_free_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 178;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("block", 3, kProtoUint64));
+ event->fields.push_back(MakeField("count", 4, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 5, kProtoInt32));
+ event->fields.push_back(MakeField("mode", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_free_inode";
+ event->group = "ext4";
+ event->proto_field_id = 179;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("uid", 3, kProtoUint32));
+ event->fields.push_back(MakeField("gid", 4, kProtoUint32));
+ event->fields.push_back(MakeField("blocks", 5, kProtoUint64));
+ event->fields.push_back(MakeField("mode", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_get_implied_cluster_alloc_exit";
+ event->group = "ext4";
+ event->proto_field_id = 180;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint32));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
+ event->fields.push_back(MakeField("len", 5, kProtoUint32));
+ event->fields.push_back(MakeField("ret", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_get_reserved_cluster_alloc";
+ event->group = "ext4";
+ event->proto_field_id = 181;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ind_map_blocks_enter";
+ event->group = "ext4";
+ event->proto_field_id = 182;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 3, kProtoUint32));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_ind_map_blocks_exit";
+ event->group = "ext4";
+ event->proto_field_id = 183;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 3, kProtoUint32));
+ event->fields.push_back(MakeField("pblk", 4, kProtoUint64));
+ event->fields.push_back(MakeField("lblk", 5, kProtoUint32));
+ event->fields.push_back(MakeField("len", 6, kProtoUint32));
+ event->fields.push_back(MakeField("mflags", 7, kProtoUint32));
+ event->fields.push_back(MakeField("ret", 8, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_insert_range";
+ event->group = "ext4";
+ event->proto_field_id = 184;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_invalidatepage";
+ event->group = "ext4";
+ event->proto_field_id = 185;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("index", 3, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 4, kProtoUint32));
+ event->fields.push_back(MakeField("length", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_journal_start";
+ event->group = "ext4";
+ event->proto_field_id = 186;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ip", 2, kProtoUint64));
+ event->fields.push_back(MakeField("blocks", 3, kProtoInt32));
+ event->fields.push_back(MakeField("rsv_blocks", 4, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_journal_start_reserved";
+ event->group = "ext4";
+ event->proto_field_id = 187;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ip", 2, kProtoUint64));
+ event->fields.push_back(MakeField("blocks", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_journalled_invalidatepage";
+ event->group = "ext4";
+ event->proto_field_id = 188;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("index", 3, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 4, kProtoUint32));
+ event->fields.push_back(MakeField("length", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_journalled_write_end";
+ event->group = "ext4";
+ event->proto_field_id = 189;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("copied", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_load_inode";
+ event->group = "ext4";
+ event->proto_field_id = 190;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_load_inode_bitmap";
+ event->group = "ext4";
+ event->proto_field_id = 191;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("group", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mark_inode_dirty";
+ event->group = "ext4";
+ event->proto_field_id = 192;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("ip", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_bitmap_load";
+ event->group = "ext4";
+ event->proto_field_id = 193;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("group", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_buddy_bitmap_load";
+ event->group = "ext4";
+ event->proto_field_id = 194;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("group", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_discard_preallocations";
+ event->group = "ext4";
+ event->proto_field_id = 195;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("needed", 2, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_new_group_pa";
+ event->group = "ext4";
+ event->proto_field_id = 196;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pa_pstart", 3, kProtoUint64));
+ event->fields.push_back(MakeField("pa_lstart", 4, kProtoUint64));
+ event->fields.push_back(MakeField("pa_len", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_new_inode_pa";
+ event->group = "ext4";
+ event->proto_field_id = 197;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pa_pstart", 3, kProtoUint64));
+ event->fields.push_back(MakeField("pa_lstart", 4, kProtoUint64));
+ event->fields.push_back(MakeField("pa_len", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_release_group_pa";
+ event->group = "ext4";
+ event->proto_field_id = 198;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("pa_pstart", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pa_len", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mb_release_inode_pa";
+ event->group = "ext4";
+ event->proto_field_id = 199;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("block", 3, kProtoUint64));
+ event->fields.push_back(MakeField("count", 4, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mballoc_alloc";
+ event->group = "ext4";
+ event->proto_field_id = 200;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("orig_logical", 3, kProtoUint32));
+ event->fields.push_back(MakeField("orig_start", 4, kProtoInt32));
+ event->fields.push_back(MakeField("orig_group", 5, kProtoUint32));
+ event->fields.push_back(MakeField("orig_len", 6, kProtoInt32));
+ event->fields.push_back(MakeField("goal_logical", 7, kProtoUint32));
+ event->fields.push_back(MakeField("goal_start", 8, kProtoInt32));
+ event->fields.push_back(MakeField("goal_group", 9, kProtoUint32));
+ event->fields.push_back(MakeField("goal_len", 10, kProtoInt32));
+ event->fields.push_back(MakeField("result_logical", 11, kProtoUint32));
+ event->fields.push_back(MakeField("result_start", 12, kProtoInt32));
+ event->fields.push_back(MakeField("result_group", 13, kProtoUint32));
+ event->fields.push_back(MakeField("result_len", 14, kProtoInt32));
+ event->fields.push_back(MakeField("found", 15, kProtoUint32));
+ event->fields.push_back(MakeField("groups", 16, kProtoUint32));
+ event->fields.push_back(MakeField("buddy", 17, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 18, kProtoUint32));
+ event->fields.push_back(MakeField("tail", 19, kProtoUint32));
+ event->fields.push_back(MakeField("cr", 20, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mballoc_discard";
+ event->group = "ext4";
+ event->proto_field_id = 201;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("result_start", 3, kProtoInt32));
+ event->fields.push_back(MakeField("result_group", 4, kProtoUint32));
+ event->fields.push_back(MakeField("result_len", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mballoc_free";
+ event->group = "ext4";
+ event->proto_field_id = 202;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("result_start", 3, kProtoInt32));
+ event->fields.push_back(MakeField("result_group", 4, kProtoUint32));
+ event->fields.push_back(MakeField("result_len", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_mballoc_prealloc";
+ event->group = "ext4";
+ event->proto_field_id = 203;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("orig_logical", 3, kProtoUint32));
+ event->fields.push_back(MakeField("orig_start", 4, kProtoInt32));
+ event->fields.push_back(MakeField("orig_group", 5, kProtoUint32));
+ event->fields.push_back(MakeField("orig_len", 6, kProtoInt32));
+ event->fields.push_back(MakeField("result_logical", 7, kProtoUint32));
+ event->fields.push_back(MakeField("result_start", 8, kProtoInt32));
+ event->fields.push_back(MakeField("result_group", 9, kProtoUint32));
+ event->fields.push_back(MakeField("result_len", 10, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_other_inode_update_time";
+ event->group = "ext4";
+ event->proto_field_id = 204;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("orig_ino", 3, kProtoUint64));
+ event->fields.push_back(MakeField("uid", 4, kProtoUint32));
+ event->fields.push_back(MakeField("gid", 5, kProtoUint32));
+ event->fields.push_back(MakeField("mode", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_punch_hole";
+ event->group = "ext4";
+ event->proto_field_id = 205;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ event->fields.push_back(MakeField("mode", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_read_block_bitmap_load";
+ event->group = "ext4";
+ event->proto_field_id = 206;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("group", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_readpage";
+ event->group = "ext4";
+ event->proto_field_id = 207;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("index", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_releasepage";
+ event->group = "ext4";
+ event->proto_field_id = 208;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("index", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_remove_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 209;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("from", 3, kProtoUint32));
+ event->fields.push_back(MakeField("to", 4, kProtoUint32));
+ event->fields.push_back(MakeField("partial", 5, kProtoInt64));
+ event->fields.push_back(MakeField("ee_pblk", 6, kProtoUint64));
+ event->fields.push_back(MakeField("ee_lblk", 7, kProtoUint32));
+ event->fields.push_back(MakeField("ee_len", 8, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_request_blocks";
+ event->group = "ext4";
+ event->proto_field_id = 210;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("len", 3, kProtoUint32));
+ event->fields.push_back(MakeField("logical", 4, kProtoUint32));
+ event->fields.push_back(MakeField("lleft", 5, kProtoUint32));
+ event->fields.push_back(MakeField("lright", 6, kProtoUint32));
+ event->fields.push_back(MakeField("goal", 7, kProtoUint64));
+ event->fields.push_back(MakeField("pleft", 8, kProtoUint64));
+ event->fields.push_back(MakeField("pright", 9, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 10, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_request_inode";
+ event->group = "ext4";
+ event->proto_field_id = 211;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("dir", 2, kProtoUint64));
+ event->fields.push_back(MakeField("mode", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "ext4_sync_file_enter";
event->group = "ext4";
event->proto_field_id = 43;
@@ -480,6 +1736,170 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "ext4_sync_fs";
+ event->group = "ext4";
+ event->proto_field_id = 212;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("wait", 2, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_trim_all_free";
+ event->group = "ext4";
+ event->proto_field_id = 213;
+ event->fields.push_back(MakeField("dev_major", 1, kProtoInt32));
+ event->fields.push_back(MakeField("dev_minor", 2, kProtoInt32));
+ event->fields.push_back(MakeField("group", 3, kProtoUint32));
+ event->fields.push_back(MakeField("start", 4, kProtoInt32));
+ event->fields.push_back(MakeField("len", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_trim_extent";
+ event->group = "ext4";
+ event->proto_field_id = 214;
+ event->fields.push_back(MakeField("dev_major", 1, kProtoInt32));
+ event->fields.push_back(MakeField("dev_minor", 2, kProtoInt32));
+ event->fields.push_back(MakeField("group", 3, kProtoUint32));
+ event->fields.push_back(MakeField("start", 4, kProtoInt32));
+ event->fields.push_back(MakeField("len", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_truncate_enter";
+ event->group = "ext4";
+ event->proto_field_id = 215;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("blocks", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_truncate_exit";
+ event->group = "ext4";
+ event->proto_field_id = 216;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("blocks", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_unlink_enter";
+ event->group = "ext4";
+ event->proto_field_id = 217;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("parent", 3, kProtoUint64));
+ event->fields.push_back(MakeField("size", 4, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_unlink_exit";
+ event->group = "ext4";
+ event->proto_field_id = 218;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("ret", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_write_begin";
+ event->group = "ext4";
+ event->proto_field_id = 219;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("flags", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_write_end";
+ event->group = "ext4";
+ event->proto_field_id = 230;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pos", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoUint32));
+ event->fields.push_back(MakeField("copied", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_writepage";
+ event->group = "ext4";
+ event->proto_field_id = 231;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("index", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_writepages";
+ event->group = "ext4";
+ event->proto_field_id = 232;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("nr_to_write", 3, kProtoInt64));
+ event->fields.push_back(MakeField("pages_skipped", 4, kProtoInt64));
+ event->fields.push_back(MakeField("range_start", 5, kProtoInt64));
+ event->fields.push_back(MakeField("range_end", 6, kProtoInt64));
+ event->fields.push_back(MakeField("writeback_index", 7, kProtoUint64));
+ event->fields.push_back(MakeField("sync_mode", 8, kProtoInt32));
+ event->fields.push_back(MakeField("for_kupdate", 9, kProtoUint32));
+ event->fields.push_back(MakeField("range_cyclic", 10, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_writepages_result";
+ event->group = "ext4";
+ event->proto_field_id = 233;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("ret", 3, kProtoInt32));
+ event->fields.push_back(MakeField("pages_written", 4, kProtoInt32));
+ event->fields.push_back(MakeField("pages_skipped", 5, kProtoInt64));
+ event->fields.push_back(MakeField("writeback_index", 6, kProtoUint64));
+ event->fields.push_back(MakeField("sync_mode", 7, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ext4_zero_range";
+ event->group = "ext4";
+ event->proto_field_id = 234;
+ event->fields.push_back(MakeField("dev", 1, kProtoUint32));
+ event->fields.push_back(MakeField("ino", 2, kProtoUint64));
+ event->fields.push_back(MakeField("offset", 3, kProtoInt64));
+ event->fields.push_back(MakeField("len", 4, kProtoInt64));
+ event->fields.push_back(MakeField("mode", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "mm_filemap_add_to_page_cache";
event->group = "filemap";
event->proto_field_id = 97;
diff --git a/tools/ftrace_proto_gen/event_whitelist b/tools/ftrace_proto_gen/event_whitelist
index 0735e00..9411fdd 100644
--- a/tools/ftrace_proto_gen/event_whitelist
+++ b/tools/ftrace_proto_gen/event_whitelist
@@ -110,3 +110,113 @@
compaction/mm_compaction_wakeup_kcompactd
power/suspend_resume
sched/sched_wakeup_new
+ext4/ext4_allocate_blocks
+ext4/ext4_allocate_inode
+ext4/ext4_alloc_da_blocks
+ext4/ext4_begin_ordered_truncate
+ext4/ext4_collapse_range
+ext4/ext4_da_release_space
+ext4/ext4_da_reserve_space
+ext4/ext4_da_update_reserve_space
+ext4/ext4_da_write_pages
+ext4/ext4_da_write_pages_extent
+ext4/ext4_direct_IO_enter
+ext4/ext4_direct_IO_exit
+ext4/ext4_discard_blocks
+ext4/ext4_discard_preallocations
+ext4/ext4_drop_inode
+ext4/ext4_es_cache_extent
+ext4/ext4_es_find_delayed_extent_range_enter
+ext4/ext4_es_find_delayed_extent_range_exit
+ext4/ext4_es_insert_extent
+ext4/ext4_es_lookup_extent_enter
+ext4/ext4_es_lookup_extent_exit
+ext4/ext4_es_remove_extent
+ext4/ext4_es_shrink
+ext4/ext4_es_shrink_count
+ext4/ext4_es_shrink_scan_enter
+ext4/ext4_es_shrink_scan_exit
+ext4/ext4_evict_inode
+ext4/ext4_ext_convert_to_initialized_enter
+ext4/ext4_ext_convert_to_initialized_fastpath
+ext4/ext4_ext_handle_unwritten_extents
+ext4/ext4_ext_in_cache
+ext4/ext4_ext_load_extent
+ext4/ext4_ext_map_blocks_enter
+ext4/ext4_ext_map_blocks_exit
+ext4/ext4_ext_put_in_cache
+ext4/ext4_ext_remove_space
+ext4/ext4_ext_remove_space_done
+ext4/ext4_ext_rm_idx
+ext4/ext4_ext_rm_leaf
+ext4/ext4_ext_show_extent
+ext4/ext4_fallocate_enter
+ext4/ext4_fallocate_exit
+ext4/ext4_find_delalloc_range
+ext4/ext4_forget
+ext4/ext4_free_blocks
+ext4/ext4_free_inode
+ext4/ext4_get_implied_cluster_alloc_exit
+ext4/ext4_get_reserved_cluster_alloc
+ext4/ext4_ind_map_blocks_enter
+ext4/ext4_ind_map_blocks_exit
+ext4/ext4_insert_range
+ext4/ext4_invalidatepage
+ext4/ext4_journalled_invalidatepage
+ext4/ext4_journalled_write_end
+ext4/ext4_journal_start
+ext4/ext4_journal_start_reserved
+ext4/ext4_load_inode
+ext4/ext4_load_inode_bitmap
+ext4/ext4_mark_inode_dirty
+ext4/ext4_mballoc_alloc
+ext4/ext4_mballoc_discard
+ext4/ext4_mballoc_free
+ext4/ext4_mballoc_prealloc
+ext4/ext4_mb_bitmap_load
+ext4/ext4_mb_buddy_bitmap_load
+ext4/ext4_mb_discard_preallocations
+ext4/ext4_mb_new_group_pa
+ext4/ext4_mb_new_inode_pa
+ext4/ext4_mb_release_group_pa
+ext4/ext4_mb_release_inode_pa
+ext4/ext4_other_inode_update_time
+ext4/ext4_punch_hole
+ext4/ext4_read_block_bitmap_load
+ext4/ext4_readpage
+ext4/ext4_releasepage
+ext4/ext4_remove_blocks
+ext4/ext4_request_blocks
+ext4/ext4_request_inode
+ext4/ext4_sync_fs
+ext4/ext4_trim_all_free
+ext4/ext4_trim_extent
+ext4/ext4_truncate_enter
+ext4/ext4_truncate_exit
+ext4/ext4_unlink_enter
+ext4/ext4_unlink_exit
+ext4/ext4_write_begin
+ext4/ext4_write_end
+ext4/ext4_writepage
+ext4/ext4_writepages
+ext4/ext4_writepages_result
+ext4/ext4_zero_range
+block/block_bio_backmerge
+block/block_bio_bounce
+block/block_bio_complete
+block/block_bio_frontmerge
+block/block_bio_queue
+block/block_bio_remap
+block/block_dirty_buffer
+block/block_getrq
+block/block_plug
+block/block_rq_abort
+block/block_rq_complete
+block/block_rq_insert
+block/block_rq_issue
+block/block_rq_remap
+block/block_rq_requeue
+block/block_sleeprq
+block/block_split
+block/block_touch_buffer
+block/block_unplug
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen.cc b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
index 9ecdb4e..9f611f8 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
@@ -86,6 +86,47 @@
return "";
}
+void PrintFtraceEventProtoAdditions(const std::set<std::string>& events) {
+ printf(
+ "\nNumber appropriately and add output to "
+ "protos/perfetto/trace/ftrace/ftrace_event.proto\n");
+ for (auto event : events) {
+ printf("%sFtraceEvent %s = ;\n", ToCamelCase(event).c_str(), event.c_str());
+ }
+}
+
+void PrintTraceToTextMain(const std::set<std::string>& events) {
+ printf(
+ "\nAdd output to TraceToSystrace for loop in "
+ "tools/ftrace_proto_gen/main.cc\n");
+ for (auto event : events) {
+ printf(
+ "else if (event.has_%s()) {\nconst auto& inner = event.%s();\nline = "
+ "Format%s(inner);\n} ",
+ event.c_str(), event.c_str(), ToCamelCase(event).c_str());
+ }
+}
+
+void PrintTraceToTextUsingStatements(const std::set<std::string>& events) {
+ printf("\nAdd output to tools/ftrace_proto_gen/main.cc\n");
+ for (auto event : events) {
+ printf("using protos::%sFtraceEvent;\n", ToCamelCase(event).c_str());
+ }
+}
+
+void PrintTraceToTextFunctions(const std::set<std::string>& events) {
+ printf(
+ "\nAdd output to tools/ftrace_proto_gen/main.cc and then manually go "
+ "through format files to match fields\n");
+ for (auto event : events) {
+ printf(
+ "std::string Format%s(const %sFtraceEvent& event) {"
+ "\nchar line[2048];"
+ "\nsprintf(line,\"%s: );\nreturn std::string(line);\n}\n",
+ ToCamelCase(event).c_str(), ToCamelCase(event).c_str(), event.c_str());
+ }
+}
+
bool GenerateProto(const FtraceEvent& format, Proto* proto_out) {
proto_out->name = ToCamelCase(format.name) + "FtraceEvent";
proto_out->fields.reserve(format.fields.size());
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen.h b/tools/ftrace_proto_gen/ftrace_proto_gen.h
index 23eea00..7b82791 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen.h
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen.h
@@ -34,6 +34,11 @@
std::string ToString();
};
+void PrintFtraceEventProtoAdditions(const std::set<std::string>& events);
+void PrintTraceToTextMain(const std::set<std::string>& events);
+void PrintTraceToTextUsingStatements(const std::set<std::string>& events);
+void PrintTraceToTextFunctions(const std::set<std::string>& events);
+
bool GenerateProto(const FtraceEvent& format, Proto* proto_out);
std::string InferProtoType(const FtraceEvent::Field& field);
diff --git a/tools/ftrace_proto_gen/main.cc b/tools/ftrace_proto_gen/main.cc
index 98a85eb..19460c1 100644
--- a/tools/ftrace_proto_gen/main.cc
+++ b/tools/ftrace_proto_gen/main.cc
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <sys/stat.h>
#include <fstream>
#include <memory>
#include <regex>
@@ -50,6 +51,24 @@
std::ostringstream ftrace_stream;
ftrace_stream << input.rdbuf();
+ std::set<std::string> new_events;
+ for (auto event : events) {
+ std::string file_name =
+ event.substr(event.find('/') + 1, std::string::npos);
+ struct stat buf;
+ if (stat(("protos/perfetto/trace/ftrace/" + file_name + ".proto").c_str(),
+ &buf) == -1) {
+ new_events.insert(file_name);
+ }
+ }
+
+ if (!new_events.empty()) {
+ perfetto::PrintFtraceEventProtoAdditions(new_events);
+ perfetto::PrintTraceToTextMain(new_events);
+ perfetto::PrintTraceToTextUsingStatements(new_events);
+ perfetto::PrintTraceToTextFunctions(new_events);
+ }
+
for (auto event : events) {
std::string proto_file_name =
event.substr(event.find('/') + 1, std::string::npos) + ".proto";
diff --git a/tools/trace_to_text/main.cc b/tools/trace_to_text/main.cc
index 7fe7c63..22762cb 100644
--- a/tools/trace_to_text/main.cc
+++ b/tools/trace_to_text/main.cc
@@ -74,13 +74,32 @@
using google::protobuf::compiler::Importer;
using google::protobuf::compiler::MultiFileErrorCollector;
using google::protobuf::io::OstreamOutputStream;
-using protos::BinderLockedFtraceEvent;
+
using protos::BinderLockFtraceEvent;
+using protos::BinderLockedFtraceEvent;
using protos::BinderSetPriorityFtraceEvent;
using protos::BinderTransactionFtraceEvent;
using protos::BinderTransactionReceivedFtraceEvent;
using protos::BinderUnlockFtraceEvent;
+using protos::BlockBioBackmergeFtraceEvent;
+using protos::BlockBioBounceFtraceEvent;
+using protos::BlockBioCompleteFtraceEvent;
+using protos::BlockBioFrontmergeFtraceEvent;
+using protos::BlockBioQueueFtraceEvent;
+using protos::BlockBioRemapFtraceEvent;
+using protos::BlockDirtyBufferFtraceEvent;
+using protos::BlockGetrqFtraceEvent;
+using protos::BlockPlugFtraceEvent;
+using protos::BlockRqAbortFtraceEvent;
+using protos::BlockRqCompleteFtraceEvent;
+using protos::BlockRqInsertFtraceEvent;
using protos::BlockRqIssueFtraceEvent;
+using protos::BlockRqRemapFtraceEvent;
+using protos::BlockRqRequeueFtraceEvent;
+using protos::BlockSleeprqFtraceEvent;
+using protos::BlockSplitFtraceEvent;
+using protos::BlockTouchBufferFtraceEvent;
+using protos::BlockUnplugFtraceEvent;
using protos::CgroupAttachTaskFtraceEvent;
using protos::CgroupDestroyRootFtraceEvent;
using protos::CgroupMkdirFtraceEvent;
@@ -90,27 +109,140 @@
using protos::CgroupRmdirFtraceEvent;
using protos::CgroupSetupRootFtraceEvent;
using protos::CgroupTransferTasksFtraceEvent;
-using protos::ClockDisableFtraceEvent;
-using protos::ClockEnableFtraceEvent;
-using protos::ClockSetRateFtraceEvent;
-using protos::CpuFrequencyFtraceEvent;
-using protos::CpuFrequencyLimitsFtraceEvent;
-using protos::CpuIdleFtraceEvent;
+using protos::MmCompactionBeginFtraceEvent;
+using protos::MmCompactionDeferCompactionFtraceEvent;
+using protos::MmCompactionDeferResetFtraceEvent;
+using protos::MmCompactionDeferredFtraceEvent;
+using protos::MmCompactionEndFtraceEvent;
+using protos::MmCompactionFinishedFtraceEvent;
+using protos::MmCompactionIsolateFreepagesFtraceEvent;
+using protos::MmCompactionIsolateMigratepagesFtraceEvent;
+using protos::MmCompactionKcompactdSleepFtraceEvent;
+using protos::MmCompactionKcompactdWakeFtraceEvent;
+using protos::MmCompactionMigratepagesFtraceEvent;
+using protos::MmCompactionSuitableFtraceEvent;
+using protos::MmCompactionTryToCompactPagesFtraceEvent;
+using protos::MmCompactionWakeupKcompactdFtraceEvent;
+using protos::CpufreqInteractiveAlreadyFtraceEvent;
+using protos::CpufreqInteractiveBoostFtraceEvent;
+using protos::CpufreqInteractiveNotyetFtraceEvent;
+using protos::CpufreqInteractiveSetspeedFtraceEvent;
+using protos::CpufreqInteractiveTargetFtraceEvent;
+using protos::CpufreqInteractiveUnboostFtraceEvent;
+using protos::Ext4AllocDaBlocksFtraceEvent;
+using protos::Ext4AllocateBlocksFtraceEvent;
+using protos::Ext4AllocateInodeFtraceEvent;
+using protos::Ext4BeginOrderedTruncateFtraceEvent;
+using protos::Ext4CollapseRangeFtraceEvent;
+using protos::Ext4DaReleaseSpaceFtraceEvent;
+using protos::Ext4DaReserveSpaceFtraceEvent;
+using protos::Ext4DaUpdateReserveSpaceFtraceEvent;
using protos::Ext4DaWriteBeginFtraceEvent;
using protos::Ext4DaWriteEndFtraceEvent;
+using protos::Ext4DaWritePagesFtraceEvent;
+using protos::Ext4DaWritePagesExtentFtraceEvent;
+using protos::Ext4DirectIOEnterFtraceEvent;
+using protos::Ext4DirectIOExitFtraceEvent;
+using protos::Ext4DiscardBlocksFtraceEvent;
+using protos::Ext4DiscardPreallocationsFtraceEvent;
+using protos::Ext4DropInodeFtraceEvent;
+using protos::Ext4EsCacheExtentFtraceEvent;
+using protos::Ext4EsFindDelayedExtentRangeEnterFtraceEvent;
+using protos::Ext4EsFindDelayedExtentRangeExitFtraceEvent;
+using protos::Ext4EsInsertExtentFtraceEvent;
+using protos::Ext4EsLookupExtentEnterFtraceEvent;
+using protos::Ext4EsLookupExtentExitFtraceEvent;
+using protos::Ext4EsRemoveExtentFtraceEvent;
+using protos::Ext4EsShrinkFtraceEvent;
+using protos::Ext4EsShrinkCountFtraceEvent;
+using protos::Ext4EsShrinkScanEnterFtraceEvent;
+using protos::Ext4EsShrinkScanExitFtraceEvent;
+using protos::Ext4EvictInodeFtraceEvent;
+using protos::Ext4ExtConvertToInitializedEnterFtraceEvent;
+using protos::Ext4ExtConvertToInitializedFastpathFtraceEvent;
+using protos::Ext4ExtHandleUnwrittenExtentsFtraceEvent;
+using protos::Ext4ExtInCacheFtraceEvent;
+using protos::Ext4ExtLoadExtentFtraceEvent;
+using protos::Ext4ExtMapBlocksEnterFtraceEvent;
+using protos::Ext4ExtMapBlocksExitFtraceEvent;
+using protos::Ext4ExtPutInCacheFtraceEvent;
+using protos::Ext4ExtRemoveSpaceFtraceEvent;
+using protos::Ext4ExtRemoveSpaceDoneFtraceEvent;
+using protos::Ext4ExtRmIdxFtraceEvent;
+using protos::Ext4ExtRmLeafFtraceEvent;
+using protos::Ext4ExtShowExtentFtraceEvent;
+using protos::Ext4FallocateEnterFtraceEvent;
+using protos::Ext4FallocateExitFtraceEvent;
+using protos::Ext4FindDelallocRangeFtraceEvent;
+using protos::Ext4ForgetFtraceEvent;
+using protos::Ext4FreeBlocksFtraceEvent;
+using protos::Ext4FreeInodeFtraceEvent;
+using protos::Ext4GetImpliedClusterAllocExitFtraceEvent;
+using protos::Ext4GetReservedClusterAllocFtraceEvent;
+using protos::Ext4IndMapBlocksEnterFtraceEvent;
+using protos::Ext4IndMapBlocksExitFtraceEvent;
+using protos::Ext4InsertRangeFtraceEvent;
+using protos::Ext4InvalidatepageFtraceEvent;
+using protos::Ext4JournalStartFtraceEvent;
+using protos::Ext4JournalStartReservedFtraceEvent;
+using protos::Ext4JournalledInvalidatepageFtraceEvent;
+using protos::Ext4JournalledWriteEndFtraceEvent;
+using protos::Ext4LoadInodeFtraceEvent;
+using protos::Ext4LoadInodeBitmapFtraceEvent;
+using protos::Ext4MarkInodeDirtyFtraceEvent;
+using protos::Ext4MbBitmapLoadFtraceEvent;
+using protos::Ext4MbBuddyBitmapLoadFtraceEvent;
+using protos::Ext4MbDiscardPreallocationsFtraceEvent;
+using protos::Ext4MbNewGroupPaFtraceEvent;
+using protos::Ext4MbNewInodePaFtraceEvent;
+using protos::Ext4MbReleaseGroupPaFtraceEvent;
+using protos::Ext4MbReleaseInodePaFtraceEvent;
+using protos::Ext4MballocAllocFtraceEvent;
+using protos::Ext4MballocDiscardFtraceEvent;
+using protos::Ext4MballocFreeFtraceEvent;
+using protos::Ext4MballocPreallocFtraceEvent;
+using protos::Ext4OtherInodeUpdateTimeFtraceEvent;
+using protos::Ext4PunchHoleFtraceEvent;
+using protos::Ext4ReadBlockBitmapLoadFtraceEvent;
+using protos::Ext4ReadpageFtraceEvent;
+using protos::Ext4ReleasepageFtraceEvent;
+using protos::Ext4RemoveBlocksFtraceEvent;
+using protos::Ext4RequestBlocksFtraceEvent;
+using protos::Ext4RequestInodeFtraceEvent;
using protos::Ext4SyncFileEnterFtraceEvent;
using protos::Ext4SyncFileExitFtraceEvent;
-using protos::FtraceEvent;
-using protos::FtraceEventBundle;
+using protos::Ext4SyncFsFtraceEvent;
+using protos::Ext4TrimAllFreeFtraceEvent;
+using protos::Ext4TrimExtentFtraceEvent;
+using protos::Ext4TruncateEnterFtraceEvent;
+using protos::Ext4TruncateExitFtraceEvent;
+using protos::Ext4UnlinkEnterFtraceEvent;
+using protos::Ext4UnlinkExitFtraceEvent;
+using protos::Ext4WriteBeginFtraceEvent;
+using protos::Ext4WriteEndFtraceEvent;
+using protos::Ext4WritepageFtraceEvent;
+using protos::Ext4WritepagesFtraceEvent;
+using protos::Ext4WritepagesResultFtraceEvent;
+using protos::Ext4ZeroRangeFtraceEvent;
+using protos::MmFilemapAddToPageCacheFtraceEvent;
+using protos::MmFilemapDeleteFromPageCacheFtraceEvent;
+using protos::PrintFtraceEvent;
using protos::I2cReadFtraceEvent;
using protos::I2cReplyFtraceEvent;
using protos::I2cResultFtraceEvent;
using protos::I2cWriteFtraceEvent;
+using protos::SmbusReadFtraceEvent;
+using protos::SmbusReplyFtraceEvent;
+using protos::SmbusResultFtraceEvent;
+using protos::SmbusWriteFtraceEvent;
using protos::IpiEntryFtraceEvent;
using protos::IpiExitFtraceEvent;
using protos::IpiRaiseFtraceEvent;
using protos::IrqHandlerEntryFtraceEvent;
using protos::IrqHandlerExitFtraceEvent;
+using protos::SoftirqEntryFtraceEvent;
+using protos::SoftirqExitFtraceEvent;
+using protos::SoftirqRaiseFtraceEvent;
using protos::LowmemoryKillFtraceEvent;
using protos::MdpCmdKickoffFtraceEvent;
using protos::MdpCmdPingpongDoneFtraceEvent;
@@ -131,60 +263,46 @@
using protos::MdpSsppSetFtraceEvent;
using protos::MdpTraceCounterFtraceEvent;
using protos::MdpVideoUnderrunDoneFtraceEvent;
-using protos::MmCompactionBeginFtraceEvent;
-using protos::MmCompactionDeferCompactionFtraceEvent;
-using protos::MmCompactionDeferredFtraceEvent;
-using protos::MmCompactionDeferResetFtraceEvent;
-using protos::MmCompactionEndFtraceEvent;
-using protos::MmCompactionFinishedFtraceEvent;
-using protos::MmCompactionIsolateFreepagesFtraceEvent;
-using protos::MmCompactionIsolateMigratepagesFtraceEvent;
-using protos::MmCompactionKcompactdSleepFtraceEvent;
-using protos::MmCompactionKcompactdWakeFtraceEvent;
-using protos::MmCompactionMigratepagesFtraceEvent;
-using protos::MmCompactionSuitableFtraceEvent;
-using protos::MmCompactionTryToCompactPagesFtraceEvent;
-using protos::MmCompactionWakeupKcompactdFtraceEvent;
-using protos::MmFilemapAddToPageCacheFtraceEvent;
-using protos::MmFilemapDeleteFromPageCacheFtraceEvent;
-using protos::MmVmscanDirectReclaimBeginFtraceEvent;
-using protos::MmVmscanDirectReclaimEndFtraceEvent;
-using protos::MmVmscanKswapdSleepFtraceEvent;
-using protos::MmVmscanKswapdWakeFtraceEvent;
-using protos::PrintFtraceEvent;
-using protos::ProcessTree;
-using protos::RegulatorDisableCompleteFtraceEvent;
+using protos::RotatorBwAoAsContextFtraceEvent;
+using protos::TracingMarkWriteFtraceEvent;
+using protos::ClockDisableFtraceEvent;
+using protos::ClockEnableFtraceEvent;
+using protos::ClockSetRateFtraceEvent;
+using protos::CpuFrequencyFtraceEvent;
+using protos::CpuFrequencyLimitsFtraceEvent;
+using protos::CpuIdleFtraceEvent;
+using protos::SuspendResumeFtraceEvent;
using protos::RegulatorDisableFtraceEvent;
+using protos::RegulatorDisableCompleteFtraceEvent;
+using protos::RegulatorEnableFtraceEvent;
using protos::RegulatorEnableCompleteFtraceEvent;
using protos::RegulatorEnableDelayFtraceEvent;
-using protos::RegulatorEnableFtraceEvent;
-using protos::RegulatorSetVoltageCompleteFtraceEvent;
using protos::RegulatorSetVoltageFtraceEvent;
-using protos::RotatorBwAoAsContextFtraceEvent;
+using protos::RegulatorSetVoltageCompleteFtraceEvent;
using protos::SchedBlockedReasonFtraceEvent;
using protos::SchedCpuHotplugFtraceEvent;
using protos::SchedSwitchFtraceEvent;
using protos::SchedWakeupFtraceEvent;
using protos::SchedWakeupNewFtraceEvent;
using protos::SchedWakingFtraceEvent;
-using protos::SmbusReadFtraceEvent;
-using protos::SmbusReplyFtraceEvent;
-using protos::SmbusResultFtraceEvent;
-using protos::SmbusWriteFtraceEvent;
-using protos::SoftirqEntryFtraceEvent;
-using protos::SoftirqExitFtraceEvent;
-using protos::SoftirqRaiseFtraceEvent;
-using protos::SuspendResumeFtraceEvent;
using protos::SyncPtFtraceEvent;
using protos::SyncTimelineFtraceEvent;
using protos::SyncWaitFtraceEvent;
-using protos::Trace;
-using protos::TracePacket;
-using protos::TracingMarkWriteFtraceEvent;
+using protos::MmVmscanDirectReclaimBeginFtraceEvent;
+using protos::MmVmscanDirectReclaimEndFtraceEvent;
+using protos::MmVmscanKswapdSleepFtraceEvent;
+using protos::MmVmscanKswapdWakeFtraceEvent;
using protos::WorkqueueActivateWorkFtraceEvent;
using protos::WorkqueueExecuteEndFtraceEvent;
using protos::WorkqueueExecuteStartFtraceEvent;
using protos::WorkqueueQueueWorkFtraceEvent;
+
+using protos::FtraceEvent;
+using protos::FtraceEventBundle;
+using protos::PrintFtraceEvent;
+using protos::ProcessTree;
+using protos::Trace;
+using protos::TracePacket;
using Process = protos::ProcessTree::Process;
// TODO(hjd): Add tests.
@@ -207,7 +325,7 @@
}
};
-const char* GetFlag(int32_t state) {
+const char* GetSchedSwitchFlag(int32_t state) {
state &= 511;
if (state & 1)
return "S";
@@ -228,6 +346,88 @@
return "R";
}
+const char* GetExt4HintFlag(int32_t state) {
+ if (state & 0x0001)
+ return "HINT_MERGE";
+ if (state & 0x0002)
+ return "HINT_RESV";
+ if (state & 0x0004)
+ return "HINT_MDATA";
+ if (state & 0x0008)
+ return "HINT_FIRST";
+ if (state & 0x0010)
+ return "HINT_BEST";
+ if (state & 0x0020)
+ return "HINT_DATA";
+ if (state & 0x0040)
+ return "HINT_NOPREALLOC";
+ if (state & 0x0080)
+ return "HINT_GRP_ALLOCE";
+ if (state & 0x0100)
+ return "HINT_GOAL_ONLY";
+ if (state & 0x0200)
+ return "HINT_DATA";
+ if (state & 0x0400)
+ return "HINT_NOPREALLOC";
+ if (state & 0x0800)
+ return "HINT_GRP_ALLOCE";
+ if (state & 0x2000)
+ return "HINT_GOAL_ONLY";
+ return "";
+}
+
+const char* GetExt4FreeBlocksFlag(int32_t state) {
+ if (state & 0x0001)
+ return "METADATA";
+ if (state & 0x0002)
+ return "FORGET";
+ if (state & 0x0004)
+ return "VALIDATED";
+ if (state & 0x0008)
+ return "NO_QUOTA";
+ if (state & 0x0010)
+ return "1ST_CLUSTER";
+ if (state & 0x0020)
+ return "LAST_CLUSTER";
+ return "";
+}
+
+const char* GetExt4ModeFlag(int32_t state) {
+ if (state & 0x01)
+ return "KEEP_SIZE";
+ if (state & 0x02)
+ return "PUNCH_HOLE";
+ if (state & 0x04)
+ return "NO_HIDE_STALE";
+ if (state & 0x08)
+ return "COLLAPSE_RANGE";
+ if (state & 0x10)
+ return "ZERO_RANGE";
+ return "";
+}
+
+const char* GetExt4ExtFlag(int32_t state) {
+ if (state & 0x0001)
+ return "CREATE";
+ if (state & 0x0002)
+ return "UNWRIT";
+ if (state & 0x0004)
+ return "DEALLOC";
+ if (state & 0x0008)
+ return "PRE_IO";
+ if (state & 0x0010)
+ return "CONVERT";
+ if (state & 0x0020)
+ return "METADATA_NOFAIL";
+ if (state & 0x0040)
+ return "NO_NORMALIZE";
+ if (state & 0x0080)
+ return "KEEP_SIZE";
+ if (state & 0x0100)
+ return "NO_LOCK";
+ return "";
+}
+
const char* MmCompactionRetArray[] = {
"deferred", "skipped", "continue", "partial",
"complete", "no_suitable_page", "not_suitable_zone", "contended"};
@@ -264,7 +464,8 @@
"prev_pid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_pid=%d "
"next_prio=%d\\n",
sched_switch.prev_comm().c_str(), sched_switch.prev_pid(),
- sched_switch.prev_prio(), GetFlag(sched_switch.prev_state()),
+ sched_switch.prev_prio(),
+ GetSchedSwitchFlag(sched_switch.prev_state()),
sched_switch.next_comm().c_str(), sched_switch.next_pid(),
sched_switch.next_prio());
return std::string(line);
@@ -842,6 +1043,1187 @@
return std::string(line);
}
+std::string FormatBlockBioBackmerge(const BlockBioBackmergeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_bio_backmerge: %d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockBioBounce(const BlockBioBounceFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "block_bio_bounce:"
+ "%d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockBioComplete(const BlockBioCompleteFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_bio_complete: %d,%d %s %llu + %u [%d]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(), event.error());
+ return std::string(line);
+}
+
+std::string FormatBlockBioFrontmerge(
+ const BlockBioFrontmergeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_bio_frontmerge: %d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockBioQueue(const BlockBioQueueFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_bio_queue: %d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockBioRemap(const BlockBioRemapFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_bio_remap: %d,%d %s %llu + %u <- (%d,%d) %llu\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ (unsigned int)(event.old_dev() >> 20),
+ (unsigned int)(event.old_dev() & ((1U << 20) - 1)),
+ (unsigned long long)event.old_sector());
+ return std::string(line);
+}
+
+std::string FormatBlockDirtyBuffer(const BlockDirtyBufferFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_dirty_buffer: %d,%d sector=%llu size=%zu\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)),
+ (unsigned long long)event.sector(), (unsigned long)event.size());
+ return std::string(line);
+}
+
+std::string FormatBlockGetrq(const BlockGetrqFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_getrq: %d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockPlug(const BlockPlugFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_plug: comm=[%s]\\n", event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockRqAbort(const BlockRqAbortFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_rq_abort: %d,%d %s (%s) %llu + %u [%d]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ event.cmd().c_str(), (unsigned long long)event.sector(),
+ event.nr_sector(), event.errors());
+ return std::string(line);
+}
+
+std::string FormatBlockRqComplete(const BlockRqCompleteFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_rq_complete: %d,%d %s (%s) %llu + %u [%d]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ event.cmd().c_str(), (unsigned long long)event.sector(),
+ event.nr_sector(), event.errors());
+ return std::string(line);
+}
+
+std::string FormatBlockRqInsert(const BlockRqInsertFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_rq_insert: %d,%d %s %u (%s) %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ event.bytes(), event.cmd().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockRqRemap(const BlockRqRemapFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_rq_remap: %d,%d %s %llu + %u <- (%d,%d) %llu %u\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ (unsigned int)(event.old_dev() >> 20),
+ (unsigned int)(event.old_dev() & ((1U << 20) - 1)),
+ (unsigned long long)event.old_sector(), event.nr_bios());
+ return std::string(line);
+}
+
+std::string FormatBlockRqRequeue(const BlockRqRequeueFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_rq_requeue: %d,%d %s (%s) %llu + %u [%d\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ event.cmd().c_str(), (unsigned long long)event.sector(),
+ event.nr_sector(), event.errors());
+ return std::string(line);
+}
+
+std::string FormatBlockSleeprq(const BlockSleeprqFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_sleeprq: %d,%d %s %llu + %u [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(), event.nr_sector(),
+ event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockSplit(const BlockSplitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_split: %d,%d %s %llu / %llu [%s]\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)), event.rwbs().c_str(),
+ (unsigned long long)event.sector(),
+ (unsigned long long)event.new_sector(), event.comm().c_str());
+ return std::string(line);
+}
+
+std::string FormatBlockTouchBuffer(const BlockTouchBufferFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_touch_buffer: %d,%d sector=%llu size=%zu\\n",
+ (unsigned int)(event.dev() >> 20),
+ (unsigned int)(event.dev() & ((1U << 20) - 1)),
+ (unsigned long long)event.sector(), (unsigned long)event.size());
+ return std::string(line);
+}
+
+std::string FormatBlockUnplug(const BlockUnplugFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "block_unplug: [%s] %d\\n", event.comm().c_str(),
+ event.nr_rq());
+ return std::string(line);
+}
+
+std::string FormatExt4AllocDaBlocks(const Ext4AllocDaBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_alloc_da_blocks: dev %d,%d ino %lu data_blocks %u meta_blocks "
+ "%u \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.data_blocks(), event.meta_blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4AllocateBlocks(
+ const Ext4AllocateBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_allocate_blocks: dev %d,%d ino %lu flags %s len %u block %llu "
+ "lblk %u goal %llu lleft %u lright %u pleft %llu pright %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), GetExt4HintFlag(event.flags()),
+ event.len(), event.block(), event.logical(), event.goal(),
+ event.lleft(), event.lright(), event.pleft(), event.pright());
+ return std::string(line);
+}
+
+std::string FormatExt4AllocateInode(const Ext4AllocateInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_allocate_inode: dev %d,%d ino %lu dir %lu mode 0%o\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.dir(), event.mode());
+ return std::string(line);
+}
+
+std::string FormatExt4BeginOrderedTruncate(
+ const Ext4BeginOrderedTruncateFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_begin_ordered_truncate: dev %d,%d ino %lu new_size %lld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.new_size());
+ return std::string(line);
+}
+
+std::string FormatExt4CollapseRange(const Ext4CollapseRangeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_collapse_range: dev %d,%d ino %lu offset %lld len %lld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.offset(), event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4DaReleaseSpace(
+ const Ext4DaReleaseSpaceFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_da_release_space: dev %d,%d ino %lu mode 0%o i_blocks %llu "
+ "freed_blocks %d reserved_data_blocks %d reserved_meta_blocks %d "
+ "allocated_meta_blocks %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.i_blocks(),
+ event.freed_blocks(), event.reserved_data_blocks(),
+ event.reserved_meta_blocks(), event.allocated_meta_blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4DaReserveSpace(
+ const Ext4DaReserveSpaceFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_da_reserve_space:dev %d,%d ino %lu mode 0%o i_blocks %llu "
+ "reserved_data_blocks %d reserved_meta_blocks %d \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.i_blocks(),
+ event.reserved_data_blocks(), event.reserved_meta_blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4DaUpdateReserveSpace(
+ const Ext4DaUpdateReserveSpaceFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_da_update_reserve_space: dev %d,%d ino %lu mode 0%o i_blocks "
+ "%llu used_blocks %d reserved_data_blocks %d reserved_meta_blocks %d "
+ "allocated_meta_blocks %d quota_claim %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.i_blocks(),
+ event.used_blocks(), event.reserved_data_blocks(),
+ event.reserved_meta_blocks(), event.allocated_meta_blocks(),
+ event.quota_claim());
+ return std::string(line);
+}
+
+std::string FormatExt4DaWritePages(const Ext4DaWritePagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_da_write_pages: dev %d,%d ino %lu first_page %lu nr_to_write "
+ "%ld sync_mode %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.first_page(),
+ (long)event.nr_to_write(), event.sync_mode());
+ return std::string(line);
+}
+
+// TODO(hjd): Check flags
+std::string FormatExt4DaWritePagesExtent(
+ const Ext4DaWritePagesExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_da_write_pages_extent: dev %d,%d ino %lu lblk %llu len %u \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4DiscardBlocks(const Ext4DiscardBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_discard_blocks: dev %d,%d blk %llu count %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blk(),
+ event.count());
+ return std::string(line);
+}
+
+std::string FormatExt4DiscardPreallocations(
+ const Ext4DiscardPreallocationsFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_discard_preallocations: dev %d,%d ino %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino());
+ return std::string(line);
+}
+
+std::string FormatExt4DropInode(const Ext4DropInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_drop_inode: dev %d,%d ino %lu drop %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.drop());
+ return std::string(line);
+}
+
+// TODO(hjd): Check Es status flags
+std::string FormatExt4EsCacheExtent(const Ext4EsCacheExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_cache_extent: dev %d,%d ino %lu es [%u/%u) mapped %llu \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4EsFindDelayedExtentRangeEnter(
+ const Ext4EsFindDelayedExtentRangeEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_es_find_delayed_extent_range_enter: dev %d,%d ino %lu lblk %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk());
+ return std::string(line);
+}
+
+// TODO(hjd): Check Es status flags
+std::string FormatExt4EsFindDelayedExtentRangeExit(
+ const Ext4EsFindDelayedExtentRangeExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_find_delayed_extent_range_exit: dev %d,%d ino %lu es "
+ "[%u/%u) mapped %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ return std::string(line);
+}
+
+// TODO(hjd): Check Es status flags
+std::string FormatExt4EsInsertExtent(
+ const Ext4EsInsertExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_insert_extent: dev %d,%d ino %lu es [%u/%u) mapped %llu \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len(), event.pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4EsLookupExtentEnter(
+ const Ext4EsLookupExtentEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_es_lookup_extent_enter: dev %d,%d ino %lu lblk %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk());
+ return std::string(line);
+}
+
+// TODO(hjd): Check Es status flags
+std::string FormatExt4EsLookupExtentExit(
+ const Ext4EsLookupExtentExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_es_lookup_extent_exit: dev %d,%d ino %lu found %d [%u/%u) %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.found(), event.lblk(), event.len(),
+ event.found() ? event.pblk() : 0);
+ return std::string(line);
+}
+
+std::string FormatExt4EsRemoveExtent(
+ const Ext4EsRemoveExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_es_remove_extent: dev %d,%d ino %lu es [%lld/%lld)\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4EsShrink(const Ext4EsShrinkFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_shrink: dev %d,%d nr_shrunk %d, scan_time %llu nr_skipped "
+ "%d retried %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.nr_shrunk(),
+ event.scan_time(), event.nr_skipped(), event.retried());
+ return std::string(line);
+}
+
+std::string FormatExt4EsShrinkCount(const Ext4EsShrinkCountFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_es_shrink_count: dev %d,%d nr_to_scan %d cache_cnt %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ event.nr_to_scan(), event.cache_cnt());
+ return std::string(line);
+}
+
+std::string FormatExt4EsShrinkScanEnter(
+ const Ext4EsShrinkScanEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_shrink_scan_enter: dev %d,%d nr_to_scan %d cache_cnt %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ event.nr_to_scan(), event.cache_cnt());
+ return std::string(line);
+}
+
+std::string FormatExt4EsShrinkScanExit(
+ const Ext4EsShrinkScanExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_es_shrink_scan_exit: dev %d,%d nr_shrunk %d cache_cnt %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.nr_shrunk(),
+ event.cache_cnt());
+ return std::string(line);
+}
+
+std::string FormatExt4EvictInode(const Ext4EvictInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_evict_inode: dev %d,%d ino %lu nlink %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.nlink());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtConvertToInitializedEnter(
+ const Ext4ExtConvertToInitializedEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_convert_to_initialized_enter: dev %d,%d ino %lu m_lblk %u "
+ "m_len %u u_lblk %u u_len %u u_pblk %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.m_lblk(), event.m_len(),
+ event.u_lblk(), event.u_len(), event.u_pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtConvertToInitializedFastpath(
+ const Ext4ExtConvertToInitializedFastpathFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_convert_to_initialized_fastpath: dev %d,%d ino %lu m_lblk "
+ "%u m_len %u u_lblk %u u_len %u u_pblk %llu i_lblk %u i_len %u "
+ "i_pblk %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.m_lblk(), event.m_len(),
+ event.u_lblk(), event.u_len(), event.u_pblk(), event.i_lblk(),
+ event.i_len(), event.i_pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtHandleUnwrittenExtents(
+ const Ext4ExtHandleUnwrittenExtentsFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_handle_unwritten_extents: dev %d,%d ino %lu m_lblk %u "
+ "m_pblk %llu m_len %u flags %s allocated %d newblock %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.lblk(),
+ (unsigned long long)event.pblk(), event.len(),
+ GetExt4ExtFlag(event.flags()), (unsigned int)event.allocated(),
+ (unsigned long long)event.newblk());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtInCache(const Ext4ExtInCacheFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_ext_in_cache: dev %d,%d ino %lu lblk %u ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.lblk(), event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtLoadExtent(const Ext4ExtLoadExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_ext_load_extent: dev %d,%d ino %lu lblk %u pblk %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtMapBlocksEnter(
+ const Ext4ExtMapBlocksEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_ext_map_blocks_enter: dev %d,%d ino %lu lblk %u len %u flags %s\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len(),
+ GetExt4ExtFlag(event.flags()));
+ return std::string(line);
+}
+
+std::string FormatExt4ExtMapBlocksExit(
+ const Ext4ExtMapBlocksExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_map_blocks_exit: dev %d,%d ino %lu lblk %u pblk %llu len "
+ "%u flags %x ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.pblk(), event.len(),
+ event.flags(), event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtPutInCache(const Ext4ExtPutInCacheFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_ext_put_in_cache: dev %d,%d ino %lu lblk %u len %u start %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.lblk(), event.len(),
+ (unsigned long long)event.start());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtRemoveSpace(
+ const Ext4ExtRemoveSpaceFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_ext_remove_space: dev %d,%d ino %lu since %u end %u depth %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.start(),
+ (unsigned)event.end(), event.depth());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtRemoveSpaceDone(
+ const Ext4ExtRemoveSpaceDoneFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_remove_space_done: dev %d,%d ino %lu since %u end %u depth "
+ "%d partial %lld remaining_entries %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.start(),
+ (unsigned)event.end(), event.depth(), (long long)event.partial(),
+ (unsigned short)event.eh_entries());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtRmIdx(const Ext4ExtRmIdxFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_ext_rm_idx: dev %d,%d ino %lu index_pblk %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long long)event.pblk());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtRmLeaf(const Ext4ExtRmLeafFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_rm_leaf: dev %d,%d ino %lu start_lblk %u last_extent "
+ "[%u(%llu), %u]partial_cluster %lld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.start(),
+ (unsigned)event.ee_lblk(), (unsigned long long)event.ee_pblk(),
+ (unsigned short)event.ee_len(), (long long)event.partial());
+ return std::string(line);
+}
+
+std::string FormatExt4ExtShowExtent(const Ext4ExtShowExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ext_show_extent: dev %d,%d ino %lu lblk %u pblk %llu len %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.lblk(),
+ (unsigned long long)event.pblk(), (unsigned short)event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4FallocateEnter(
+ const Ext4FallocateEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_fallocate_enter: dev %d,%d ino %lu offset %lld len %lld mode %s\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.offset(), event.len(),
+ GetExt4ModeFlag(event.mode()));
+ return std::string(line);
+}
+
+std::string FormatExt4FallocateExit(const Ext4FallocateExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_fallocate_exit: dev %d,%d ino %lu pos %lld blocks %u ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pos(), event.blocks(), event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4FindDelallocRange(
+ const Ext4FindDelallocRangeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_find_delalloc_range: dev %d,%d ino %lu from %u to %u reverse "
+ "%d found %d (blk = %u)\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.from(),
+ (unsigned)event.to(), event.reverse(), event.found(),
+ (unsigned)event.found_blk());
+ return std::string(line);
+}
+
+std::string FormatExt4Forget(const Ext4ForgetFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_forget: dev %d,%d ino %lu mode 0%o is_metadata %d block %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.is_metadata(),
+ event.block());
+ return std::string(line);
+}
+
+std::string FormatExt4FreeBlocks(const Ext4FreeBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_free_blocks: dev %d,%d ino %lu mode 0%o block %llu count %lu "
+ "flags %s\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.block(),
+ (unsigned long)event.count(), GetExt4FreeBlocksFlag(event.flags()));
+ return std::string(line);
+}
+
+std::string FormatExt4FreeInode(const Ext4FreeInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_free_inode: dev %d,%d ino %lu mode 0%o uid %u gid %u blocks "
+ "%llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.mode(), event.uid(), event.gid(),
+ event.blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4GetImpliedClusterAllocExit(
+ const Ext4GetImpliedClusterAllocExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_get_implied_cluster_alloc_exit: dev %d,%d m_lblk %u m_pblk "
+ "%llu m_len %u m_flags %u ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.lblk(),
+ (unsigned long long)event.pblk(), event.len(), event.flags(),
+ event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4GetReservedClusterAlloc(
+ const Ext4GetReservedClusterAllocFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_get_reserved_cluster_alloc: dev %d,%d ino %lu lblk %u len %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.lblk(), event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4IndMapBlocksEnter(
+ const Ext4IndMapBlocksEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_ind_map_blocks_enter: dev %d,%d ino %lu lblk %u len %u flags %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.len(), event.flags());
+ return std::string(line);
+}
+
+std::string FormatExt4IndMapBlocksExit(
+ const Ext4IndMapBlocksExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_ind_map_blocks_exit: dev %d,%d ino %lu lblk %u pblk %llu len "
+ "%u flags %x ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.lblk(), event.pblk(), event.len(),
+ event.flags(), event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4InsertRange(const Ext4InsertRangeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_insert_range: dev %d,%d ino %lu offset %lld len %lld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.offset(), event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4Invalidatepage(
+ const Ext4InvalidatepageFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_invalidatepage: dev %d,%d ino %lu page_index %lu offset %u "
+ "length %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.index(),
+ event.offset(), event.length());
+ return std::string(line);
+}
+
+std::string FormatExt4JournalStart(const Ext4JournalStartFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "ext4_journal_start: dev %d,%d blocks, %d rsv_blocks, %d caller %pS\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blocks(),
+ event.rsv_blocks(), (void*)event.ip());
+ return std::string(line);
+}
+
+std::string FormatExt4JournalStartReserved(
+ const Ext4JournalStartReservedFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_journal_start_reserved: dev %d,%d blocks, %d caller %pS\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.blocks(),
+ (void*)event.ip());
+ return std::string(line);
+}
+
+std::string FormatExt4JournalledInvalidatepage(
+ const Ext4JournalledInvalidatepageFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_journalled_invalidatepage: dev %d,%d ino %lu page_index %lu "
+ "offset %u length %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.index(),
+ event.offset(), event.length());
+ return std::string(line);
+}
+
+std::string FormatExt4JournalledWriteEnd(
+ const Ext4JournalledWriteEndFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_journalled_write_end: dev %d,%d ino %lu pos %lld len %u copied "
+ "%u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pos(), event.len(), event.copied());
+ return std::string(line);
+}
+
+std::string FormatExt4LoadInode(const Ext4LoadInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_load_inode: dev %d,%d ino %ld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino());
+ return std::string(line);
+}
+
+std::string FormatExt4LoadInodeBitmap(
+ const Ext4LoadInodeBitmapFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_load_inode_bitmap: dev %d,%d group %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ return std::string(line);
+}
+
+std::string FormatExt4MarkInodeDirty(
+ const Ext4MarkInodeDirtyFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mark_inode_dirty: dev %d,%d ino %lu caller %pS\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (void*)event.ip());
+ return std::string(line);
+}
+
+std::string FormatExt4MbBitmapLoad(const Ext4MbBitmapLoadFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mb_bitmap_load: dev %d,%d group %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ return std::string(line);
+}
+
+std::string FormatExt4MbBuddyBitmapLoad(
+ const Ext4MbBuddyBitmapLoadFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mb_buddy_bitmap_load: dev %d,%d group %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ return std::string(line);
+}
+
+std::string FormatExt4MbDiscardPreallocations(
+ const Ext4MbDiscardPreallocationsFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mb_discard_preallocations: dev %d,%d needed %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.needed());
+ return std::string(line);
+}
+
+std::string FormatExt4MbNewGroupPa(const Ext4MbNewGroupPaFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_mb_new_group_pa: dev %d,%d ino %lu pstart %llu len %u lstart "
+ "%llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pa_pstart(), event.pa_len(),
+ event.pa_lstart());
+ return std::string(line);
+}
+
+std::string FormatExt4MbNewInodePa(const Ext4MbNewInodePaFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_mb_new_inode_pa: dev %d,%d ino %lu pstart %llu len %u lstart "
+ "%llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pa_pstart(), event.pa_len(),
+ event.pa_lstart());
+ return std::string(line);
+}
+
+std::string FormatExt4MbReleaseGroupPa(
+ const Ext4MbReleaseGroupPaFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mb_release_group_pa: dev %d,%d pstart %llu len %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.pa_pstart(),
+ event.pa_len());
+ return std::string(line);
+}
+
+std::string FormatExt4MbReleaseInodePa(
+ const Ext4MbReleaseInodePaFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_mb_release_inode_pa: dev %d,%d ino %lu block %llu count %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.block(), event.count());
+ return std::string(line);
+}
+
+std::string FormatExt4MballocAlloc(const Ext4MballocAllocFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_mballoc_alloc: dev %d,%d inode %lu orig %u/%d/%u@%u goal "
+ "%u/%d/%u@%u result %u/%d/%u@%u blks %u grps %u cr %u flags %s tail "
+ "%u broken %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.orig_group(), event.orig_start(),
+ event.orig_len(), event.orig_logical(), event.goal_group(),
+ event.goal_start(), event.goal_len(), event.goal_logical(),
+ event.result_group(), event.result_start(), event.result_len(),
+ event.result_logical(), event.found(), event.groups(), event.cr(),
+ GetExt4HintFlag(event.flags()), event.tail(),
+ event.buddy() ? 1 << event.buddy() : 0);
+ return std::string(line);
+}
+
+std::string FormatExt4MballocDiscard(
+ const Ext4MballocDiscardFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mballoc_discard: dev %d,%d inode %lu extent %u/%d/%d \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.result_group(),
+ event.result_start(), event.result_len());
+ return std::string(line);
+}
+
+std::string FormatExt4MballocFree(const Ext4MballocFreeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_mballoc_free: dev %d,%d inode %lu extent %u/%d/%d \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.result_group(),
+ event.result_start(), event.result_len());
+ return std::string(line);
+}
+
+std::string FormatExt4MballocPrealloc(
+ const Ext4MballocPreallocFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_mballoc_prealloc: dev %d,%d inode %lu orig %u/%d/%u@%u result "
+ "%u/%d/%u@%u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.orig_group(), event.orig_start(),
+ event.orig_len(), event.orig_logical(), event.result_group(),
+ event.result_start(), event.result_len(), event.result_logical());
+ return std::string(line);
+}
+
+std::string FormatExt4OtherInodeUpdateTime(
+ const Ext4OtherInodeUpdateTimeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_other_inode_update_time: dev %d,%d orig_ino %lu ino %lu mode "
+ "0%o uid %u gid %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.orig_ino(), (unsigned long)event.ino(),
+ event.mode(), event.uid(), event.gid());
+ return std::string(line);
+}
+
+std::string FormatExt4PunchHole(const Ext4PunchHoleFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_punch_hole: dev %d,%d ino %lu offset %lld len %lld mode %s\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.offset(), event.len(),
+ GetExt4ModeFlag(event.mode()));
+ return std::string(line);
+}
+
+std::string FormatExt4ReadBlockBitmapLoad(
+ const Ext4ReadBlockBitmapLoadFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_read_block_bitmap_load: dev %d,%d group %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.group());
+ return std::string(line);
+}
+
+std::string FormatExt4Readpage(const Ext4ReadpageFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_readpage: dev %d,%d ino %lu page_index %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.index());
+ return std::string(line);
+}
+
+std::string FormatExt4Releasepage(const Ext4ReleasepageFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_releasepage: dev %d,%d ino %lu page_index %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.index());
+ return std::string(line);
+}
+
+std::string FormatExt4RemoveBlocks(const Ext4RemoveBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_remove_blocks: dev %d,%d ino %lu extent [%u(%llu), %u]from %u "
+ "to %u partial_cluster %lld\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned)event.ee_lblk(),
+ (unsigned long long)event.ee_pblk(), (unsigned short)event.ee_len(),
+ (unsigned)event.from(), (unsigned)event.to(),
+ (long long)event.partial());
+ return std::string(line);
+}
+
+std::string FormatExt4RequestBlocks(const Ext4RequestBlocksFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_request_blocks: dev %d,%d ino %lu flags %s len %u lblk %u goal "
+ "%llu lleft %u lright %u pleft %llu pright %llu \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), GetExt4HintFlag(event.flags()),
+ event.len(), event.logical(), event.goal(), event.lleft(),
+ event.lright(), event.pleft(), event.pright());
+ return std::string(line);
+}
+
+std::string FormatExt4RequestInode(const Ext4RequestInodeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_request_inode: dev %d,%d dir %lu mode 0%o\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.dir(), event.mode());
+ return std::string(line);
+}
+
+std::string FormatExt4SyncFs(const Ext4SyncFsFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_sync_fs: dev %d,%d wait %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))), event.wait());
+ return std::string(line);
+}
+
+std::string FormatExt4TrimAllFree(const Ext4TrimAllFreeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_trim_all_free: dev %d,%d group %u, start %d, len %d\\n",
+ event.dev_major(), event.dev_minor(), event.group(), event.start(),
+ event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4TrimExtent(const Ext4TrimExtentFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_trim_extent: dev %d,%d group %u, start %d, len %d\\n",
+ event.dev_major(), event.dev_minor(), event.group(), event.start(),
+ event.len());
+ return std::string(line);
+}
+
+std::string FormatExt4TruncateEnter(const Ext4TruncateEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_truncate_enter: dev %d,%d ino %lu blocks %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4TruncateExit(const Ext4TruncateExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_truncate_exit: dev %d,%d ino %lu blocks %llu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.blocks());
+ return std::string(line);
+}
+
+std::string FormatExt4UnlinkEnter(const Ext4UnlinkEnterFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_unlink_enter: dev %d,%d ino %lu size %lld parent %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.size(),
+ (unsigned long)event.parent());
+ return std::string(line);
+}
+
+std::string FormatExt4UnlinkExit(const Ext4UnlinkExitFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_unlink_exit: dev %d,%d ino %lu ret %d\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.ret());
+ return std::string(line);
+}
+
+std::string FormatExt4WriteBegin(const Ext4WriteBeginFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_write_begin: dev %d,%d ino %lu pos %lld len %u flags %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pos(), event.len(), event.flags());
+ return std::string(line);
+}
+
+std::string FormatExt4WriteEnd(const Ext4WriteEndFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_write_end: %d,%d ino %lu pos %lld len %u copied %u\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.pos(), event.len(), event.copied());
+ return std::string(line);
+}
+
+std::string FormatExt4Writepage(const Ext4WritepageFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "ext4_writepage: dev %d,%d ino %lu page_index %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (unsigned long)event.index());
+ return std::string(line);
+}
+
+std::string FormatExt4Writepages(const Ext4WritepagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_writepages: dev %d,%d ino %lu nr_to_write %ld pages_skipped "
+ "%ld range_start %lld range_end %lld sync_mode %d for_kupdate %d "
+ "range_cyclic %d writeback_index %lu\\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), (long)event.nr_to_write(),
+ (long)event.pages_skipped(), event.range_start(), event.range_end(),
+ event.sync_mode(), event.for_kupdate(), event.range_cyclic(),
+ (unsigned long)event.writeback_index());
+ return std::string(line);
+}
+
+std::string FormatExt4WritepagesResult(
+ const Ext4WritepagesResultFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_writepages_result: dev %d,%d ino %lu ret %d pages_written %d "
+ "pages_skipped %ld sync_mode %d writeback_index %lu \\n",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.ret(), event.pages_written(),
+ (long)event.pages_skipped(), event.sync_mode(),
+ (unsigned long)event.writeback_index());
+ return std::string(line);
+}
+
+std::string FormatExt4ZeroRange(const Ext4ZeroRangeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "ext4_zero_range: dev %d,%d ino %lu offset %lld len %lld mode %s\\n ",
+ ((unsigned int)((event.dev()) >> 20)),
+ ((unsigned int)((event.dev()) & ((1U << 20) - 1))),
+ (unsigned long)event.ino(), event.offset(), event.len(),
+ GetExt4ModeFlag(event.mode()));
+ return std::string(line);
+}
+
// TODO(taylori): Confirm correct format for this.
std::string FormatProcess(const Process& process) {
char line[2048];
@@ -890,165 +2272,90 @@
const FtraceEventBundle& bundle = packet.ftrace_events();
for (const FtraceEvent& event : bundle.event()) {
std::string line;
- if (event.has_sched_switch()) {
- const auto& inner = event.sched_switch();
- line = FormatSchedSwitch(inner);
- } else if (event.has_sched_wakeup()) {
- const auto& inner = event.sched_wakeup();
- line = FormatSchedWakeup(inner);
- } else if (event.has_sched_blocked_reason()) {
- const auto& inner = event.sched_blocked_reason();
- line = FormatSchedBlockedReason(inner);
- } else if (event.has_tracing_mark_write()) {
- const auto& inner = event.tracing_mark_write();
- line = FormatTracingMarkWrite(inner);
+ if (event.has_binder_lock()) {
+ const auto& inner = event.binder_lock();
+ line = FormatBinderLock(inner);
} else if (event.has_binder_locked()) {
const auto& inner = event.binder_locked();
line = FormatBinderLocked(inner);
- } else if (event.has_binder_unlock()) {
- const auto& inner = event.binder_unlock();
- line = FormatBinderUnlock(inner);
- } else if (event.has_binder_lock()) {
- const auto& inner = event.binder_lock();
- line = FormatBinderLock(inner);
} else if (event.has_binder_transaction()) {
const auto& inner = event.binder_transaction();
line = FormatBinderTransaction(inner);
} else if (event.has_binder_transaction_received()) {
const auto& inner = event.binder_transaction_received();
line = FormatBinderTransactionReceived(inner);
- } else if (event.has_ext4_sync_file_enter()) {
- const auto& inner = event.ext4_sync_file_enter();
- line = FormatExt4SyncFileEnter(inner);
- } else if (event.has_ext4_sync_file_exit()) {
- const auto& inner = event.ext4_sync_file_exit();
- line = FormatExt4SyncFileExit(inner);
- } else if (event.has_ext4_da_write_begin()) {
- const auto& inner = event.ext4_da_write_begin();
- line = FormatExt4DaWriteBegin(inner);
- } else if (event.has_ext4_da_write_end()) {
- const auto& inner = event.ext4_da_write_end();
- line = FormatExt4DaWriteEnd(inner);
+ } else if (event.has_binder_unlock()) {
+ const auto& inner = event.binder_unlock();
+ line = FormatBinderUnlock(inner);
+ } else if (event.has_block_bio_backmerge()) {
+ const auto& inner = event.block_bio_backmerge();
+ line = FormatBlockBioBackmerge(inner);
+ } else if (event.has_block_bio_bounce()) {
+ const auto& inner = event.block_bio_bounce();
+ line = FormatBlockBioBounce(inner);
+ } else if (event.has_block_bio_complete()) {
+ const auto& inner = event.block_bio_complete();
+ line = FormatBlockBioComplete(inner);
+ } else if (event.has_block_bio_frontmerge()) {
+ const auto& inner = event.block_bio_frontmerge();
+ line = FormatBlockBioFrontmerge(inner);
+ } else if (event.has_block_bio_queue()) {
+ const auto& inner = event.block_bio_queue();
+ line = FormatBlockBioQueue(inner);
+ } else if (event.has_block_bio_remap()) {
+ const auto& inner = event.block_bio_remap();
+ line = FormatBlockBioRemap(inner);
+ } else if (event.has_block_dirty_buffer()) {
+ const auto& inner = event.block_dirty_buffer();
+ line = FormatBlockDirtyBuffer(inner);
+ } else if (event.has_block_getrq()) {
+ const auto& inner = event.block_getrq();
+ line = FormatBlockGetrq(inner);
+ } else if (event.has_block_plug()) {
+ const auto& inner = event.block_plug();
+ line = FormatBlockPlug(inner);
+ } else if (event.has_block_rq_abort()) {
+ const auto& inner = event.block_rq_abort();
+ line = FormatBlockRqAbort(inner);
+ } else if (event.has_block_rq_complete()) {
+ const auto& inner = event.block_rq_complete();
+ line = FormatBlockRqComplete(inner);
+ } else if (event.has_block_rq_insert()) {
+ const auto& inner = event.block_rq_insert();
+ line = FormatBlockRqInsert(inner);
} else if (event.has_block_rq_issue()) {
const auto& inner = event.block_rq_issue();
line = FormatBlockRqIssue(inner);
- } else if (event.has_i2c_read()) {
- const auto& inner = event.i2c_read();
- line = FormatI2cRead(inner);
- } else if (event.has_i2c_result()) {
- const auto& inner = event.i2c_result();
- line = FormatI2cResult(inner);
- } else if (event.has_irq_handler_entry()) {
- const auto& inner = event.irq_handler_entry();
- line = FormatIrqHandlerEntry(inner);
- } else if (event.has_irq_handler_exit()) {
- const auto& inner = event.irq_handler_exit();
- line = FormatIrqHandlerExit(inner);
- } else if (event.has_mm_vmscan_kswapd_wake()) {
- const auto& inner = event.mm_vmscan_kswapd_wake();
- line = FormatMmVmscanKswapdWake(inner);
- } else if (event.has_mm_vmscan_kswapd_sleep()) {
- const auto& inner = event.mm_vmscan_kswapd_sleep();
- line = FormatMmVmscanKswapdSleep(inner);
- } else if (event.has_regulator_enable()) {
- const auto& inner = event.regulator_enable();
- line = FormatRegulatorEnable(inner);
- } else if (event.has_regulator_enable_delay()) {
- const auto& inner = event.regulator_enable_delay();
- line = FormatRegulatorEnableDelay(inner);
- } else if (event.has_regulator_enable_complete()) {
- const auto& inner = event.regulator_enable_complete();
- line = FormatRegulatorEnableComplete(inner);
- } else if (event.has_regulator_disable()) {
- const auto& inner = event.regulator_disable();
- line = FormatRegulatorDisable(inner);
- } else if (event.has_regulator_disable_complete()) {
- const auto& inner = event.regulator_disable_complete();
- line = FormatRegulatorDisableComplete(inner);
- } else if (event.has_regulator_set_voltage()) {
- const auto& inner = event.regulator_set_voltage();
- line = FormatRegulatorSetVoltage(inner);
- } else if (event.has_regulator_set_voltage_complete()) {
- const auto& inner = event.regulator_set_voltage_complete();
- line = FormatRegulatorSetVoltageComplete(inner);
- } else if (event.has_sched_cpu_hotplug()) {
- const auto& inner = event.sched_cpu_hotplug();
- line = FormatSchedCpuHotplug(inner);
- } else if (event.has_sync_timeline()) {
- const auto& inner = event.sync_timeline();
- line = FormatSyncTimeline(inner);
- } else if (event.has_sync_wait()) {
- const auto& inner = event.sync_wait();
- line = FormatSyncWait(inner);
- } else if (event.has_sync_pt()) {
- const auto& inner = event.sync_pt();
- line = FormatSyncPt(inner);
- } else if (event.has_print()) {
- const auto& inner = event.print();
- line = FormatPrint(inner);
- } else if (event.has_cpu_frequency()) {
- const auto& inner = event.cpu_frequency();
- line = FormatCpuFrequency(inner);
- } else if (event.has_cpu_frequency_limits()) {
- const auto& inner = event.cpu_frequency_limits();
- line = FormatCpuFrequencyLimits(inner);
- } else if (event.has_cpu_idle()) {
- const auto& inner = event.cpu_idle();
- line = FormatCpuIdle(inner);
- } else if (event.has_clock_set_rate()) {
- const auto& inner = event.clock_set_rate();
- line = FormatClockSetRate(inner);
- } else if (event.has_clock_enable()) {
- const auto& inner = event.clock_enable();
- line = FormatClockEnable(inner);
- } else if (event.has_clock_disable()) {
- const auto& inner = event.clock_disable();
- line = FormatClockDisable(inner);
- } else if (event.has_i2c_write()) {
- const auto& inner = event.i2c_write();
- line = FormatI2cWrite(inner);
- } else if (event.has_i2c_reply()) {
- const auto& inner = event.i2c_reply();
- line = FormatI2cReply(inner);
- } else if (event.has_softirq_raise()) {
- const auto& inner = event.softirq_raise();
- line = FormatSoftirqRaise(inner);
- } else if (event.has_softirq_entry()) {
- const auto& inner = event.softirq_entry();
- line = FormatSoftirqEntry(inner);
- } else if (event.has_softirq_exit()) {
- const auto& inner = event.softirq_exit();
- line = FormatSoftirqExit(inner);
- } else if (event.has_mm_vmscan_direct_reclaim_begin()) {
- const auto& inner = event.mm_vmscan_direct_reclaim_begin();
- line = FormatMmVmscanDirectReclaimBegin(inner);
- } else if (event.has_mm_vmscan_direct_reclaim_end()) {
- const auto& inner = event.mm_vmscan_direct_reclaim_end();
- line = FormatMmVmscanDirectReclaimEnd(inner);
- } else if (event.has_lowmemory_kill()) {
- const auto& inner = event.lowmemory_kill();
- line = FormatLowmemoryKill(inner);
- } else if (event.has_workqueue_execute_start()) {
- const auto& inner = event.workqueue_execute_start();
- line = FormatWorkqueueExecuteStart(inner);
- } else if (event.has_workqueue_execute_end()) {
- const auto& inner = event.workqueue_execute_end();
- line = FormatWorkqueueExecuteEnd(inner);
- } else if (event.has_workqueue_queue_work()) {
- const auto& inner = event.workqueue_queue_work();
- line = FormatWorkqueueQueueWork(inner);
- } else if (event.has_workqueue_activate_work()) {
- const auto& inner = event.workqueue_activate_work();
- line = FormatWorkqueueActivateWork(inner);
+ } else if (event.has_block_rq_remap()) {
+ const auto& inner = event.block_rq_remap();
+ line = FormatBlockRqRemap(inner);
+ } else if (event.has_block_rq_requeue()) {
+ const auto& inner = event.block_rq_requeue();
+ line = FormatBlockRqRequeue(inner);
+ } else if (event.has_block_sleeprq()) {
+ const auto& inner = event.block_sleeprq();
+ line = FormatBlockSleeprq(inner);
+ } else if (event.has_block_split()) {
+ const auto& inner = event.block_split();
+ line = FormatBlockSplit(inner);
+ } else if (event.has_block_touch_buffer()) {
+ const auto& inner = event.block_touch_buffer();
+ line = FormatBlockTouchBuffer(inner);
+ } else if (event.has_block_unplug()) {
+ const auto& inner = event.block_unplug();
+ line = FormatBlockUnplug(inner);
} else if (event.has_mm_compaction_begin()) {
const auto& inner = event.mm_compaction_begin();
line = FormatMmCompactionBegin(inner);
- } else if (event.has_mm_compaction_deferred()) {
- const auto& inner = event.mm_compaction_deferred();
- line = FormatMmCompactionDeferred(inner);
+ } else if (event.has_mm_compaction_defer_compaction()) {
+ const auto& inner = event.mm_compaction_defer_compaction();
+ line = FormatMmCompactionDeferCompaction(inner);
} else if (event.has_mm_compaction_defer_reset()) {
const auto& inner = event.mm_compaction_defer_reset();
line = FormatMmCompactionDeferReset(inner);
+ } else if (event.has_mm_compaction_deferred()) {
+ const auto& inner = event.mm_compaction_deferred();
+ line = FormatMmCompactionDeferred(inner);
} else if (event.has_mm_compaction_end()) {
const auto& inner = event.mm_compaction_end();
line = FormatMmCompactionEnd(inner);
@@ -1079,12 +2386,411 @@
} else if (event.has_mm_compaction_wakeup_kcompactd()) {
const auto& inner = event.mm_compaction_wakeup_kcompactd();
line = FormatMmCompactionWakeupKcompactd(inner);
+ } else if (event.has_ext4_alloc_da_blocks()) {
+ const auto& inner = event.ext4_alloc_da_blocks();
+ line = FormatExt4AllocDaBlocks(inner);
+ } else if (event.has_ext4_allocate_blocks()) {
+ const auto& inner = event.ext4_allocate_blocks();
+ line = FormatExt4AllocateBlocks(inner);
+ } else if (event.has_ext4_allocate_inode()) {
+ const auto& inner = event.ext4_allocate_inode();
+ line = FormatExt4AllocateInode(inner);
+ } else if (event.has_ext4_begin_ordered_truncate()) {
+ const auto& inner = event.ext4_begin_ordered_truncate();
+ line = FormatExt4BeginOrderedTruncate(inner);
+ } else if (event.has_ext4_collapse_range()) {
+ const auto& inner = event.ext4_collapse_range();
+ line = FormatExt4CollapseRange(inner);
+ } else if (event.has_ext4_da_release_space()) {
+ const auto& inner = event.ext4_da_release_space();
+ line = FormatExt4DaReleaseSpace(inner);
+ } else if (event.has_ext4_da_reserve_space()) {
+ const auto& inner = event.ext4_da_reserve_space();
+ line = FormatExt4DaReserveSpace(inner);
+ } else if (event.has_ext4_da_update_reserve_space()) {
+ const auto& inner = event.ext4_da_update_reserve_space();
+ line = FormatExt4DaUpdateReserveSpace(inner);
+ } else if (event.has_ext4_da_write_begin()) {
+ const auto& inner = event.ext4_da_write_begin();
+ line = FormatExt4DaWriteBegin(inner);
+ } else if (event.has_ext4_da_write_end()) {
+ const auto& inner = event.ext4_da_write_end();
+ line = FormatExt4DaWriteEnd(inner);
+ } else if (event.has_ext4_da_write_pages()) {
+ const auto& inner = event.ext4_da_write_pages();
+ line = FormatExt4DaWritePages(inner);
+ } else if (event.has_ext4_da_write_pages_extent()) {
+ const auto& inner = event.ext4_da_write_pages_extent();
+ line = FormatExt4DaWritePagesExtent(inner);
+ } else if (event.has_ext4_discard_blocks()) {
+ const auto& inner = event.ext4_discard_blocks();
+ line = FormatExt4DiscardBlocks(inner);
+ } else if (event.has_ext4_discard_preallocations()) {
+ const auto& inner = event.ext4_discard_preallocations();
+ line = FormatExt4DiscardPreallocations(inner);
+ } else if (event.has_ext4_drop_inode()) {
+ const auto& inner = event.ext4_drop_inode();
+ line = FormatExt4DropInode(inner);
+ } else if (event.has_ext4_es_cache_extent()) {
+ const auto& inner = event.ext4_es_cache_extent();
+ line = FormatExt4EsCacheExtent(inner);
+ } else if (event.has_ext4_es_find_delayed_extent_range_enter()) {
+ const auto& inner = event.ext4_es_find_delayed_extent_range_enter();
+ line = FormatExt4EsFindDelayedExtentRangeEnter(inner);
+ } else if (event.has_ext4_es_find_delayed_extent_range_exit()) {
+ const auto& inner = event.ext4_es_find_delayed_extent_range_exit();
+ line = FormatExt4EsFindDelayedExtentRangeExit(inner);
+ } else if (event.has_ext4_es_insert_extent()) {
+ const auto& inner = event.ext4_es_insert_extent();
+ line = FormatExt4EsInsertExtent(inner);
+ } else if (event.has_ext4_es_lookup_extent_enter()) {
+ const auto& inner = event.ext4_es_lookup_extent_enter();
+ line = FormatExt4EsLookupExtentEnter(inner);
+ } else if (event.has_ext4_es_lookup_extent_exit()) {
+ const auto& inner = event.ext4_es_lookup_extent_exit();
+ line = FormatExt4EsLookupExtentExit(inner);
+ } else if (event.has_ext4_es_remove_extent()) {
+ const auto& inner = event.ext4_es_remove_extent();
+ line = FormatExt4EsRemoveExtent(inner);
+ } else if (event.has_ext4_es_shrink()) {
+ const auto& inner = event.ext4_es_shrink();
+ line = FormatExt4EsShrink(inner);
+ } else if (event.has_ext4_es_shrink_count()) {
+ const auto& inner = event.ext4_es_shrink_count();
+ line = FormatExt4EsShrinkCount(inner);
+ } else if (event.has_ext4_es_shrink_scan_enter()) {
+ const auto& inner = event.ext4_es_shrink_scan_enter();
+ line = FormatExt4EsShrinkScanEnter(inner);
+ } else if (event.has_ext4_es_shrink_scan_exit()) {
+ const auto& inner = event.ext4_es_shrink_scan_exit();
+ line = FormatExt4EsShrinkScanExit(inner);
+ } else if (event.has_ext4_evict_inode()) {
+ const auto& inner = event.ext4_evict_inode();
+ line = FormatExt4EvictInode(inner);
+ } else if (event.has_ext4_ext_convert_to_initialized_enter()) {
+ const auto& inner = event.ext4_ext_convert_to_initialized_enter();
+ line = FormatExt4ExtConvertToInitializedEnter(inner);
+ } else if (event.has_ext4_ext_convert_to_initialized_fastpath()) {
+ const auto& inner = event.ext4_ext_convert_to_initialized_fastpath();
+ line = FormatExt4ExtConvertToInitializedFastpath(inner);
+ } else if (event.has_ext4_ext_handle_unwritten_extents()) {
+ const auto& inner = event.ext4_ext_handle_unwritten_extents();
+ line = FormatExt4ExtHandleUnwrittenExtents(inner);
+ } else if (event.has_ext4_ext_in_cache()) {
+ const auto& inner = event.ext4_ext_in_cache();
+ line = FormatExt4ExtInCache(inner);
+ } else if (event.has_ext4_ext_load_extent()) {
+ const auto& inner = event.ext4_ext_load_extent();
+ line = FormatExt4ExtLoadExtent(inner);
+ } else if (event.has_ext4_ext_map_blocks_enter()) {
+ const auto& inner = event.ext4_ext_map_blocks_enter();
+ line = FormatExt4ExtMapBlocksEnter(inner);
+ } else if (event.has_ext4_ext_map_blocks_exit()) {
+ const auto& inner = event.ext4_ext_map_blocks_exit();
+ line = FormatExt4ExtMapBlocksExit(inner);
+ } else if (event.has_ext4_ext_put_in_cache()) {
+ const auto& inner = event.ext4_ext_put_in_cache();
+ line = FormatExt4ExtPutInCache(inner);
+ } else if (event.has_ext4_ext_remove_space()) {
+ const auto& inner = event.ext4_ext_remove_space();
+ line = FormatExt4ExtRemoveSpace(inner);
+ } else if (event.has_ext4_ext_remove_space_done()) {
+ const auto& inner = event.ext4_ext_remove_space_done();
+ line = FormatExt4ExtRemoveSpaceDone(inner);
+ } else if (event.has_ext4_ext_rm_idx()) {
+ const auto& inner = event.ext4_ext_rm_idx();
+ line = FormatExt4ExtRmIdx(inner);
+ } else if (event.has_ext4_ext_rm_leaf()) {
+ const auto& inner = event.ext4_ext_rm_leaf();
+ line = FormatExt4ExtRmLeaf(inner);
+ } else if (event.has_ext4_ext_show_extent()) {
+ const auto& inner = event.ext4_ext_show_extent();
+ line = FormatExt4ExtShowExtent(inner);
+ } else if (event.has_ext4_fallocate_enter()) {
+ const auto& inner = event.ext4_fallocate_enter();
+ line = FormatExt4FallocateEnter(inner);
+ } else if (event.has_ext4_fallocate_exit()) {
+ const auto& inner = event.ext4_fallocate_exit();
+ line = FormatExt4FallocateExit(inner);
+ } else if (event.has_ext4_find_delalloc_range()) {
+ const auto& inner = event.ext4_find_delalloc_range();
+ line = FormatExt4FindDelallocRange(inner);
+ } else if (event.has_ext4_forget()) {
+ const auto& inner = event.ext4_forget();
+ line = FormatExt4Forget(inner);
+ } else if (event.has_ext4_free_blocks()) {
+ const auto& inner = event.ext4_free_blocks();
+ line = FormatExt4FreeBlocks(inner);
+ } else if (event.has_ext4_free_inode()) {
+ const auto& inner = event.ext4_free_inode();
+ line = FormatExt4FreeInode(inner);
+ } else if (event.has_ext4_get_implied_cluster_alloc_exit()) {
+ const auto& inner = event.ext4_get_implied_cluster_alloc_exit();
+ line = FormatExt4GetImpliedClusterAllocExit(inner);
+ } else if (event.has_ext4_get_reserved_cluster_alloc()) {
+ const auto& inner = event.ext4_get_reserved_cluster_alloc();
+ line = FormatExt4GetReservedClusterAlloc(inner);
+ } else if (event.has_ext4_ind_map_blocks_enter()) {
+ const auto& inner = event.ext4_ind_map_blocks_enter();
+ line = FormatExt4IndMapBlocksEnter(inner);
+ } else if (event.has_ext4_ind_map_blocks_exit()) {
+ const auto& inner = event.ext4_ind_map_blocks_exit();
+ line = FormatExt4IndMapBlocksExit(inner);
+ } else if (event.has_ext4_insert_range()) {
+ const auto& inner = event.ext4_insert_range();
+ line = FormatExt4InsertRange(inner);
+ } else if (event.has_ext4_invalidatepage()) {
+ const auto& inner = event.ext4_invalidatepage();
+ line = FormatExt4Invalidatepage(inner);
+ } else if (event.has_ext4_journal_start()) {
+ const auto& inner = event.ext4_journal_start();
+ line = FormatExt4JournalStart(inner);
+ } else if (event.has_ext4_journal_start_reserved()) {
+ const auto& inner = event.ext4_journal_start_reserved();
+ line = FormatExt4JournalStartReserved(inner);
+ } else if (event.has_ext4_journalled_invalidatepage()) {
+ const auto& inner = event.ext4_journalled_invalidatepage();
+ line = FormatExt4JournalledInvalidatepage(inner);
+ } else if (event.has_ext4_journalled_write_end()) {
+ const auto& inner = event.ext4_journalled_write_end();
+ line = FormatExt4JournalledWriteEnd(inner);
+ } else if (event.has_ext4_load_inode()) {
+ const auto& inner = event.ext4_load_inode();
+ line = FormatExt4LoadInode(inner);
+ } else if (event.has_ext4_load_inode_bitmap()) {
+ const auto& inner = event.ext4_load_inode_bitmap();
+ line = FormatExt4LoadInodeBitmap(inner);
+ } else if (event.has_ext4_mark_inode_dirty()) {
+ const auto& inner = event.ext4_mark_inode_dirty();
+ line = FormatExt4MarkInodeDirty(inner);
+ } else if (event.has_ext4_mb_bitmap_load()) {
+ const auto& inner = event.ext4_mb_bitmap_load();
+ line = FormatExt4MbBitmapLoad(inner);
+ } else if (event.has_ext4_mb_buddy_bitmap_load()) {
+ const auto& inner = event.ext4_mb_buddy_bitmap_load();
+ line = FormatExt4MbBuddyBitmapLoad(inner);
+ } else if (event.has_ext4_mb_discard_preallocations()) {
+ const auto& inner = event.ext4_mb_discard_preallocations();
+ line = FormatExt4MbDiscardPreallocations(inner);
+ } else if (event.has_ext4_mb_new_group_pa()) {
+ const auto& inner = event.ext4_mb_new_group_pa();
+ line = FormatExt4MbNewGroupPa(inner);
+ } else if (event.has_ext4_mb_new_inode_pa()) {
+ const auto& inner = event.ext4_mb_new_inode_pa();
+ line = FormatExt4MbNewInodePa(inner);
+ } else if (event.has_ext4_mb_release_group_pa()) {
+ const auto& inner = event.ext4_mb_release_group_pa();
+ line = FormatExt4MbReleaseGroupPa(inner);
+ } else if (event.has_ext4_mb_release_inode_pa()) {
+ const auto& inner = event.ext4_mb_release_inode_pa();
+ line = FormatExt4MbReleaseInodePa(inner);
+ } else if (event.has_ext4_mballoc_alloc()) {
+ const auto& inner = event.ext4_mballoc_alloc();
+ line = FormatExt4MballocAlloc(inner);
+ } else if (event.has_ext4_mballoc_discard()) {
+ const auto& inner = event.ext4_mballoc_discard();
+ line = FormatExt4MballocDiscard(inner);
+ } else if (event.has_ext4_mballoc_free()) {
+ const auto& inner = event.ext4_mballoc_free();
+ line = FormatExt4MballocFree(inner);
+ } else if (event.has_ext4_mballoc_prealloc()) {
+ const auto& inner = event.ext4_mballoc_prealloc();
+ line = FormatExt4MballocPrealloc(inner);
+ } else if (event.has_ext4_other_inode_update_time()) {
+ const auto& inner = event.ext4_other_inode_update_time();
+ line = FormatExt4OtherInodeUpdateTime(inner);
+ } else if (event.has_ext4_punch_hole()) {
+ const auto& inner = event.ext4_punch_hole();
+ line = FormatExt4PunchHole(inner);
+ } else if (event.has_ext4_read_block_bitmap_load()) {
+ const auto& inner = event.ext4_read_block_bitmap_load();
+ line = FormatExt4ReadBlockBitmapLoad(inner);
+ } else if (event.has_ext4_readpage()) {
+ const auto& inner = event.ext4_readpage();
+ line = FormatExt4Readpage(inner);
+ } else if (event.has_ext4_releasepage()) {
+ const auto& inner = event.ext4_releasepage();
+ line = FormatExt4Releasepage(inner);
+ } else if (event.has_ext4_remove_blocks()) {
+ const auto& inner = event.ext4_remove_blocks();
+ line = FormatExt4RemoveBlocks(inner);
+ } else if (event.has_ext4_request_blocks()) {
+ const auto& inner = event.ext4_request_blocks();
+ line = FormatExt4RequestBlocks(inner);
+ } else if (event.has_ext4_request_inode()) {
+ const auto& inner = event.ext4_request_inode();
+ line = FormatExt4RequestInode(inner);
+ } else if (event.has_ext4_sync_file_enter()) {
+ const auto& inner = event.ext4_sync_file_enter();
+ line = FormatExt4SyncFileEnter(inner);
+ } else if (event.has_ext4_sync_file_exit()) {
+ const auto& inner = event.ext4_sync_file_exit();
+ line = FormatExt4SyncFileExit(inner);
+ } else if (event.has_ext4_sync_fs()) {
+ const auto& inner = event.ext4_sync_fs();
+ line = FormatExt4SyncFs(inner);
+ } else if (event.has_ext4_trim_all_free()) {
+ const auto& inner = event.ext4_trim_all_free();
+ line = FormatExt4TrimAllFree(inner);
+ } else if (event.has_ext4_trim_extent()) {
+ const auto& inner = event.ext4_trim_extent();
+ line = FormatExt4TrimExtent(inner);
+ } else if (event.has_ext4_truncate_enter()) {
+ const auto& inner = event.ext4_truncate_enter();
+ line = FormatExt4TruncateEnter(inner);
+ } else if (event.has_ext4_truncate_exit()) {
+ const auto& inner = event.ext4_truncate_exit();
+ line = FormatExt4TruncateExit(inner);
+ } else if (event.has_ext4_unlink_enter()) {
+ const auto& inner = event.ext4_unlink_enter();
+ line = FormatExt4UnlinkEnter(inner);
+ } else if (event.has_ext4_unlink_exit()) {
+ const auto& inner = event.ext4_unlink_exit();
+ line = FormatExt4UnlinkExit(inner);
+ } else if (event.has_ext4_write_begin()) {
+ const auto& inner = event.ext4_write_begin();
+ line = FormatExt4WriteBegin(inner);
+ } else if (event.has_ext4_write_end()) {
+ const auto& inner = event.ext4_write_end();
+ line = FormatExt4WriteEnd(inner);
+ } else if (event.has_ext4_writepage()) {
+ const auto& inner = event.ext4_writepage();
+ line = FormatExt4Writepage(inner);
+ } else if (event.has_ext4_writepages()) {
+ const auto& inner = event.ext4_writepages();
+ line = FormatExt4Writepages(inner);
+ } else if (event.has_ext4_writepages_result()) {
+ const auto& inner = event.ext4_writepages_result();
+ line = FormatExt4WritepagesResult(inner);
+ } else if (event.has_ext4_zero_range()) {
+ const auto& inner = event.ext4_zero_range();
+ line = FormatExt4ZeroRange(inner);
+ } else if (event.has_print()) {
+ const auto& inner = event.print();
+ line = FormatPrint(inner);
+ } else if (event.has_i2c_read()) {
+ const auto& inner = event.i2c_read();
+ line = FormatI2cRead(inner);
+ } else if (event.has_i2c_reply()) {
+ const auto& inner = event.i2c_reply();
+ line = FormatI2cReply(inner);
+ } else if (event.has_i2c_result()) {
+ const auto& inner = event.i2c_result();
+ line = FormatI2cResult(inner);
+ } else if (event.has_i2c_write()) {
+ const auto& inner = event.i2c_write();
+ line = FormatI2cWrite(inner);
+ } else if (event.has_irq_handler_entry()) {
+ const auto& inner = event.irq_handler_entry();
+ line = FormatIrqHandlerEntry(inner);
+ } else if (event.has_irq_handler_exit()) {
+ const auto& inner = event.irq_handler_exit();
+ line = FormatIrqHandlerExit(inner);
+ } else if (event.has_softirq_entry()) {
+ const auto& inner = event.softirq_entry();
+ line = FormatSoftirqEntry(inner);
+ } else if (event.has_softirq_exit()) {
+ const auto& inner = event.softirq_exit();
+ line = FormatSoftirqExit(inner);
+ } else if (event.has_softirq_raise()) {
+ const auto& inner = event.softirq_raise();
+ line = FormatSoftirqRaise(inner);
+ } else if (event.has_lowmemory_kill()) {
+ const auto& inner = event.lowmemory_kill();
+ line = FormatLowmemoryKill(inner);
+ } else if (event.has_tracing_mark_write()) {
+ const auto& inner = event.tracing_mark_write();
+ line = FormatTracingMarkWrite(inner);
+ } else if (event.has_clock_disable()) {
+ const auto& inner = event.clock_disable();
+ line = FormatClockDisable(inner);
+ } else if (event.has_clock_enable()) {
+ const auto& inner = event.clock_enable();
+ line = FormatClockEnable(inner);
+ } else if (event.has_clock_set_rate()) {
+ const auto& inner = event.clock_set_rate();
+ line = FormatClockSetRate(inner);
+ } else if (event.has_cpu_frequency()) {
+ const auto& inner = event.cpu_frequency();
+ line = FormatCpuFrequency(inner);
+ } else if (event.has_cpu_frequency_limits()) {
+ const auto& inner = event.cpu_frequency_limits();
+ line = FormatCpuFrequencyLimits(inner);
+ } else if (event.has_cpu_idle()) {
+ const auto& inner = event.cpu_idle();
+ line = FormatCpuIdle(inner);
} else if (event.has_suspend_resume()) {
const auto& inner = event.suspend_resume();
line = FormatSuspendResume(inner);
+ } else if (event.has_regulator_disable()) {
+ const auto& inner = event.regulator_disable();
+ line = FormatRegulatorDisable(inner);
+ } else if (event.has_regulator_disable_complete()) {
+ const auto& inner = event.regulator_disable_complete();
+ line = FormatRegulatorDisableComplete(inner);
+ } else if (event.has_regulator_enable()) {
+ const auto& inner = event.regulator_enable();
+ line = FormatRegulatorEnable(inner);
+ } else if (event.has_regulator_enable_complete()) {
+ const auto& inner = event.regulator_enable_complete();
+ line = FormatRegulatorEnableComplete(inner);
+ } else if (event.has_regulator_enable_delay()) {
+ const auto& inner = event.regulator_enable_delay();
+ line = FormatRegulatorEnableDelay(inner);
+ } else if (event.has_regulator_set_voltage()) {
+ const auto& inner = event.regulator_set_voltage();
+ line = FormatRegulatorSetVoltage(inner);
+ } else if (event.has_regulator_set_voltage_complete()) {
+ const auto& inner = event.regulator_set_voltage_complete();
+ line = FormatRegulatorSetVoltageComplete(inner);
+ } else if (event.has_sched_blocked_reason()) {
+ const auto& inner = event.sched_blocked_reason();
+ line = FormatSchedBlockedReason(inner);
+ } else if (event.has_sched_cpu_hotplug()) {
+ const auto& inner = event.sched_cpu_hotplug();
+ line = FormatSchedCpuHotplug(inner);
+ } else if (event.has_sched_switch()) {
+ const auto& inner = event.sched_switch();
+ line = FormatSchedSwitch(inner);
+ } else if (event.has_sched_wakeup()) {
+ const auto& inner = event.sched_wakeup();
+ line = FormatSchedWakeup(inner);
} else if (event.has_sched_wakeup_new()) {
const auto& inner = event.sched_wakeup_new();
line = FormatSchedWakeupNew(inner);
+ } else if (event.has_sync_pt()) {
+ const auto& inner = event.sync_pt();
+ line = FormatSyncPt(inner);
+ } else if (event.has_sync_timeline()) {
+ const auto& inner = event.sync_timeline();
+ line = FormatSyncTimeline(inner);
+ } else if (event.has_sync_wait()) {
+ const auto& inner = event.sync_wait();
+ line = FormatSyncWait(inner);
+ } else if (event.has_mm_vmscan_direct_reclaim_begin()) {
+ const auto& inner = event.mm_vmscan_direct_reclaim_begin();
+ line = FormatMmVmscanDirectReclaimBegin(inner);
+ } else if (event.has_mm_vmscan_direct_reclaim_end()) {
+ const auto& inner = event.mm_vmscan_direct_reclaim_end();
+ line = FormatMmVmscanDirectReclaimEnd(inner);
+ } else if (event.has_mm_vmscan_kswapd_sleep()) {
+ const auto& inner = event.mm_vmscan_kswapd_sleep();
+ line = FormatMmVmscanKswapdSleep(inner);
+ } else if (event.has_mm_vmscan_kswapd_wake()) {
+ const auto& inner = event.mm_vmscan_kswapd_wake();
+ line = FormatMmVmscanKswapdWake(inner);
+ } else if (event.has_workqueue_activate_work()) {
+ const auto& inner = event.workqueue_activate_work();
+ line = FormatWorkqueueActivateWork(inner);
+ } else if (event.has_workqueue_execute_end()) {
+ const auto& inner = event.workqueue_execute_end();
+ line = FormatWorkqueueExecuteEnd(inner);
+ } else if (event.has_workqueue_execute_start()) {
+ const auto& inner = event.workqueue_execute_start();
+ line = FormatWorkqueueExecuteStart(inner);
+ } else if (event.has_workqueue_queue_work()) {
+ const auto& inner = event.workqueue_queue_work();
+ line = FormatWorkqueueQueueWork(inner);
} else {
continue;
}