ftrace_reader: Added more events for processes.

Specifically:
- sched/sched_process_exec
- sched/sched_process_exit
- sched/sched_process_fork
- sched/sched_process_free
- sched/sched_process_hang
- sched/sched_process_wait
- task/task_rename
- task/task_newtask

Bug: 73058765
Change-Id: I5748b96b1c8fb4ebf4ac6518037771b30a43e0a6
diff --git a/Android.bp b/Android.bp
index a5c266d..5ab7e2c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -588,6 +588,12 @@
     "protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
     "protos/perfetto/trace/ftrace/sched_blocked_reason.proto",
     "protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exec.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exit.proto",
+    "protos/perfetto/trace/ftrace/sched_process_fork.proto",
+    "protos/perfetto/trace/ftrace/sched_process_free.proto",
+    "protos/perfetto/trace/ftrace/sched_process_hang.proto",
+    "protos/perfetto/trace/ftrace/sched_process_wait.proto",
     "protos/perfetto/trace/ftrace/sched_switch.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
@@ -603,6 +609,8 @@
     "protos/perfetto/trace/ftrace/sync_pt.proto",
     "protos/perfetto/trace/ftrace/sync_timeline.proto",
     "protos/perfetto/trace/ftrace/sync_wait.proto",
+    "protos/perfetto/trace/ftrace/task_newtask.proto",
+    "protos/perfetto/trace/ftrace/task_rename.proto",
     "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
     "protos/perfetto/trace/ftrace/tracing_mark_write.proto",
     "protos/perfetto/trace/ftrace/workqueue_activate_work.proto",
@@ -818,6 +826,12 @@
     "external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_blocked_reason.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exec.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exit.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_fork.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_free.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_hang.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_wait.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pb.cc",
@@ -833,6 +847,8 @@
     "external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_newtask.pb.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_rename.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/tracing_mark_write.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/workqueue_activate_work.pb.cc",
@@ -1049,6 +1065,12 @@
     "protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
     "protos/perfetto/trace/ftrace/sched_blocked_reason.proto",
     "protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exec.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exit.proto",
+    "protos/perfetto/trace/ftrace/sched_process_fork.proto",
+    "protos/perfetto/trace/ftrace/sched_process_free.proto",
+    "protos/perfetto/trace/ftrace/sched_process_hang.proto",
+    "protos/perfetto/trace/ftrace/sched_process_wait.proto",
     "protos/perfetto/trace/ftrace/sched_switch.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
@@ -1064,6 +1086,8 @@
     "protos/perfetto/trace/ftrace/sync_pt.proto",
     "protos/perfetto/trace/ftrace/sync_timeline.proto",
     "protos/perfetto/trace/ftrace/sync_wait.proto",
+    "protos/perfetto/trace/ftrace/task_newtask.proto",
+    "protos/perfetto/trace/ftrace/task_rename.proto",
     "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
     "protos/perfetto/trace/ftrace/tracing_mark_write.proto",
     "protos/perfetto/trace/ftrace/workqueue_activate_work.proto",
@@ -1279,6 +1303,12 @@
     "external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_blocked_reason.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exec.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exit.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_fork.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_free.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_hang.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_wait.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pb.h",
@@ -1294,6 +1324,8 @@
     "external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_newtask.pb.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_rename.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/tracing_mark_write.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/workqueue_activate_work.pb.h",
@@ -1513,6 +1545,12 @@
     "protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
     "protos/perfetto/trace/ftrace/sched_blocked_reason.proto",
     "protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exec.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exit.proto",
+    "protos/perfetto/trace/ftrace/sched_process_fork.proto",
+    "protos/perfetto/trace/ftrace/sched_process_free.proto",
+    "protos/perfetto/trace/ftrace/sched_process_hang.proto",
+    "protos/perfetto/trace/ftrace/sched_process_wait.proto",
     "protos/perfetto/trace/ftrace/sched_switch.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
@@ -1528,6 +1566,8 @@
     "protos/perfetto/trace/ftrace/sync_pt.proto",
     "protos/perfetto/trace/ftrace/sync_timeline.proto",
     "protos/perfetto/trace/ftrace/sync_wait.proto",
+    "protos/perfetto/trace/ftrace/task_newtask.proto",
+    "protos/perfetto/trace/ftrace/task_rename.proto",
     "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
     "protos/perfetto/trace/ftrace/tracing_mark_write.proto",
     "protos/perfetto/trace/ftrace/workqueue_activate_work.proto",
@@ -1744,6 +1784,12 @@
     "external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_blocked_reason.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exec.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exit.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_fork.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_free.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_hang.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_wait.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pbzero.cc",
@@ -1759,6 +1805,8 @@
     "external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_newtask.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_rename.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/tracing_mark_write.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/workqueue_activate_work.pbzero.cc",
@@ -1975,6 +2023,12 @@
     "protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
     "protos/perfetto/trace/ftrace/sched_blocked_reason.proto",
     "protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exec.proto",
+    "protos/perfetto/trace/ftrace/sched_process_exit.proto",
+    "protos/perfetto/trace/ftrace/sched_process_fork.proto",
+    "protos/perfetto/trace/ftrace/sched_process_free.proto",
+    "protos/perfetto/trace/ftrace/sched_process_hang.proto",
+    "protos/perfetto/trace/ftrace/sched_process_wait.proto",
     "protos/perfetto/trace/ftrace/sched_switch.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup.proto",
     "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
@@ -1990,6 +2044,8 @@
     "protos/perfetto/trace/ftrace/sync_pt.proto",
     "protos/perfetto/trace/ftrace/sync_timeline.proto",
     "protos/perfetto/trace/ftrace/sync_wait.proto",
+    "protos/perfetto/trace/ftrace/task_newtask.proto",
+    "protos/perfetto/trace/ftrace/task_rename.proto",
     "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
     "protos/perfetto/trace/ftrace/tracing_mark_write.proto",
     "protos/perfetto/trace/ftrace/workqueue_activate_work.proto",
@@ -2206,6 +2262,12 @@
     "external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_blocked_reason.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exec.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_exit.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_fork.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_free.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_hang.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/sched_process_wait.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pbzero.h",
@@ -2221,6 +2283,8 @@
     "external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_newtask.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/ftrace/task_rename.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/tracing_mark_write.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/workqueue_activate_work.pbzero.h",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 0cacf3f..465ea67 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -19,7 +19,25 @@
   "binder_transaction.proto",
   "binder_transaction_received.proto",
   "binder_unlock.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_issue.proto",
+  "block_rq_remap.proto",
+  "block_rq_requeue.proto",
+  "block_sleeprq.proto",
+  "block_split.proto",
+  "block_touch_buffer.proto",
+  "block_unplug.proto",
   "cgroup_attach_task.proto",
   "cgroup_destroy_root.proto",
   "cgroup_mkdir.proto",
@@ -41,10 +59,101 @@
   "cpufreq_interactive_setspeed.proto",
   "cpufreq_interactive_target.proto",
   "cpufreq_interactive_unboost.proto",
+  "ext4_alloc_da_blocks.proto",
+  "ext4_allocate_blocks.proto",
+  "ext4_allocate_inode.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_begin.proto",
   "ext4_da_write_end.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_journal_start.proto",
+  "ext4_journal_start_reserved.proto",
+  "ext4_journalled_invalidatepage.proto",
+  "ext4_journalled_write_end.proto",
+  "ext4_load_inode.proto",
+  "ext4_load_inode_bitmap.proto",
+  "ext4_mark_inode_dirty.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_mballoc_alloc.proto",
+  "ext4_mballoc_discard.proto",
+  "ext4_mballoc_free.proto",
+  "ext4_mballoc_prealloc.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_file_enter.proto",
   "ext4_sync_file_exit.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",
   "ftrace_event.proto",
   "ftrace_event_bundle.proto",
   "i2c_read.proto",
@@ -107,6 +216,12 @@
   "rotator_bw_ao_as_context.proto",
   "sched_blocked_reason.proto",
   "sched_cpu_hotplug.proto",
+  "sched_process_exec.proto",
+  "sched_process_exit.proto",
+  "sched_process_fork.proto",
+  "sched_process_free.proto",
+  "sched_process_hang.proto",
+  "sched_process_wait.proto",
   "sched_switch.proto",
   "sched_wakeup.proto",
   "sched_wakeup_new.proto",
@@ -122,119 +237,12 @@
   "sync_pt.proto",
   "sync_timeline.proto",
   "sync_wait.proto",
+  "task_newtask.proto",
+  "task_rename.proto",
   "test_bundle_wrapper.proto",
   "tracing_mark_write.proto",
   "workqueue_activate_work.proto",
   "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/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 2a43db4..5a158be 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -238,6 +238,14 @@
 import "perfetto/trace/ftrace/block_split.proto";
 import "perfetto/trace/ftrace/block_touch_buffer.proto";
 import "perfetto/trace/ftrace/block_unplug.proto";
+import "perfetto/trace/ftrace/task_newtask.proto";
+import "perfetto/trace/ftrace/task_rename.proto";
+import "perfetto/trace/ftrace/sched_process_exec.proto";
+import "perfetto/trace/ftrace/sched_process_exit.proto";
+import "perfetto/trace/ftrace/sched_process_fork.proto";
+import "perfetto/trace/ftrace/sched_process_hang.proto";
+import "perfetto/trace/ftrace/sched_process_wait.proto";
+import "perfetto/trace/ftrace/sched_process_free.proto";
 
 package perfetto.protos;
 
@@ -484,5 +492,13 @@
     Ext4WritepagesFtraceEvent ext4_writepages = 232;
     Ext4WritepagesResultFtraceEvent ext4_writepages_result = 233;
     Ext4ZeroRangeFtraceEvent ext4_zero_range = 234;
+    TaskNewtaskFtraceEvent task_newtask = 235;
+    TaskRenameFtraceEvent task_rename = 236;
+    SchedProcessExecFtraceEvent sched_process_exec = 237;
+    SchedProcessExitFtraceEvent sched_process_exit = 238;
+    SchedProcessForkFtraceEvent sched_process_fork = 239;
+    SchedProcessFreeFtraceEvent sched_process_free = 240;
+    SchedProcessHangFtraceEvent sched_process_hang = 241;
+    SchedProcessWaitFtraceEvent sched_process_wait = 242;
   }
 }
diff --git a/protos/perfetto/trace/ftrace/sched_process_exec.proto b/protos/perfetto/trace/ftrace/sched_process_exec.proto
new file mode 100644
index 0000000..6ff2719
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_exec.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 SchedProcessExecFtraceEvent {
+  optional string filename = 1;
+  optional int32 pid = 2;
+  optional int32 old_pid = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_process_exit.proto b/protos/perfetto/trace/ftrace/sched_process_exit.proto
new file mode 100644
index 0000000..1c6a3ff
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_exit.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 SchedProcessExitFtraceEvent {
+  optional string comm = 1;
+  optional int32 pid = 2;
+  optional int32 tgid = 3;
+  optional int32 prio = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_process_fork.proto b/protos/perfetto/trace/ftrace/sched_process_fork.proto
new file mode 100644
index 0000000..19772fe
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_fork.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 SchedProcessForkFtraceEvent {
+  optional string parent_comm = 1;
+  optional int32 parent_pid = 2;
+  optional string child_comm = 3;
+  optional int32 child_pid = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_process_free.proto b/protos/perfetto/trace/ftrace/sched_process_free.proto
new file mode 100644
index 0000000..4a93c21
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_free.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 SchedProcessFreeFtraceEvent {
+  optional string comm = 1;
+  optional int32 pid = 2;
+  optional int32 prio = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_process_hang.proto b/protos/perfetto/trace/ftrace/sched_process_hang.proto
new file mode 100644
index 0000000..b53e13b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_hang.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 SchedProcessHangFtraceEvent {
+  optional string comm = 1;
+  optional int32 pid = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_process_wait.proto b/protos/perfetto/trace/ftrace/sched_process_wait.proto
new file mode 100644
index 0000000..296cecc
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_process_wait.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 SchedProcessWaitFtraceEvent {
+  optional string comm = 1;
+  optional int32 pid = 2;
+  optional int32 prio = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/task_newtask.proto b/protos/perfetto/trace/ftrace/task_newtask.proto
new file mode 100644
index 0000000..aa7f900
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/task_newtask.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 TaskNewtaskFtraceEvent {
+  optional int32 pid = 1;
+  optional string comm = 2;
+  optional uint64 clone_flags = 3;
+  optional int32 oom_score_adj = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/task_rename.proto b/protos/perfetto/trace/ftrace/task_rename.proto
new file mode 100644
index 0000000..aafbac1
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/task_rename.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 TaskRenameFtraceEvent {
+  optional int32 pid = 1;
+  optional string oldcomm = 2;
+  optional string newcomm = 3;
+  optional int32 oom_score_adj = 4;
+}
diff --git a/src/ftrace_reader/event_info.cc b/src/ftrace_reader/event_info.cc
index 913db2b..586e8fe 100644
--- a/src/ftrace_reader/event_info.cc
+++ b/src/ftrace_reader/event_info.cc
@@ -2566,6 +2566,73 @@
   {
     events.emplace_back(Event{});
     Event* event = &events.back();
+    event->name = "sched_process_exec";
+    event->group = "sched";
+    event->proto_field_id = 237;
+    event->fields.push_back(MakeField("filename", 1, kProtoString));
+    event->fields.push_back(MakeField("pid", 2, kProtoInt32));
+    event->fields.push_back(MakeField("old_pid", 3, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "sched_process_exit";
+    event->group = "sched";
+    event->proto_field_id = 238;
+    event->fields.push_back(MakeField("comm", 1, kProtoString));
+    event->fields.push_back(MakeField("pid", 2, kProtoInt32));
+    event->fields.push_back(MakeField("tgid", 3, kProtoInt32));
+    event->fields.push_back(MakeField("prio", 4, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "sched_process_fork";
+    event->group = "sched";
+    event->proto_field_id = 239;
+    event->fields.push_back(MakeField("parent_comm", 1, kProtoString));
+    event->fields.push_back(MakeField("parent_pid", 2, kProtoInt32));
+    event->fields.push_back(MakeField("child_comm", 3, kProtoString));
+    event->fields.push_back(MakeField("child_pid", 4, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "sched_process_free";
+    event->group = "sched";
+    event->proto_field_id = 240;
+    event->fields.push_back(MakeField("comm", 1, kProtoString));
+    event->fields.push_back(MakeField("pid", 2, kProtoInt32));
+    event->fields.push_back(MakeField("prio", 3, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "sched_process_hang";
+    event->group = "sched";
+    event->proto_field_id = 241;
+    event->fields.push_back(MakeField("comm", 1, kProtoString));
+    event->fields.push_back(MakeField("pid", 2, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "sched_process_wait";
+    event->group = "sched";
+    event->proto_field_id = 242;
+    event->fields.push_back(MakeField("comm", 1, kProtoString));
+    event->fields.push_back(MakeField("pid", 2, kProtoInt32));
+    event->fields.push_back(MakeField("prio", 3, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
     event->name = "sched_switch";
     event->group = "sched";
     event->proto_field_id = 4;
@@ -2651,6 +2718,30 @@
   {
     events.emplace_back(Event{});
     Event* event = &events.back();
+    event->name = "task_newtask";
+    event->group = "task";
+    event->proto_field_id = 235;
+    event->fields.push_back(MakeField("pid", 1, kProtoInt32));
+    event->fields.push_back(MakeField("comm", 2, kProtoString));
+    event->fields.push_back(MakeField("clone_flags", 3, kProtoUint64));
+    event->fields.push_back(MakeField("oom_score_adj", 4, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
+    event->name = "task_rename";
+    event->group = "task";
+    event->proto_field_id = 236;
+    event->fields.push_back(MakeField("pid", 1, kProtoInt32));
+    event->fields.push_back(MakeField("oldcomm", 2, kProtoString));
+    event->fields.push_back(MakeField("newcomm", 3, kProtoString));
+    event->fields.push_back(MakeField("oom_score_adj", 4, kProtoInt32));
+  }
+
+  {
+    events.emplace_back(Event{});
+    Event* event = &events.back();
     event->name = "mm_vmscan_direct_reclaim_begin";
     event->group = "vmscan";
     event->proto_field_id = 46;
diff --git a/src/process_stats/procfs_utils.cc b/src/process_stats/procfs_utils.cc
index 4aa9744..000b44e 100644
--- a/src/process_stats/procfs_utils.cc
+++ b/src/process_stats/procfs_utils.cc
@@ -77,7 +77,6 @@
   ProcessInfo* process = new ProcessInfo();
   process->pid = pid;
   char cmdline_buf[256];
-  process->cmdline = SplitOnNull("\0");
   ReadProcString(pid, "cmdline", cmdline_buf, sizeof(cmdline_buf));
   if (cmdline_buf[0] == 0) {
     // Nothing in cmdline_buf so read name from /comm instead.
diff --git a/test/configs/ftrace.cfg b/test/configs/ftrace.cfg
index 002f4f8..491b5e3 100644
--- a/test/configs/ftrace.cfg
+++ b/test/configs/ftrace.cfg
@@ -103,6 +103,12 @@
       ftrace_events: "rotator_bw_ao_as_context"
       ftrace_events: "sched_blocked_reason"
       ftrace_events: "sched_cpu_hotplug"
+      ftrace_events: "sched_process_exec"
+      ftrace_events: "sched_process_exit"
+      ftrace_events: "sched_process_fork"
+      ftrace_events: "sched_process_free"
+      ftrace_events: "sched_process_hang"
+      ftrace_events: "sched_process_wait"
       ftrace_events: "sched_switch"
       ftrace_events: "sched_wakeup"
       ftrace_events: "sched_wakeup_new"
@@ -118,6 +124,8 @@
       ftrace_events: "sync_pt"
       ftrace_events: "sync_timeline"
       ftrace_events: "sync_wait"
+      ftrace_events: "task_newtask"
+      ftrace_events: "task_rename"
       ftrace_events: "tracing_mark_write"
       ftrace_events: "workqueue_activate_work"
       ftrace_events: "workqueue_execute_end"
diff --git a/tools/ftrace_proto_gen/event_whitelist b/tools/ftrace_proto_gen/event_whitelist
index 9411fdd..d5cb134 100644
--- a/tools/ftrace_proto_gen/event_whitelist
+++ b/tools/ftrace_proto_gen/event_whitelist
@@ -16,6 +16,13 @@
 sched/sched_blocked_reason
 sched/sched_cpu_hotplug
 sched/sched_waking
+sched/sched_wakeup_new
+sched/sched_process_exec
+sched/sched_process_exit
+sched/sched_process_fork
+sched/sched_process_free
+sched/sched_process_hang
+sched/sched_process_wait
 i2c/i2c_read
 i2c/i2c_write
 i2c/i2c_result
@@ -109,7 +116,6 @@
 compaction/mm_compaction_try_to_compact_pages
 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
@@ -220,3 +226,5 @@
 block/block_split
 block/block_touch_buffer
 block/block_unplug
+task/task_newtask
+task/task_rename
diff --git a/tools/trace_to_text/main.cc b/tools/trace_to_text/main.cc
index 22762cb..47c617b 100644
--- a/tools/trace_to_text/main.cc
+++ b/tools/trace_to_text/main.cc
@@ -281,6 +281,12 @@
 using protos::RegulatorSetVoltageCompleteFtraceEvent;
 using protos::SchedBlockedReasonFtraceEvent;
 using protos::SchedCpuHotplugFtraceEvent;
+using protos::SchedProcessExecFtraceEvent;
+using protos::SchedProcessExitFtraceEvent;
+using protos::SchedProcessForkFtraceEvent;
+using protos::SchedProcessFreeFtraceEvent;
+using protos::SchedProcessHangFtraceEvent;
+using protos::SchedProcessWaitFtraceEvent;
 using protos::SchedSwitchFtraceEvent;
 using protos::SchedWakeupFtraceEvent;
 using protos::SchedWakeupNewFtraceEvent;
@@ -296,6 +302,8 @@
 using protos::WorkqueueExecuteEndFtraceEvent;
 using protos::WorkqueueExecuteStartFtraceEvent;
 using protos::WorkqueueQueueWorkFtraceEvent;
+using protos::TaskNewtaskFtraceEvent;
+using protos::TaskRenameFtraceEvent;
 
 using protos::FtraceEvent;
 using protos::FtraceEventBundle;
@@ -1043,6 +1051,64 @@
   return std::string(line);
 }
 
+std::string FormatSchedProcessExec(const SchedProcessExecFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "sched_process_exec: filename=%s pid=%d old_pid=%d\\n",
+          event.filename().c_str(), event.pid(), event.old_pid());
+  return std::string(line);
+}
+std::string FormatSchedProcessExit(const SchedProcessExitFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "sched_process_exit: comm=%s pid=%d tgid=%d prio=%d\\n",
+          event.comm().c_str(), event.pid(), event.tgid(), event.prio());
+  return std::string(line);
+}
+std::string FormatSchedProcessFork(const SchedProcessForkFtraceEvent& event) {
+  char line[2048];
+  sprintf(line,
+          "sched_process_fork: parent_comm=%s parent_pid=%d child_comm=%s "
+          "child_pid=%d\\n",
+          event.parent_comm().c_str(), event.parent_pid(),
+          event.child_comm().c_str(), event.child_pid());
+  return std::string(line);
+}
+std::string FormatSchedProcessFree(const SchedProcessFreeFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "sched_process_free: comm=%s pid=%d prio=%d\\n",
+          event.comm().c_str(), event.pid(), event.prio());
+  return std::string(line);
+}
+std::string FormatSchedProcessHang(const SchedProcessHangFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "sched_process_hang: comm=%s pid=%d\\n", event.comm().c_str(),
+          event.pid());
+  return std::string(line);
+}
+
+std::string FormatSchedProcessWait(const SchedProcessWaitFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "sched_process_wait: comm=%s pid=%d\\n", event.comm().c_str(),
+          event.pid());
+  return std::string(line);
+}
+
+std::string FormatTaskNewtask(const TaskNewtaskFtraceEvent& event) {
+  char line[2048];
+  sprintf(line,
+          "task_newtask: comm=%s pid=%d clone_flags=%llu oom_score_adj=%d\\n",
+          event.comm().c_str(), event.pid(), event.clone_flags(),
+          event.oom_score_adj());
+  return std::string(line);
+}
+
+std::string FormatTaskRename(const TaskRenameFtraceEvent& event) {
+  char line[2048];
+  sprintf(line, "task_rename: pid=%d oldcomm=%s newcomm=%s oom_score_adj=%d\\n",
+          event.pid(), event.newcomm().c_str(), event.oldcomm().c_str(),
+          event.oom_score_adj());
+  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",
@@ -2791,6 +2857,30 @@
       } else if (event.has_workqueue_queue_work()) {
         const auto& inner = event.workqueue_queue_work();
         line = FormatWorkqueueQueueWork(inner);
+      } else if (event.has_sched_process_fork()) {
+        const auto& inner = event.sched_process_fork();
+        line = FormatSchedProcessFork(inner);
+      } else if (event.has_sched_process_hang()) {
+        const auto& inner = event.sched_process_hang();
+        line = FormatSchedProcessHang(inner);
+      } else if (event.has_sched_process_free()) {
+        const auto& inner = event.sched_process_free();
+        line = FormatSchedProcessFree(inner);
+      } else if (event.has_sched_process_exec()) {
+        const auto& inner = event.sched_process_exec();
+        line = FormatSchedProcessExec(inner);
+      } else if (event.has_sched_process_exit()) {
+        const auto& inner = event.sched_process_exit();
+        line = FormatSchedProcessExit(inner);
+      } else if (event.has_sched_process_wait()) {
+        const auto& inner = event.sched_process_wait();
+        line = FormatSchedProcessWait(inner);
+      } else if (event.has_task_rename()) {
+        const auto& inner = event.task_rename();
+        line = FormatTaskRename(inner);
+      } else if (event.has_task_newtask()) {
+        const auto& inner = event.task_newtask();
+        line = FormatTaskNewtask(inner);
       } else {
         continue;
       }