Merge "Remove UnixSocketTest::SendIsAtomic."
diff --git a/Android.bp b/Android.bp
index 666c22d..e395ed5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -818,6 +818,12 @@
genrule {
name: "perfetto_protos_perfetto_trace_ftrace_lite_gen",
srcs: [
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto",
"protos/perfetto/trace/ftrace/binder_lock.proto",
"protos/perfetto/trace/ftrace/binder_locked.proto",
"protos/perfetto/trace/ftrace/binder_set_priority.proto",
@@ -864,6 +870,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -997,11 +1004,36 @@
"protos/perfetto/trace/ftrace/i2c_reply.proto",
"protos/perfetto/trace/ftrace/i2c_result.proto",
"protos/perfetto/trace/ftrace/i2c_write.proto",
+ "protos/perfetto/trace/ftrace/iommu_map_range.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_grow.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_shrink.proto",
+ "protos/perfetto/trace/ftrace/ion_prefetching.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto",
"protos/perfetto/trace/ftrace/ipi_entry.proto",
"protos/perfetto/trace/ftrace/ipi_exit.proto",
"protos/perfetto/trace/ftrace/ipi_raise.proto",
"protos/perfetto/trace/ftrace/irq_handler_entry.proto",
"protos/perfetto/trace/ftrace/irq_handler_exit.proto",
+ "protos/perfetto/trace/ftrace/kfree.proto",
+ "protos/perfetto/trace/ftrace/kmalloc.proto",
+ "protos/perfetto/trace/ftrace/kmalloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_free.proto",
"protos/perfetto/trace/ftrace/lowmemory_kill.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_kickoff.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.proto",
@@ -1022,6 +1054,9 @@
"protos/perfetto/trace/ftrace/mdp_sspp_set.proto",
"protos/perfetto/trace/ftrace/mdp_trace_counter.proto",
"protos/perfetto/trace/ftrace/mdp_video_underrun_done.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_end.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_start.proto",
+ "protos/perfetto/trace/ftrace/migrate_retry.proto",
"protos/perfetto/trace/ftrace/mm_compaction_begin.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
@@ -1038,6 +1073,12 @@
"protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto",
"protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto",
"protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free_batched.proto",
+ "protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.proto",
@@ -1051,6 +1092,7 @@
"protos/perfetto/trace/ftrace/regulator_set_voltage.proto",
"protos/perfetto/trace/ftrace/regulator_set_voltage_complete.proto",
"protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
+ "protos/perfetto/trace/ftrace/rss_stat.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",
@@ -1088,6 +1130,12 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_start.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_lock.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_locked.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_set_priority.pb.cc",
@@ -1134,6 +1182,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -1267,11 +1316,36 @@
"external/perfetto/protos/perfetto/trace/ftrace/i2c_reply.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_result.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_write.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_map_range.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_grow.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_shrink.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_prefetching.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_entry.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_exit.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_raise.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_entry.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_exit.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kfree.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc_node.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_free.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/lowmemory_kill.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_kickoff.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.pb.cc",
@@ -1292,6 +1366,9 @@
"external/perfetto/protos/perfetto/trace/ftrace/mdp_sspp_set.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_trace_counter.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_video_underrun_done.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_start.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_retry.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_begin.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.pb.cc",
@@ -1308,6 +1385,12 @@
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free_batched.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.pb.cc",
@@ -1321,6 +1404,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage_complete.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/rss_stat.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",
@@ -1359,6 +1443,12 @@
genrule {
name: "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
srcs: [
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto",
"protos/perfetto/trace/ftrace/binder_lock.proto",
"protos/perfetto/trace/ftrace/binder_locked.proto",
"protos/perfetto/trace/ftrace/binder_set_priority.proto",
@@ -1405,6 +1495,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -1538,11 +1629,36 @@
"protos/perfetto/trace/ftrace/i2c_reply.proto",
"protos/perfetto/trace/ftrace/i2c_result.proto",
"protos/perfetto/trace/ftrace/i2c_write.proto",
+ "protos/perfetto/trace/ftrace/iommu_map_range.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_grow.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_shrink.proto",
+ "protos/perfetto/trace/ftrace/ion_prefetching.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto",
"protos/perfetto/trace/ftrace/ipi_entry.proto",
"protos/perfetto/trace/ftrace/ipi_exit.proto",
"protos/perfetto/trace/ftrace/ipi_raise.proto",
"protos/perfetto/trace/ftrace/irq_handler_entry.proto",
"protos/perfetto/trace/ftrace/irq_handler_exit.proto",
+ "protos/perfetto/trace/ftrace/kfree.proto",
+ "protos/perfetto/trace/ftrace/kmalloc.proto",
+ "protos/perfetto/trace/ftrace/kmalloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_free.proto",
"protos/perfetto/trace/ftrace/lowmemory_kill.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_kickoff.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.proto",
@@ -1563,6 +1679,9 @@
"protos/perfetto/trace/ftrace/mdp_sspp_set.proto",
"protos/perfetto/trace/ftrace/mdp_trace_counter.proto",
"protos/perfetto/trace/ftrace/mdp_video_underrun_done.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_end.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_start.proto",
+ "protos/perfetto/trace/ftrace/migrate_retry.proto",
"protos/perfetto/trace/ftrace/mm_compaction_begin.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
@@ -1579,6 +1698,12 @@
"protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto",
"protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto",
"protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free_batched.proto",
+ "protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.proto",
@@ -1592,6 +1717,7 @@
"protos/perfetto/trace/ftrace/regulator_set_voltage.proto",
"protos/perfetto/trace/ftrace/regulator_set_voltage_complete.proto",
"protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
+ "protos/perfetto/trace/ftrace/rss_stat.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",
@@ -1629,6 +1755,12 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_start.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_lock.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_locked.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_set_priority.pb.h",
@@ -1675,6 +1807,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -1808,11 +1941,36 @@
"external/perfetto/protos/perfetto/trace/ftrace/i2c_reply.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_result.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_write.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_map_range.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_grow.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_shrink.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_prefetching.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_entry.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_exit.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_raise.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_entry.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_exit.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kfree.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc_node.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_free.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/lowmemory_kill.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_kickoff.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.pb.h",
@@ -1833,6 +1991,9 @@
"external/perfetto/protos/perfetto/trace/ftrace/mdp_sspp_set.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_trace_counter.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_video_underrun_done.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_start.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_retry.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_begin.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.pb.h",
@@ -1849,6 +2010,12 @@
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free_batched.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.pb.h",
@@ -1862,6 +2029,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage_complete.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/rss_stat.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",
@@ -1903,6 +2071,12 @@
genrule {
name: "perfetto_protos_perfetto_trace_ftrace_zero_gen",
srcs: [
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto",
"protos/perfetto/trace/ftrace/binder_lock.proto",
"protos/perfetto/trace/ftrace/binder_locked.proto",
"protos/perfetto/trace/ftrace/binder_set_priority.proto",
@@ -1949,6 +2123,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -2082,11 +2257,36 @@
"protos/perfetto/trace/ftrace/i2c_reply.proto",
"protos/perfetto/trace/ftrace/i2c_result.proto",
"protos/perfetto/trace/ftrace/i2c_write.proto",
+ "protos/perfetto/trace/ftrace/iommu_map_range.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_grow.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_shrink.proto",
+ "protos/perfetto/trace/ftrace/ion_prefetching.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto",
"protos/perfetto/trace/ftrace/ipi_entry.proto",
"protos/perfetto/trace/ftrace/ipi_exit.proto",
"protos/perfetto/trace/ftrace/ipi_raise.proto",
"protos/perfetto/trace/ftrace/irq_handler_entry.proto",
"protos/perfetto/trace/ftrace/irq_handler_exit.proto",
+ "protos/perfetto/trace/ftrace/kfree.proto",
+ "protos/perfetto/trace/ftrace/kmalloc.proto",
+ "protos/perfetto/trace/ftrace/kmalloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_free.proto",
"protos/perfetto/trace/ftrace/lowmemory_kill.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_kickoff.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.proto",
@@ -2107,6 +2307,9 @@
"protos/perfetto/trace/ftrace/mdp_sspp_set.proto",
"protos/perfetto/trace/ftrace/mdp_trace_counter.proto",
"protos/perfetto/trace/ftrace/mdp_video_underrun_done.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_end.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_start.proto",
+ "protos/perfetto/trace/ftrace/migrate_retry.proto",
"protos/perfetto/trace/ftrace/mm_compaction_begin.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
@@ -2123,6 +2326,12 @@
"protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto",
"protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto",
"protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free_batched.proto",
+ "protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.proto",
@@ -2136,6 +2345,7 @@
"protos/perfetto/trace/ftrace/regulator_set_voltage.proto",
"protos/perfetto/trace/ftrace/regulator_set_voltage_complete.proto",
"protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
+ "protos/perfetto/trace/ftrace/rss_stat.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",
@@ -2174,6 +2384,12 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_start.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_lock.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_locked.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/binder_set_priority.pbzero.cc",
@@ -2220,6 +2436,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -2353,11 +2570,36 @@
"external/perfetto/protos/perfetto/trace/ftrace/i2c_reply.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_result.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_write.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_map_range.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_grow.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_shrink.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_prefetching.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_entry.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_exit.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_raise.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_entry.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_exit.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kfree.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc_node.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_free.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/lowmemory_kill.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_kickoff.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.pbzero.cc",
@@ -2378,6 +2620,9 @@
"external/perfetto/protos/perfetto/trace/ftrace/mdp_sspp_set.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_trace_counter.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_video_underrun_done.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_start.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_retry.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_begin.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.pbzero.cc",
@@ -2394,6 +2639,12 @@
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free_batched.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.pbzero.cc",
@@ -2407,6 +2658,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage_complete.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/rss_stat.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",
@@ -2445,6 +2697,12 @@
genrule {
name: "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
srcs: [
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto",
+ "protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto",
"protos/perfetto/trace/ftrace/binder_lock.proto",
"protos/perfetto/trace/ftrace/binder_locked.proto",
"protos/perfetto/trace/ftrace/binder_set_priority.proto",
@@ -2491,6 +2749,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -2624,11 +2883,36 @@
"protos/perfetto/trace/ftrace/i2c_reply.proto",
"protos/perfetto/trace/ftrace/i2c_result.proto",
"protos/perfetto/trace/ftrace/i2c_write.proto",
+ "protos/perfetto/trace/ftrace/iommu_map_range.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto",
+ "protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto",
+ "protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto",
+ "protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_grow.proto",
+ "protos/perfetto/trace/ftrace/ion_heap_shrink.proto",
+ "protos/perfetto/trace/ftrace/ion_prefetching.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto",
+ "protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto",
"protos/perfetto/trace/ftrace/ipi_entry.proto",
"protos/perfetto/trace/ftrace/ipi_exit.proto",
"protos/perfetto/trace/ftrace/ipi_raise.proto",
"protos/perfetto/trace/ftrace/irq_handler_entry.proto",
"protos/perfetto/trace/ftrace/irq_handler_exit.proto",
+ "protos/perfetto/trace/ftrace/kfree.proto",
+ "protos/perfetto/trace/ftrace/kmalloc.proto",
+ "protos/perfetto/trace/ftrace/kmalloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto",
+ "protos/perfetto/trace/ftrace/kmem_cache_free.proto",
"protos/perfetto/trace/ftrace/lowmemory_kill.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_kickoff.proto",
"protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.proto",
@@ -2649,6 +2933,9 @@
"protos/perfetto/trace/ftrace/mdp_sspp_set.proto",
"protos/perfetto/trace/ftrace/mdp_trace_counter.proto",
"protos/perfetto/trace/ftrace/mdp_video_underrun_done.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_end.proto",
+ "protos/perfetto/trace/ftrace/migrate_pages_start.proto",
+ "protos/perfetto/trace/ftrace/migrate_retry.proto",
"protos/perfetto/trace/ftrace/mm_compaction_begin.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
"protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
@@ -2665,6 +2952,12 @@
"protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto",
"protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto",
"protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto",
+ "protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free.proto",
+ "protos/perfetto/trace/ftrace/mm_page_free_batched.proto",
+ "protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.proto",
"protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.proto",
@@ -2678,6 +2971,7 @@
"protos/perfetto/trace/ftrace/regulator_set_voltage.proto",
"protos/perfetto/trace/ftrace/regulator_set_voltage_complete.proto",
"protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.proto",
+ "protos/perfetto/trace/ftrace/rss_stat.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",
@@ -2716,6 +3010,12 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/alloc_pages_sys_start.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_lock.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_locked.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/binder_set_priority.pbzero.h",
@@ -2762,6 +3062,7 @@
"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/dma_alloc_contiguous_retry.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",
@@ -2895,11 +3196,36 @@
"external/perfetto/protos/perfetto/trace/ftrace/i2c_reply.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_result.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/i2c_write.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_map_range.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_grow.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_heap_shrink.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_prefetching.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_entry.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_exit.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ipi_raise.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_entry.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/irq_handler_exit.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kfree.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmalloc_node.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/kmem_cache_free.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/lowmemory_kill.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_kickoff.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_cmd_pingpong_done.pbzero.h",
@@ -2920,6 +3246,9 @@
"external/perfetto/protos/perfetto/trace/ftrace/mdp_sspp_set.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_trace_counter.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mdp_video_underrun_done.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_pages_start.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/migrate_retry.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_begin.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.pbzero.h",
@@ -2936,6 +3265,12 @@
"external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_add_to_page_cache.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_free_batched.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_begin.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_direct_reclaim_end.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/mm_vmscan_kswapd_sleep.pbzero.h",
@@ -2949,6 +3284,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/regulator_set_voltage_complete.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/rotator_bw_ao_as_context.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/rss_stat.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",
diff --git a/include/perfetto/base/watchdog_posix.h b/include/perfetto/base/watchdog_posix.h
index 17d6fe2..a7080df 100644
--- a/include/perfetto/base/watchdog_posix.h
+++ b/include/perfetto/base/watchdog_posix.h
@@ -19,6 +19,7 @@
#include "perfetto/base/thread_checker.h"
+#include <atomic>
#include <condition_variable>
#include <mutex>
#include <thread>
@@ -131,13 +132,13 @@
uint32_t WindowTimeForRingBuffer(const WindowedInterval& window);
const uint32_t polling_interval_ms_;
+ std::atomic<bool> enabled_{false};
std::thread thread_;
std::condition_variable exit_signal_;
// --- Begin lock-protected members ---
std::mutex mutex_;
- bool quit_ = true;
uint64_t memory_limit_bytes_ = 0;
WindowedInterval memory_window_bytes_;
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 4ba9466..dc914a1 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -279,4 +279,46 @@
"f2fs_write_begin.proto",
"f2fs_write_checkpoint.proto",
"f2fs_write_end.proto",
+ "alloc_pages_iommu_end.proto",
+ "alloc_pages_iommu_fail.proto",
+ "alloc_pages_iommu_start.proto",
+ "alloc_pages_sys_end.proto",
+ "alloc_pages_sys_fail.proto",
+ "alloc_pages_sys_start.proto",
+ "dma_alloc_contiguous_retry.proto",
+ "iommu_map_range.proto",
+ "iommu_sec_ptbl_map_range_end.proto",
+ "iommu_sec_ptbl_map_range_start.proto",
+ "ion_alloc_buffer_end.proto",
+ "ion_alloc_buffer_fail.proto",
+ "ion_alloc_buffer_fallback.proto",
+ "ion_alloc_buffer_start.proto",
+ "ion_cp_alloc_retry.proto",
+ "ion_cp_secure_buffer_end.proto",
+ "ion_cp_secure_buffer_start.proto",
+ "ion_prefetching.proto",
+ "ion_secure_cma_add_to_pool_end.proto",
+ "ion_secure_cma_add_to_pool_start.proto",
+ "ion_secure_cma_allocate_end.proto",
+ "ion_secure_cma_allocate_start.proto",
+ "ion_secure_cma_shrink_pool_end.proto",
+ "ion_secure_cma_shrink_pool_start.proto",
+ "kfree.proto",
+ "kmalloc.proto",
+ "kmalloc_node.proto",
+ "kmem_cache_alloc.proto",
+ "kmem_cache_alloc_node.proto",
+ "kmem_cache_free.proto",
+ "migrate_pages_end.proto",
+ "migrate_pages_start.proto",
+ "migrate_retry.proto",
+ "mm_page_alloc.proto",
+ "mm_page_alloc_extfrag.proto",
+ "mm_page_alloc_zone_locked.proto",
+ "mm_page_free.proto",
+ "mm_page_free_batched.proto",
+ "mm_page_pcpu_drain.proto",
+ "rss_stat.proto",
+ "ion_heap_shrink.proto",
+ "ion_heap_grow.proto",
]
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto b/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.proto
new file mode 100644
index 0000000..c40ce37
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_iommu_end.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 AllocPagesIommuEndFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto b/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.proto
new file mode 100644
index 0000000..1402ac8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_iommu_fail.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 AllocPagesIommuFailFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto b/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.proto
new file mode 100644
index 0000000..f00df2f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_iommu_start.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 AllocPagesIommuStartFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto b/protos/perfetto/trace/ftrace/alloc_pages_sys_end.proto
new file mode 100644
index 0000000..5f67fd0
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_sys_end.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 AllocPagesSysEndFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto b/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.proto
new file mode 100644
index 0000000..5aba733
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_sys_fail.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 AllocPagesSysFailFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto b/protos/perfetto/trace/ftrace/alloc_pages_sys_start.proto
new file mode 100644
index 0000000..be4bbe5
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/alloc_pages_sys_start.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 AllocPagesSysStartFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional uint32 order = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/dma_alloc_contiguous_retry.proto b/protos/perfetto/trace/ftrace/dma_alloc_contiguous_retry.proto
new file mode 100644
index 0000000..6b2a446
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/dma_alloc_contiguous_retry.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 DmaAllocContiguousRetryFtraceEvent {
+ optional int32 tries = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 52b8f98..876887b 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -265,6 +265,48 @@
import "perfetto/trace/ftrace/f2fs_write_begin.proto";
import "perfetto/trace/ftrace/f2fs_write_checkpoint.proto";
import "perfetto/trace/ftrace/f2fs_write_end.proto";
+import "perfetto/trace/ftrace/alloc_pages_iommu_end.proto";
+import "perfetto/trace/ftrace/alloc_pages_iommu_fail.proto";
+import "perfetto/trace/ftrace/alloc_pages_iommu_start.proto";
+import "perfetto/trace/ftrace/alloc_pages_sys_end.proto";
+import "perfetto/trace/ftrace/alloc_pages_sys_fail.proto";
+import "perfetto/trace/ftrace/alloc_pages_sys_start.proto";
+import "perfetto/trace/ftrace/dma_alloc_contiguous_retry.proto";
+import "perfetto/trace/ftrace/iommu_map_range.proto";
+import "perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto";
+import "perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto";
+import "perfetto/trace/ftrace/ion_alloc_buffer_end.proto";
+import "perfetto/trace/ftrace/ion_alloc_buffer_fail.proto";
+import "perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto";
+import "perfetto/trace/ftrace/ion_alloc_buffer_start.proto";
+import "perfetto/trace/ftrace/ion_cp_alloc_retry.proto";
+import "perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto";
+import "perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto";
+import "perfetto/trace/ftrace/ion_prefetching.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto";
+import "perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto";
+import "perfetto/trace/ftrace/kfree.proto";
+import "perfetto/trace/ftrace/kmalloc.proto";
+import "perfetto/trace/ftrace/kmalloc_node.proto";
+import "perfetto/trace/ftrace/kmem_cache_alloc.proto";
+import "perfetto/trace/ftrace/kmem_cache_alloc_node.proto";
+import "perfetto/trace/ftrace/kmem_cache_free.proto";
+import "perfetto/trace/ftrace/migrate_pages_end.proto";
+import "perfetto/trace/ftrace/migrate_pages_start.proto";
+import "perfetto/trace/ftrace/migrate_retry.proto";
+import "perfetto/trace/ftrace/mm_page_alloc.proto";
+import "perfetto/trace/ftrace/mm_page_alloc_extfrag.proto";
+import "perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto";
+import "perfetto/trace/ftrace/mm_page_free.proto";
+import "perfetto/trace/ftrace/mm_page_free_batched.proto";
+import "perfetto/trace/ftrace/mm_page_pcpu_drain.proto";
+import "perfetto/trace/ftrace/rss_stat.proto";
+import "perfetto/trace/ftrace/ion_heap_shrink.proto";
+import "perfetto/trace/ftrace/ion_heap_grow.proto";
package perfetto.protos;
@@ -564,5 +606,49 @@
F2fsWriteBeginFtraceEvent f2fs_write_begin = 271;
F2fsWriteCheckpointFtraceEvent f2fs_write_checkpoint = 272;
F2fsWriteEndFtraceEvent f2fs_write_end = 273;
+ AllocPagesIommuEndFtraceEvent alloc_pages_iommu_end = 274;
+ AllocPagesIommuFailFtraceEvent alloc_pages_iommu_fail = 275;
+ AllocPagesIommuStartFtraceEvent alloc_pages_iommu_start = 276;
+ AllocPagesSysEndFtraceEvent alloc_pages_sys_end = 277;
+ AllocPagesSysFailFtraceEvent alloc_pages_sys_fail = 278;
+ AllocPagesSysStartFtraceEvent alloc_pages_sys_start = 279;
+ DmaAllocContiguousRetryFtraceEvent dma_alloc_contiguous_retry = 280;
+ IommuMapRangeFtraceEvent iommu_map_range = 281;
+ IommuSecPtblMapRangeEndFtraceEvent iommu_sec_ptbl_map_range_end = 282;
+ IommuSecPtblMapRangeStartFtraceEvent iommu_sec_ptbl_map_range_start = 283;
+ IonAllocBufferEndFtraceEvent ion_alloc_buffer_end = 284;
+ IonAllocBufferFailFtraceEvent ion_alloc_buffer_fail = 285;
+ IonAllocBufferFallbackFtraceEvent ion_alloc_buffer_fallback = 286;
+ IonAllocBufferStartFtraceEvent ion_alloc_buffer_start = 287;
+ IonCpAllocRetryFtraceEvent ion_cp_alloc_retry = 288;
+ IonCpSecureBufferEndFtraceEvent ion_cp_secure_buffer_end = 289;
+ IonCpSecureBufferStartFtraceEvent ion_cp_secure_buffer_start = 290;
+ IonPrefetchingFtraceEvent ion_prefetching = 291;
+ IonSecureCmaAddToPoolEndFtraceEvent ion_secure_cma_add_to_pool_end = 292;
+ IonSecureCmaAddToPoolStartFtraceEvent ion_secure_cma_add_to_pool_start =
+ 293;
+ IonSecureCmaAllocateEndFtraceEvent ion_secure_cma_allocate_end = 294;
+ IonSecureCmaAllocateStartFtraceEvent ion_secure_cma_allocate_start = 295;
+ IonSecureCmaShrinkPoolEndFtraceEvent ion_secure_cma_shrink_pool_end = 296;
+ IonSecureCmaShrinkPoolStartFtraceEvent ion_secure_cma_shrink_pool_start =
+ 297;
+ KfreeFtraceEvent kfree = 298;
+ KmallocFtraceEvent kmalloc = 299;
+ KmallocNodeFtraceEvent kmalloc_node = 300;
+ KmemCacheAllocFtraceEvent kmem_cache_alloc = 301;
+ KmemCacheAllocNodeFtraceEvent kmem_cache_alloc_node = 302;
+ KmemCacheFreeFtraceEvent kmem_cache_free = 303;
+ MigratePagesEndFtraceEvent migrate_pages_end = 304;
+ MigratePagesStartFtraceEvent migrate_pages_start = 305;
+ MigrateRetryFtraceEvent migrate_retry = 306;
+ MmPageAllocFtraceEvent mm_page_alloc = 307;
+ MmPageAllocExtfragFtraceEvent mm_page_alloc_extfrag = 308;
+ MmPageAllocZoneLockedFtraceEvent mm_page_alloc_zone_locked = 309;
+ MmPageFreeFtraceEvent mm_page_free = 310;
+ MmPageFreeBatchedFtraceEvent mm_page_free_batched = 311;
+ MmPagePcpuDrainFtraceEvent mm_page_pcpu_drain = 312;
+ RssStatFtraceEvent rss_stat = 313;
+ IonHeapShrinkFtraceEvent ion_heap_shrink = 314;
+ IonHeapGrowFtraceEvent ion_heap_grow = 315;
}
}
diff --git a/protos/perfetto/trace/ftrace/iommu_map_range.proto b/protos/perfetto/trace/ftrace/iommu_map_range.proto
new file mode 100644
index 0000000..6fcfb16
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/iommu_map_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 IommuMapRangeFtraceEvent {
+ optional uint64 chunk_size = 1;
+ optional uint64 len = 2;
+ optional uint64 pa = 3;
+ optional uint64 va = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto b/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_end.proto
new file mode 100644
index 0000000..99ab7ca
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_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 IommuSecPtblMapRangeEndFtraceEvent {
+ optional uint64 len = 1;
+ optional int32 num = 2;
+ optional uint32 pa = 3;
+ optional int32 sec_id = 4;
+ optional uint64 va = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto b/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.proto
new file mode 100644
index 0000000..3294700
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/iommu_sec_ptbl_map_range_start.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 IommuSecPtblMapRangeStartFtraceEvent {
+ optional uint64 len = 1;
+ optional int32 num = 2;
+ optional uint32 pa = 3;
+ optional int32 sec_id = 4;
+ optional uint64 va = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto b/protos/perfetto/trace/ftrace/ion_alloc_buffer_end.proto
new file mode 100644
index 0000000..f863628
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_alloc_buffer_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 IonAllocBufferEndFtraceEvent {
+ optional string client_name = 1;
+ optional uint32 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+ optional uint32 mask = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto b/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.proto
new file mode 100644
index 0000000..d947c8f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_alloc_buffer_fail.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 IonAllocBufferFailFtraceEvent {
+ optional string client_name = 1;
+ optional int64 error = 2;
+ optional uint32 flags = 3;
+ optional string heap_name = 4;
+ optional uint64 len = 5;
+ optional uint32 mask = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto b/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.proto
new file mode 100644
index 0000000..aae6dc4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_alloc_buffer_fallback.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 IonAllocBufferFallbackFtraceEvent {
+ optional string client_name = 1;
+ optional int64 error = 2;
+ optional uint32 flags = 3;
+ optional string heap_name = 4;
+ optional uint64 len = 5;
+ optional uint32 mask = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto b/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.proto
new file mode 100644
index 0000000..275f048
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_alloc_buffer_start.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 IonAllocBufferStartFtraceEvent {
+ optional string client_name = 1;
+ optional uint32 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+ optional uint32 mask = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto b/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.proto
new file mode 100644
index 0000000..9f74112
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_cp_alloc_retry.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 IonCpAllocRetryFtraceEvent {
+ optional int32 tries = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto b/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.proto
new file mode 100644
index 0000000..ecc4c56
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_end.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 IonCpSecureBufferEndFtraceEvent {
+ optional uint64 align = 1;
+ optional uint64 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto b/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_start.proto
new file mode 100644
index 0000000..4169e23
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_cp_secure_buffer_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 IonCpSecureBufferStartFtraceEvent {
+ optional uint64 align = 1;
+ optional uint64 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_heap_grow.proto b/protos/perfetto/trace/ftrace/ion_heap_grow.proto
new file mode 100644
index 0000000..9dc93d4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_heap_grow.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 IonHeapGrowFtraceEvent {
+ optional string heap_name = 1;
+ optional uint64 len = 2;
+ optional int64 total_allocated = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_heap_shrink.proto b/protos/perfetto/trace/ftrace/ion_heap_shrink.proto
new file mode 100644
index 0000000..ba381f2
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_heap_shrink.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 IonHeapShrinkFtraceEvent {
+ optional string heap_name = 1;
+ optional uint64 len = 2;
+ optional int64 total_allocated = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_prefetching.proto b/protos/perfetto/trace/ftrace/ion_prefetching.proto
new file mode 100644
index 0000000..b65651e
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_prefetching.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 IonPrefetchingFtraceEvent {
+ optional uint64 len = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.proto
new file mode 100644
index 0000000..bab06b9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_end.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 IonSecureCmaAddToPoolEndFtraceEvent {
+ optional uint32 is_prefetch = 1;
+ optional uint64 len = 2;
+ optional int32 pool_total = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.proto
new file mode 100644
index 0000000..644f945
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_add_to_pool_start.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 IonSecureCmaAddToPoolStartFtraceEvent {
+ optional uint32 is_prefetch = 1;
+ optional uint64 len = 2;
+ optional int32 pool_total = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.proto
new file mode 100644
index 0000000..da89cda
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_end.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 IonSecureCmaAllocateEndFtraceEvent {
+ optional uint64 align = 1;
+ optional uint64 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_start.proto
new file mode 100644
index 0000000..17aa8b9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_allocate_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 IonSecureCmaAllocateStartFtraceEvent {
+ optional uint64 align = 1;
+ optional uint64 flags = 2;
+ optional string heap_name = 3;
+ optional uint64 len = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.proto
new file mode 100644
index 0000000..7323fce
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_end.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 IonSecureCmaShrinkPoolEndFtraceEvent {
+ optional uint64 drained_size = 1;
+ optional uint64 skipped_size = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto b/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.proto
new file mode 100644
index 0000000..e8ec021
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/ion_secure_cma_shrink_pool_start.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 IonSecureCmaShrinkPoolStartFtraceEvent {
+ optional uint64 drained_size = 1;
+ optional uint64 skipped_size = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/kfree.proto b/protos/perfetto/trace/ftrace/kfree.proto
new file mode 100644
index 0000000..2597408
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kfree.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 KfreeFtraceEvent {
+ optional uint64 call_site = 1;
+ optional uint64 ptr = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/kmalloc.proto b/protos/perfetto/trace/ftrace/kmalloc.proto
new file mode 100644
index 0000000..d4b4f91
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kmalloc.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 KmallocFtraceEvent {
+ optional uint64 bytes_alloc = 1;
+ optional uint64 bytes_req = 2;
+ optional uint64 call_site = 3;
+ optional uint32 gfp_flags = 4;
+ optional uint64 ptr = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/kmalloc_node.proto b/protos/perfetto/trace/ftrace/kmalloc_node.proto
new file mode 100644
index 0000000..9dd5abe
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kmalloc_node.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 KmallocNodeFtraceEvent {
+ optional uint64 bytes_alloc = 1;
+ optional uint64 bytes_req = 2;
+ optional uint64 call_site = 3;
+ optional uint32 gfp_flags = 4;
+ optional int32 node = 5;
+ optional uint64 ptr = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/kmem_cache_alloc.proto b/protos/perfetto/trace/ftrace/kmem_cache_alloc.proto
new file mode 100644
index 0000000..6f541b9
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kmem_cache_alloc.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 KmemCacheAllocFtraceEvent {
+ optional uint64 bytes_alloc = 1;
+ optional uint64 bytes_req = 2;
+ optional uint64 call_site = 3;
+ optional uint32 gfp_flags = 4;
+ optional uint64 ptr = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto b/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.proto
new file mode 100644
index 0000000..50eee66
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kmem_cache_alloc_node.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 KmemCacheAllocNodeFtraceEvent {
+ optional uint64 bytes_alloc = 1;
+ optional uint64 bytes_req = 2;
+ optional uint64 call_site = 3;
+ optional uint32 gfp_flags = 4;
+ optional int32 node = 5;
+ optional uint64 ptr = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/kmem_cache_free.proto b/protos/perfetto/trace/ftrace/kmem_cache_free.proto
new file mode 100644
index 0000000..b079406
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/kmem_cache_free.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 KmemCacheFreeFtraceEvent {
+ optional uint64 call_site = 1;
+ optional uint64 ptr = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/migrate_pages_end.proto b/protos/perfetto/trace/ftrace/migrate_pages_end.proto
new file mode 100644
index 0000000..a662b2b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/migrate_pages_end.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 MigratePagesEndFtraceEvent {
+ optional int32 mode = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/migrate_pages_start.proto b/protos/perfetto/trace/ftrace/migrate_pages_start.proto
new file mode 100644
index 0000000..29b7f69
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/migrate_pages_start.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 MigratePagesStartFtraceEvent {
+ optional int32 mode = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/migrate_retry.proto b/protos/perfetto/trace/ftrace/migrate_retry.proto
new file mode 100644
index 0000000..8c25190
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/migrate_retry.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 MigrateRetryFtraceEvent {
+ optional int32 tries = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_alloc.proto b/protos/perfetto/trace/ftrace/mm_page_alloc.proto
new file mode 100644
index 0000000..ca07943
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_alloc.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 MmPageAllocFtraceEvent {
+ optional uint32 gfp_flags = 1;
+ optional int32 migratetype = 2;
+ optional uint32 order = 3;
+ optional uint64 page = 4;
+ optional uint64 pfn = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto b/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.proto
new file mode 100644
index 0000000..9fb73f8c
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_alloc_extfrag.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 MmPageAllocExtfragFtraceEvent {
+ optional int32 alloc_migratetype = 1;
+ optional int32 alloc_order = 2;
+ optional int32 fallback_migratetype = 3;
+ optional int32 fallback_order = 4;
+ optional uint64 page = 5;
+ optional int32 change_ownership = 6;
+ optional uint64 pfn = 7;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto b/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.proto
new file mode 100644
index 0000000..9562231
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_alloc_zone_locked.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 MmPageAllocZoneLockedFtraceEvent {
+ optional int32 migratetype = 1;
+ optional uint32 order = 2;
+ optional uint64 page = 3;
+ optional uint64 pfn = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_free.proto b/protos/perfetto/trace/ftrace/mm_page_free.proto
new file mode 100644
index 0000000..0c3083f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_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 MmPageFreeFtraceEvent {
+ optional uint32 order = 1;
+ optional uint64 page = 2;
+ optional uint64 pfn = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_free_batched.proto b/protos/perfetto/trace/ftrace/mm_page_free_batched.proto
new file mode 100644
index 0000000..65cabd6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_free_batched.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 MmPageFreeBatchedFtraceEvent {
+ optional int32 cold = 1;
+ optional uint64 page = 2;
+ optional uint64 pfn = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto b/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.proto
new file mode 100644
index 0000000..a10dfcb
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_page_pcpu_drain.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 MmPagePcpuDrainFtraceEvent {
+ optional int32 migratetype = 1;
+ optional uint32 order = 2;
+ optional uint64 page = 3;
+ optional uint64 pfn = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/rss_stat.proto b/protos/perfetto/trace/ftrace/rss_stat.proto
new file mode 100644
index 0000000..c3470d5
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/rss_stat.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 RssStatFtraceEvent {
+ optional int32 member = 1;
+ optional int64 size = 2;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 19dbd0c..23003fe 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -506,6 +506,48 @@
F2fsWriteBeginFtraceEvent f2fs_write_begin = 271;
// removed field with id 272
F2fsWriteEndFtraceEvent f2fs_write_end = 273;
+ // removed field with id 274
+ // removed field with id 275
+ // removed field with id 276
+ // removed field with id 277
+ // removed field with id 278
+ // removed field with id 279
+ // removed field with id 280
+ // removed field with id 281
+ // removed field with id 282
+ // removed field with id 283
+ // removed field with id 284
+ // removed field with id 285
+ // removed field with id 286
+ // removed field with id 287
+ // removed field with id 288
+ // removed field with id 289
+ // removed field with id 290
+ // removed field with id 291
+ // removed field with id 292
+ // removed field with id 293
+ // removed field with id 294
+ // removed field with id 295
+ // removed field with id 296
+ // removed field with id 297
+ // removed field with id 298
+ // removed field with id 299
+ // removed field with id 300
+ // removed field with id 301
+ // removed field with id 302
+ // removed field with id 303
+ // removed field with id 304
+ // removed field with id 305
+ // removed field with id 306
+ // removed field with id 307
+ // removed field with id 308
+ // removed field with id 309
+ // removed field with id 310
+ // removed field with id 311
+ // removed field with id 312
+ // removed field with id 313
+ // removed field with id 314
+ // removed field with id 315
}
}
diff --git a/src/base/watchdog_posix.cc b/src/base/watchdog_posix.cc
index 85cbb96..82cd6ac 100644
--- a/src/base/watchdog_posix.cc
+++ b/src/base/watchdog_posix.cc
@@ -65,15 +65,11 @@
Watchdog::~Watchdog() {
if (!thread_.joinable()) {
- PERFETTO_DCHECK(quit_);
+ PERFETTO_DCHECK(!enabled_);
return;
}
-
- {
- std::lock_guard<std::mutex> guard(mutex_);
- PERFETTO_DCHECK(!quit_);
- quit_ = true;
- }
+ PERFETTO_DCHECK(enabled_);
+ enabled_ = false;
exit_signal_.notify_one();
thread_.join();
}
@@ -84,20 +80,23 @@
}
Watchdog::Timer Watchdog::CreateFatalTimer(uint32_t ms) {
+ if (!enabled_.load(std::memory_order_relaxed))
+ return Watchdog::Timer(0);
+
return Watchdog::Timer(ms);
}
void Watchdog::Start() {
std::lock_guard<std::mutex> guard(mutex_);
if (thread_.joinable()) {
- PERFETTO_DCHECK(!quit_);
+ PERFETTO_DCHECK(enabled_);
} else {
- PERFETTO_DCHECK(quit_);
+ PERFETTO_DCHECK(!enabled_);
#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
// Kick the thread to start running but only on Android or Linux.
- quit_ = false;
+ enabled_ = true;
thread_ = std::thread(&Watchdog::ThreadMain, this);
#endif
}
@@ -137,7 +136,7 @@
for (;;) {
exit_signal_.wait_for(guard,
std::chrono::milliseconds(polling_interval_ms_));
- if (quit_)
+ if (!enabled_)
return;
lseek(stat_fd.get(), 0, SEEK_SET);
@@ -240,6 +239,9 @@
}
Watchdog::Timer::Timer(uint32_t ms) {
+ if (!ms)
+ return; // No-op timer created when the watchdog is disabled.
+
struct sigevent sev = {};
sev.sigev_notify = SIGEV_SIGNAL;
sev.sigev_signo = SIGABRT;
diff --git a/src/base/watchdog_unittest.cc b/src/base/watchdog_unittest.cc
index 3adc261..46f44fd 100644
--- a/src/base/watchdog_unittest.cc
+++ b/src/base/watchdog_unittest.cc
@@ -21,7 +21,9 @@
#include "perfetto/base/page_allocator.h"
#include <time.h>
+
#include <map>
+#include <memory>
namespace perfetto {
namespace base {
@@ -35,11 +37,19 @@
TestWatchdog(TestWatchdog&& other) noexcept = default;
};
+TEST(WatchdogTest, NoTimerCrashIfNotEnabled) {
+ // CreateFatalTimer should be a noop if the watchdog is not enabled.
+ TestWatchdog watchdog(100);
+ auto handle = watchdog.CreateFatalTimer(1);
+ usleep(100 * 1000);
+}
+
TEST(WatchdogTest, TimerCrash) {
// Create a timer for 20 ms and don't release wihin the time.
EXPECT_DEATH(
{
TestWatchdog watchdog(100);
+ watchdog.Start();
auto handle = watchdog.CreateFatalTimer(20);
usleep(200 * 1000);
},
@@ -51,6 +61,7 @@
EXPECT_DEATH(
{
TestWatchdog watchdog(100);
+ watchdog.Start();
timers.emplace(0, watchdog.CreateFatalTimer(20));
usleep(200 * 1000);
},
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index b8c1896..fcc910a 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -3236,6 +3236,482 @@
event->fields.push_back(MakeField("copied", 5, kProtoUint32));
}
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_iommu_end";
+ event->group = "kmem";
+ event->proto_field_id = 274;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_iommu_fail";
+ event->group = "kmem";
+ event->proto_field_id = 275;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_iommu_start";
+ event->group = "kmem";
+ event->proto_field_id = 276;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_sys_end";
+ event->group = "kmem";
+ event->proto_field_id = 277;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_sys_fail";
+ event->group = "kmem";
+ event->proto_field_id = 278;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "alloc_pages_sys_start";
+ event->group = "kmem";
+ event->proto_field_id = 279;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "dma_alloc_contiguous_retry";
+ event->group = "kmem";
+ event->proto_field_id = 280;
+ event->fields.push_back(MakeField("tries", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "iommu_map_range";
+ event->group = "kmem";
+ event->proto_field_id = 281;
+ event->fields.push_back(MakeField("chunk_size", 1, kProtoUint64));
+ event->fields.push_back(MakeField("len", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pa", 3, kProtoUint64));
+ event->fields.push_back(MakeField("va", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "iommu_sec_ptbl_map_range_end";
+ event->group = "kmem";
+ event->proto_field_id = 282;
+ event->fields.push_back(MakeField("len", 1, kProtoUint64));
+ event->fields.push_back(MakeField("num", 2, kProtoInt32));
+ event->fields.push_back(MakeField("pa", 3, kProtoUint32));
+ event->fields.push_back(MakeField("sec_id", 4, kProtoInt32));
+ event->fields.push_back(MakeField("va", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "iommu_sec_ptbl_map_range_start";
+ event->group = "kmem";
+ event->proto_field_id = 283;
+ event->fields.push_back(MakeField("len", 1, kProtoUint64));
+ event->fields.push_back(MakeField("num", 2, kProtoInt32));
+ event->fields.push_back(MakeField("pa", 3, kProtoUint32));
+ event->fields.push_back(MakeField("sec_id", 4, kProtoInt32));
+ event->fields.push_back(MakeField("va", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_alloc_buffer_end";
+ event->group = "kmem";
+ event->proto_field_id = 284;
+ event->fields.push_back(MakeField("client_name", 1, kProtoString));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint32));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ event->fields.push_back(MakeField("mask", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_alloc_buffer_fail";
+ event->group = "kmem";
+ event->proto_field_id = 285;
+ event->fields.push_back(MakeField("client_name", 1, kProtoString));
+ event->fields.push_back(MakeField("error", 2, kProtoInt64));
+ event->fields.push_back(MakeField("flags", 3, kProtoUint32));
+ event->fields.push_back(MakeField("heap_name", 4, kProtoString));
+ event->fields.push_back(MakeField("len", 5, kProtoUint64));
+ event->fields.push_back(MakeField("mask", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_alloc_buffer_fallback";
+ event->group = "kmem";
+ event->proto_field_id = 286;
+ event->fields.push_back(MakeField("client_name", 1, kProtoString));
+ event->fields.push_back(MakeField("error", 2, kProtoInt64));
+ event->fields.push_back(MakeField("flags", 3, kProtoUint32));
+ event->fields.push_back(MakeField("heap_name", 4, kProtoString));
+ event->fields.push_back(MakeField("len", 5, kProtoUint64));
+ event->fields.push_back(MakeField("mask", 6, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_alloc_buffer_start";
+ event->group = "kmem";
+ event->proto_field_id = 287;
+ event->fields.push_back(MakeField("client_name", 1, kProtoString));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint32));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ event->fields.push_back(MakeField("mask", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_cp_alloc_retry";
+ event->group = "kmem";
+ event->proto_field_id = 288;
+ event->fields.push_back(MakeField("tries", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_cp_secure_buffer_end";
+ event->group = "kmem";
+ event->proto_field_id = 289;
+ event->fields.push_back(MakeField("align", 1, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint64));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_cp_secure_buffer_start";
+ event->group = "kmem";
+ event->proto_field_id = 290;
+ event->fields.push_back(MakeField("align", 1, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint64));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_prefetching";
+ event->group = "kmem";
+ event->proto_field_id = 291;
+ event->fields.push_back(MakeField("len", 1, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_add_to_pool_end";
+ event->group = "kmem";
+ event->proto_field_id = 292;
+ event->fields.push_back(MakeField("is_prefetch", 1, kProtoUint32));
+ event->fields.push_back(MakeField("len", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pool_total", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_add_to_pool_start";
+ event->group = "kmem";
+ event->proto_field_id = 293;
+ event->fields.push_back(MakeField("is_prefetch", 1, kProtoUint32));
+ event->fields.push_back(MakeField("len", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pool_total", 3, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_allocate_end";
+ event->group = "kmem";
+ event->proto_field_id = 294;
+ event->fields.push_back(MakeField("align", 1, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint64));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_allocate_start";
+ event->group = "kmem";
+ event->proto_field_id = 295;
+ event->fields.push_back(MakeField("align", 1, kProtoUint64));
+ event->fields.push_back(MakeField("flags", 2, kProtoUint64));
+ event->fields.push_back(MakeField("heap_name", 3, kProtoString));
+ event->fields.push_back(MakeField("len", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_shrink_pool_end";
+ event->group = "kmem";
+ event->proto_field_id = 296;
+ event->fields.push_back(MakeField("drained_size", 1, kProtoUint64));
+ event->fields.push_back(MakeField("skipped_size", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_secure_cma_shrink_pool_start";
+ event->group = "kmem";
+ event->proto_field_id = 297;
+ event->fields.push_back(MakeField("drained_size", 1, kProtoUint64));
+ event->fields.push_back(MakeField("skipped_size", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kfree";
+ event->group = "kmem";
+ event->proto_field_id = 298;
+ event->fields.push_back(MakeField("call_site", 1, kProtoUint64));
+ event->fields.push_back(MakeField("ptr", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kmalloc";
+ event->group = "kmem";
+ event->proto_field_id = 299;
+ event->fields.push_back(MakeField("bytes_alloc", 1, kProtoUint64));
+ event->fields.push_back(MakeField("bytes_req", 2, kProtoUint64));
+ event->fields.push_back(MakeField("call_site", 3, kProtoUint64));
+ event->fields.push_back(MakeField("gfp_flags", 4, kProtoUint32));
+ event->fields.push_back(MakeField("ptr", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kmalloc_node";
+ event->group = "kmem";
+ event->proto_field_id = 300;
+ event->fields.push_back(MakeField("bytes_alloc", 1, kProtoUint64));
+ event->fields.push_back(MakeField("bytes_req", 2, kProtoUint64));
+ event->fields.push_back(MakeField("call_site", 3, kProtoUint64));
+ event->fields.push_back(MakeField("gfp_flags", 4, kProtoUint32));
+ event->fields.push_back(MakeField("node", 5, kProtoInt32));
+ event->fields.push_back(MakeField("ptr", 6, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kmem_cache_alloc";
+ event->group = "kmem";
+ event->proto_field_id = 301;
+ event->fields.push_back(MakeField("bytes_alloc", 1, kProtoUint64));
+ event->fields.push_back(MakeField("bytes_req", 2, kProtoUint64));
+ event->fields.push_back(MakeField("call_site", 3, kProtoUint64));
+ event->fields.push_back(MakeField("gfp_flags", 4, kProtoUint32));
+ event->fields.push_back(MakeField("ptr", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kmem_cache_alloc_node";
+ event->group = "kmem";
+ event->proto_field_id = 302;
+ event->fields.push_back(MakeField("bytes_alloc", 1, kProtoUint64));
+ event->fields.push_back(MakeField("bytes_req", 2, kProtoUint64));
+ event->fields.push_back(MakeField("call_site", 3, kProtoUint64));
+ event->fields.push_back(MakeField("gfp_flags", 4, kProtoUint32));
+ event->fields.push_back(MakeField("node", 5, kProtoInt32));
+ event->fields.push_back(MakeField("ptr", 6, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "kmem_cache_free";
+ event->group = "kmem";
+ event->proto_field_id = 303;
+ event->fields.push_back(MakeField("call_site", 1, kProtoUint64));
+ event->fields.push_back(MakeField("ptr", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "migrate_pages_end";
+ event->group = "kmem";
+ event->proto_field_id = 304;
+ event->fields.push_back(MakeField("mode", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "migrate_pages_start";
+ event->group = "kmem";
+ event->proto_field_id = 305;
+ event->fields.push_back(MakeField("mode", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "migrate_retry";
+ event->group = "kmem";
+ event->proto_field_id = 306;
+ event->fields.push_back(MakeField("tries", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_alloc";
+ event->group = "kmem";
+ event->proto_field_id = 307;
+ event->fields.push_back(MakeField("gfp_flags", 1, kProtoUint32));
+ event->fields.push_back(MakeField("migratetype", 2, kProtoInt32));
+ event->fields.push_back(MakeField("order", 3, kProtoUint32));
+ event->fields.push_back(MakeField("page", 4, kProtoUint64));
+ event->fields.push_back(MakeField("pfn", 5, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_alloc_extfrag";
+ event->group = "kmem";
+ event->proto_field_id = 308;
+ event->fields.push_back(MakeField("alloc_migratetype", 1, kProtoInt32));
+ event->fields.push_back(MakeField("alloc_order", 2, kProtoInt32));
+ event->fields.push_back(MakeField("fallback_migratetype", 3, kProtoInt32));
+ event->fields.push_back(MakeField("fallback_order", 4, kProtoInt32));
+ event->fields.push_back(MakeField("page", 5, kProtoUint64));
+ event->fields.push_back(MakeField("change_ownership", 6, kProtoInt32));
+ event->fields.push_back(MakeField("pfn", 7, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_alloc_zone_locked";
+ event->group = "kmem";
+ event->proto_field_id = 309;
+ event->fields.push_back(MakeField("migratetype", 1, kProtoInt32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ event->fields.push_back(MakeField("page", 3, kProtoUint64));
+ event->fields.push_back(MakeField("pfn", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_free";
+ event->group = "kmem";
+ event->proto_field_id = 310;
+ event->fields.push_back(MakeField("order", 1, kProtoUint32));
+ event->fields.push_back(MakeField("page", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pfn", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_free_batched";
+ event->group = "kmem";
+ event->proto_field_id = 311;
+ event->fields.push_back(MakeField("cold", 1, kProtoInt32));
+ event->fields.push_back(MakeField("page", 2, kProtoUint64));
+ event->fields.push_back(MakeField("pfn", 3, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_page_pcpu_drain";
+ event->group = "kmem";
+ event->proto_field_id = 312;
+ event->fields.push_back(MakeField("migratetype", 1, kProtoInt32));
+ event->fields.push_back(MakeField("order", 2, kProtoUint32));
+ event->fields.push_back(MakeField("page", 3, kProtoUint64));
+ event->fields.push_back(MakeField("pfn", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "rss_stat";
+ event->group = "kmem";
+ event->proto_field_id = 313;
+ event->fields.push_back(MakeField("member", 1, kProtoInt32));
+ event->fields.push_back(MakeField("size", 2, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_heap_shrink";
+ event->group = "kmem";
+ event->proto_field_id = 314;
+ event->fields.push_back(MakeField("heap_name", 1, kProtoString));
+ event->fields.push_back(MakeField("len", 2, kProtoUint64));
+ event->fields.push_back(MakeField("total_allocated", 3, kProtoInt64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "ion_heap_grow";
+ event->group = "kmem";
+ event->proto_field_id = 315;
+ event->fields.push_back(MakeField("heap_name", 1, kProtoString));
+ event->fields.push_back(MakeField("len", 2, kProtoUint64));
+ event->fields.push_back(MakeField("total_allocated", 3, kProtoInt64));
+ }
+
return events;
}
diff --git a/src/traced/probes/ftrace/test/data/synthetic/available_events b/src/traced/probes/ftrace/test/data/synthetic/available_events
index 277a792..368906d 100644
--- a/src/traced/probes/ftrace/test/data/synthetic/available_events
+++ b/src/traced/probes/ftrace/test/data/synthetic/available_events
@@ -1,2 +1,4 @@
sched:sched_switch
-
+kmem:ion_heap_grow
+kmem:ion_heap_shrink
+kmem:rss_stat
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_grow/format b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_grow/format
new file mode 100644
index 0000000..a11f84f
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_grow/format
@@ -0,0 +1,13 @@
+name: ion_heap_grow
+ID: 219
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:const char * heap_name; offset:8; size:8; signed:0;
+ field:size_t len; offset:16; size:8; signed:0;
+ field:long total_allocated; offset:24; size:8; signed:1;
+
+print fmt: "heap_name=%s, len=%zu, total_allocated=%ld", REC->heap_name, REC->len, REC->total_allocated
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_shrink/format b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_shrink/format
new file mode 100644
index 0000000..c04eb4c
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/ion_heap_shrink/format
@@ -0,0 +1,13 @@
+name: ion_heap_shrink
+ID: 220
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:const char * heap_name; offset:8; size:8; signed:0;
+ field:size_t len; offset:16; size:8; signed:0;
+ field:long total_allocated; offset:24; size:8; signed:1;
+
+print fmt: "heap_name=%s, len=%zu, total_allocated=%ld", REC->heap_name, REC->len, REC->total_allocated
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/kmem/rss_stat/format b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/rss_stat/format
new file mode 100644
index 0000000..69d1c9c
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/kmem/rss_stat/format
@@ -0,0 +1,12 @@
+name: rss_stat
+ID: 243
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int member; offset:8; size:4; signed:1;
+ field:long size; offset:16; size:8; signed:1;
+
+print fmt: "member=%d size=%ldKB", REC->member, REC->size
diff --git a/tools/ftrace_proto_gen/event_whitelist b/tools/ftrace_proto_gen/event_whitelist
index cfa1e15..93b5784 100644
--- a/tools/ftrace_proto_gen/event_whitelist
+++ b/tools/ftrace_proto_gen/event_whitelist
@@ -269,3 +269,45 @@
f2fs/f2fs_write_begin
f2fs/f2fs_write_checkpoint
f2fs/f2fs_write_end
+kmem/alloc_pages_iommu_end
+kmem/alloc_pages_iommu_fail
+kmem/alloc_pages_iommu_start
+kmem/alloc_pages_sys_end
+kmem/alloc_pages_sys_fail
+kmem/alloc_pages_sys_start
+kmem/dma_alloc_contiguous_retry
+kmem/iommu_map_range
+kmem/iommu_sec_ptbl_map_range_end
+kmem/iommu_sec_ptbl_map_range_start
+kmem/ion_alloc_buffer_end
+kmem/ion_alloc_buffer_fail
+kmem/ion_alloc_buffer_fallback
+kmem/ion_alloc_buffer_start
+kmem/ion_cp_alloc_retry
+kmem/ion_cp_secure_buffer_end
+kmem/ion_cp_secure_buffer_start
+kmem/ion_prefetching
+kmem/ion_secure_cma_add_to_pool_end
+kmem/ion_secure_cma_add_to_pool_start
+kmem/ion_secure_cma_allocate_end
+kmem/ion_secure_cma_allocate_start
+kmem/ion_secure_cma_shrink_pool_end
+kmem/ion_secure_cma_shrink_pool_start
+kmem/kfree
+kmem/kmalloc
+kmem/kmalloc_node
+kmem/kmem_cache_alloc
+kmem/kmem_cache_alloc_node
+kmem/kmem_cache_free
+kmem/migrate_pages_end
+kmem/migrate_pages_start
+kmem/migrate_retry
+kmem/mm_page_alloc
+kmem/mm_page_alloc_extfrag
+kmem/mm_page_alloc_zone_locked
+kmem/mm_page_free
+kmem/mm_page_free_batched
+kmem/mm_page_pcpu_drain
+kmem/rss_stat
+kmem/ion_heap_shrink
+kmem/ion_heap_grow
\ No newline at end of file