Adding ftrace_events for events useful for long running traces
Bug: 72931698
Change-Id: I01f5005de61d2d9df1eb1d4c2fd8667d61e62dde
diff --git a/Android.bp b/Android.bp
index 6b350eb..ad0d4d1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -408,6 +408,20 @@
"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/mm_compaction_begin.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_deferred.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_end.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_finished.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_suitable.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto",
+ "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_vmscan_direct_reclaim_begin.proto",
@@ -427,6 +441,7 @@
"protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
"protos/perfetto/trace/ftrace/sched_switch.proto",
"protos/perfetto/trace/ftrace/sched_wakeup.proto",
+ "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
"protos/perfetto/trace/ftrace/sched_waking.proto",
"protos/perfetto/trace/ftrace/smbus_read.proto",
"protos/perfetto/trace/ftrace/smbus_reply.proto",
@@ -435,6 +450,7 @@
"protos/perfetto/trace/ftrace/softirq_entry.proto",
"protos/perfetto/trace/ftrace/softirq_exit.proto",
"protos/perfetto/trace/ftrace/softirq_raise.proto",
+ "protos/perfetto/trace/ftrace/suspend_resume.proto",
"protos/perfetto/trace/ftrace/sync_pt.proto",
"protos/perfetto/trace/ftrace/sync_timeline.proto",
"protos/perfetto/trace/ftrace/sync_wait.proto",
@@ -513,6 +529,20 @@
"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/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",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_deferred.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_end.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_finished.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_migratepages.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_suitable.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.pb.cc",
+ "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_vmscan_direct_reclaim_begin.pb.cc",
@@ -532,6 +562,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_waking.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_read.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_reply.pb.cc",
@@ -540,6 +571,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/softirq_entry.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_exit.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_raise.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/suspend_resume.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pb.cc",
@@ -619,6 +651,20 @@
"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/mm_compaction_begin.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_deferred.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_end.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_finished.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_suitable.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto",
+ "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_vmscan_direct_reclaim_begin.proto",
@@ -638,6 +684,7 @@
"protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
"protos/perfetto/trace/ftrace/sched_switch.proto",
"protos/perfetto/trace/ftrace/sched_wakeup.proto",
+ "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
"protos/perfetto/trace/ftrace/sched_waking.proto",
"protos/perfetto/trace/ftrace/smbus_read.proto",
"protos/perfetto/trace/ftrace/smbus_reply.proto",
@@ -646,6 +693,7 @@
"protos/perfetto/trace/ftrace/softirq_entry.proto",
"protos/perfetto/trace/ftrace/softirq_exit.proto",
"protos/perfetto/trace/ftrace/softirq_raise.proto",
+ "protos/perfetto/trace/ftrace/suspend_resume.proto",
"protos/perfetto/trace/ftrace/sync_pt.proto",
"protos/perfetto/trace/ftrace/sync_timeline.proto",
"protos/perfetto/trace/ftrace/sync_wait.proto",
@@ -724,6 +772,20 @@
"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/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",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_deferred.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_end.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_finished.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_migratepages.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_suitable.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.pb.h",
+ "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_vmscan_direct_reclaim_begin.pb.h",
@@ -743,6 +805,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_waking.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_read.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_reply.pb.h",
@@ -751,6 +814,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/softirq_entry.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_exit.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_raise.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/suspend_resume.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pb.h",
@@ -833,6 +897,20 @@
"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/mm_compaction_begin.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_deferred.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_end.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_finished.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_suitable.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto",
+ "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_vmscan_direct_reclaim_begin.proto",
@@ -852,6 +930,7 @@
"protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
"protos/perfetto/trace/ftrace/sched_switch.proto",
"protos/perfetto/trace/ftrace/sched_wakeup.proto",
+ "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
"protos/perfetto/trace/ftrace/sched_waking.proto",
"protos/perfetto/trace/ftrace/smbus_read.proto",
"protos/perfetto/trace/ftrace/smbus_reply.proto",
@@ -860,6 +939,7 @@
"protos/perfetto/trace/ftrace/softirq_entry.proto",
"protos/perfetto/trace/ftrace/softirq_exit.proto",
"protos/perfetto/trace/ftrace/softirq_raise.proto",
+ "protos/perfetto/trace/ftrace/suspend_resume.proto",
"protos/perfetto/trace/ftrace/sync_pt.proto",
"protos/perfetto/trace/ftrace/sync_timeline.proto",
"protos/perfetto/trace/ftrace/sync_wait.proto",
@@ -939,6 +1019,20 @@
"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/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",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_deferred.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_end.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_finished.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_migratepages.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_suitable.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.pbzero.cc",
+ "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_vmscan_direct_reclaim_begin.pbzero.cc",
@@ -958,6 +1052,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sched_waking.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_read.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_reply.pbzero.cc",
@@ -966,6 +1061,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/softirq_entry.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_exit.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_raise.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/suspend_resume.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pbzero.cc",
@@ -1045,6 +1141,20 @@
"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/mm_compaction_begin.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_deferred.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_end.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_finished.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_suitable.proto",
+ "protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto",
+ "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_vmscan_direct_reclaim_begin.proto",
@@ -1064,6 +1174,7 @@
"protos/perfetto/trace/ftrace/sched_cpu_hotplug.proto",
"protos/perfetto/trace/ftrace/sched_switch.proto",
"protos/perfetto/trace/ftrace/sched_wakeup.proto",
+ "protos/perfetto/trace/ftrace/sched_wakeup_new.proto",
"protos/perfetto/trace/ftrace/sched_waking.proto",
"protos/perfetto/trace/ftrace/smbus_read.proto",
"protos/perfetto/trace/ftrace/smbus_reply.proto",
@@ -1072,6 +1183,7 @@
"protos/perfetto/trace/ftrace/softirq_entry.proto",
"protos/perfetto/trace/ftrace/softirq_exit.proto",
"protos/perfetto/trace/ftrace/softirq_raise.proto",
+ "protos/perfetto/trace/ftrace/suspend_resume.proto",
"protos/perfetto/trace/ftrace/sync_pt.proto",
"protos/perfetto/trace/ftrace/sync_timeline.proto",
"protos/perfetto/trace/ftrace/sync_wait.proto",
@@ -1151,6 +1263,20 @@
"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/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",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_deferred.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_end.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_finished.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_migratepages.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_suitable.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.pbzero.h",
+ "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_vmscan_direct_reclaim_begin.pbzero.h",
@@ -1170,6 +1296,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/sched_cpu_hotplug.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_switch.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/sched_wakeup_new.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sched_waking.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_read.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/smbus_reply.pbzero.h",
@@ -1178,6 +1305,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/softirq_entry.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_exit.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/softirq_raise.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/suspend_resume.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_pt.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_timeline.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/sync_wait.pbzero.h",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 2f2eaae..ae406db 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -76,6 +76,20 @@
"mdp_sspp_set.proto",
"mdp_trace_counter.proto",
"mdp_video_underrun_done.proto",
+ "mm_compaction_begin.proto",
+ "mm_compaction_defer_compaction.proto",
+ "mm_compaction_defer_reset.proto",
+ "mm_compaction_deferred.proto",
+ "mm_compaction_end.proto",
+ "mm_compaction_finished.proto",
+ "mm_compaction_isolate_freepages.proto",
+ "mm_compaction_isolate_migratepages.proto",
+ "mm_compaction_kcompactd_sleep.proto",
+ "mm_compaction_kcompactd_wake.proto",
+ "mm_compaction_migratepages.proto",
+ "mm_compaction_suitable.proto",
+ "mm_compaction_try_to_compact_pages.proto",
+ "mm_compaction_wakeup_kcompactd.proto",
"mm_filemap_add_to_page_cache.proto",
"mm_filemap_delete_from_page_cache.proto",
"mm_vmscan_direct_reclaim_begin.proto",
@@ -95,6 +109,7 @@
"sched_cpu_hotplug.proto",
"sched_switch.proto",
"sched_wakeup.proto",
+ "sched_wakeup_new.proto",
"sched_waking.proto",
"smbus_read.proto",
"smbus_reply.proto",
@@ -103,6 +118,7 @@
"softirq_entry.proto",
"softirq_exit.proto",
"softirq_raise.proto",
+ "suspend_resume.proto",
"sync_pt.proto",
"sync_timeline.proto",
"sync_wait.proto",
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 3b6d4a1..b11748a 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -113,6 +113,22 @@
import "perfetto/trace/ftrace/rotator_bw_ao_as_context.proto";
import "perfetto/trace/ftrace/mm_filemap_add_to_page_cache.proto";
import "perfetto/trace/ftrace/mm_filemap_delete_from_page_cache.proto";
+import "perfetto/trace/ftrace/mm_compaction_begin.proto";
+import "perfetto/trace/ftrace/mm_compaction_defer_compaction.proto";
+import "perfetto/trace/ftrace/mm_compaction_defer_reset.proto";
+import "perfetto/trace/ftrace/mm_compaction_deferred.proto";
+import "perfetto/trace/ftrace/mm_compaction_end.proto";
+import "perfetto/trace/ftrace/mm_compaction_finished.proto";
+import "perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto";
+import "perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto";
+import "perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto";
+import "perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto";
+import "perfetto/trace/ftrace/mm_compaction_migratepages.proto";
+import "perfetto/trace/ftrace/mm_compaction_suitable.proto";
+import "perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto";
+import "perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto";
+import "perfetto/trace/ftrace/suspend_resume.proto";
+import "perfetto/trace/ftrace/sched_wakeup_new.proto";
package perfetto.protos;
@@ -223,5 +239,24 @@
MmFilemapAddToPageCacheFtraceEvent mm_filemap_add_to_page_cache = 97;
MmFilemapDeleteFromPageCacheFtraceEvent mm_filemap_delete_from_page_cache =
98;
+ MmCompactionBeginFtraceEvent mm_compaction_begin = 99;
+ MmCompactionDeferCompactionFtraceEvent mm_compaction_defer_compaction = 100;
+ MmCompactionDeferredFtraceEvent mm_compaction_deferred = 101;
+ MmCompactionDeferResetFtraceEvent mm_compaction_defer_reset = 102;
+ MmCompactionEndFtraceEvent mm_compaction_end = 103;
+ MmCompactionFinishedFtraceEvent mm_compaction_finished = 104;
+ MmCompactionIsolateFreepagesFtraceEvent mm_compaction_isolate_freepages =
+ 105;
+ MmCompactionIsolateMigratepagesFtraceEvent
+ mm_compaction_isolate_migratepages = 106;
+ MmCompactionKcompactdSleepFtraceEvent mm_compaction_kcompactd_sleep = 107;
+ MmCompactionKcompactdWakeFtraceEvent mm_compaction_kcompactd_wake = 108;
+ MmCompactionMigratepagesFtraceEvent mm_compaction_migratepages = 109;
+ MmCompactionSuitableFtraceEvent mm_compaction_suitable = 110;
+ MmCompactionTryToCompactPagesFtraceEvent
+ mm_compaction_try_to_compact_pages = 111;
+ MmCompactionWakeupKcompactdFtraceEvent mm_compaction_wakeup_kcompactd = 112;
+ SuspendResumeFtraceEvent suspend_resume = 113;
+ SchedWakeupNewFtraceEvent sched_wakeup_new = 114;
}
}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_begin.proto b/protos/perfetto/trace/ftrace/mm_compaction_begin.proto
new file mode 100644
index 0000000..d59150b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_begin.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 MmCompactionBeginFtraceEvent {
+ optional uint64 zone_start = 1;
+ optional uint64 migrate_pfn = 2;
+ optional uint64 free_pfn = 3;
+ optional uint64 zone_end = 4;
+ optional uint32 sync = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto b/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.proto
new file mode 100644
index 0000000..66a4982
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_defer_compaction.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 MmCompactionDeferCompactionFtraceEvent {
+ optional int32 nid = 1;
+ optional uint32 idx = 2;
+ optional int32 order = 3;
+ optional uint32 considered = 4;
+ optional uint32 defer_shift = 5;
+ optional int32 order_failed = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto b/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.proto
new file mode 100644
index 0000000..e55edbe
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_defer_reset.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 MmCompactionDeferResetFtraceEvent {
+ optional int32 nid = 1;
+ optional uint32 idx = 2;
+ optional int32 order = 3;
+ optional uint32 considered = 4;
+ optional uint32 defer_shift = 5;
+ optional int32 order_failed = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_deferred.proto b/protos/perfetto/trace/ftrace/mm_compaction_deferred.proto
new file mode 100644
index 0000000..1e54d9f
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_deferred.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 MmCompactionDeferredFtraceEvent {
+ optional int32 nid = 1;
+ optional uint32 idx = 2;
+ optional int32 order = 3;
+ optional uint32 considered = 4;
+ optional uint32 defer_shift = 5;
+ optional int32 order_failed = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_end.proto b/protos/perfetto/trace/ftrace/mm_compaction_end.proto
new file mode 100644
index 0000000..1d76385
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_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 MmCompactionEndFtraceEvent {
+ optional uint64 zone_start = 1;
+ optional uint64 migrate_pfn = 2;
+ optional uint64 free_pfn = 3;
+ optional uint64 zone_end = 4;
+ optional uint32 sync = 5;
+ optional int32 status = 6;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_finished.proto b/protos/perfetto/trace/ftrace/mm_compaction_finished.proto
new file mode 100644
index 0000000..56bae34
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_finished.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 MmCompactionFinishedFtraceEvent {
+ optional int32 nid = 1;
+ optional uint32 idx = 2;
+ optional int32 order = 3;
+ optional int32 ret = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto b/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.proto
new file mode 100644
index 0000000..21dfe7b
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_isolate_freepages.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 MmCompactionIsolateFreepagesFtraceEvent {
+ optional uint64 start_pfn = 1;
+ optional uint64 end_pfn = 2;
+ optional uint64 nr_scanned = 3;
+ optional uint64 nr_taken = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto b/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.proto
new file mode 100644
index 0000000..7b5a30a
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_isolate_migratepages.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 MmCompactionIsolateMigratepagesFtraceEvent {
+ optional uint64 start_pfn = 1;
+ optional uint64 end_pfn = 2;
+ optional uint64 nr_scanned = 3;
+ optional uint64 nr_taken = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto b/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto
new file mode 100644
index 0000000..a4dc14c
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_sleep.proto
@@ -0,0 +1,9 @@
+// Autogenerated by ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc do not
+// edit.
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message MmCompactionKcompactdSleepFtraceEvent {
+ optional int32 nid = 1;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto b/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.proto
new file mode 100644
index 0000000..f93e5a4
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_kcompactd_wake.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 MmCompactionKcompactdWakeFtraceEvent {
+ optional int32 nid = 1;
+ optional int32 order = 2;
+ optional uint32 classzone_idx = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto b/protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto
new file mode 100644
index 0000000..ed54e45
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_migratepages.proto
@@ -0,0 +1,10 @@
+// Autogenerated by ../../tools/ftrace_proto_gen/ftrace_proto_gen.cc do not
+// edit.
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+package perfetto.protos;
+
+message MmCompactionMigratepagesFtraceEvent {
+ optional uint64 nr_migrated = 1;
+ optional uint64 nr_failed = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_suitable.proto b/protos/perfetto/trace/ftrace/mm_compaction_suitable.proto
new file mode 100644
index 0000000..e09cba6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_suitable.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 MmCompactionSuitableFtraceEvent {
+ optional int32 nid = 1;
+ optional uint32 idx = 2;
+ optional int32 order = 3;
+ optional int32 ret = 4;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto b/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.proto
new file mode 100644
index 0000000..48a26d3
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_try_to_compact_pages.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 MmCompactionTryToCompactPagesFtraceEvent {
+ optional int32 order = 1;
+ optional uint32 gfp_mask = 2;
+ optional uint32 mode = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto b/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.proto
new file mode 100644
index 0000000..da92386
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/mm_compaction_wakeup_kcompactd.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 MmCompactionWakeupKcompactdFtraceEvent {
+ optional int32 nid = 1;
+ optional int32 order = 2;
+ optional uint32 classzone_idx = 3;
+}
diff --git a/protos/perfetto/trace/ftrace/sched_wakeup_new.proto b/protos/perfetto/trace/ftrace/sched_wakeup_new.proto
new file mode 100644
index 0000000..d835656
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/sched_wakeup_new.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 SchedWakeupNewFtraceEvent {
+ optional string comm = 1;
+ optional int32 pid = 2;
+ optional int32 prio = 3;
+ optional int32 success = 4;
+ optional int32 target_cpu = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/suspend_resume.proto b/protos/perfetto/trace/ftrace/suspend_resume.proto
new file mode 100644
index 0000000..1277223
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/suspend_resume.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 SuspendResumeFtraceEvent {
+ optional string action = 1;
+ optional int32 val = 2;
+ optional uint32 start = 3;
+}
diff --git a/src/ftrace_reader/event_info.cc b/src/ftrace_reader/event_info.cc
index 3b66233..a5c90b3 100644
--- a/src/ftrace_reader/event_info.cc
+++ b/src/ftrace_reader/event_info.cc
@@ -194,6 +194,186 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "mm_compaction_begin";
+ event->group = "compaction";
+ event->proto_field_id = 99;
+ event->fields.push_back(FieldFromNameIdType("zone_start", 1, kProtoUint64));
+ event->fields.push_back(
+ FieldFromNameIdType("migrate_pfn", 2, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("free_pfn", 3, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("zone_end", 4, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("sync", 5, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_defer_compaction";
+ event->group = "compaction";
+ event->proto_field_id = 100;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("idx", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("order", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("considered", 4, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("defer_shift", 5, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("order_failed", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_defer_reset";
+ event->group = "compaction";
+ event->proto_field_id = 102;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("idx", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("order", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("considered", 4, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("defer_shift", 5, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("order_failed", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_deferred";
+ event->group = "compaction";
+ event->proto_field_id = 101;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("idx", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("order", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("considered", 4, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("defer_shift", 5, kProtoUint32));
+ event->fields.push_back(
+ FieldFromNameIdType("order_failed", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_end";
+ event->group = "compaction";
+ event->proto_field_id = 103;
+ event->fields.push_back(FieldFromNameIdType("zone_start", 1, kProtoUint64));
+ event->fields.push_back(
+ FieldFromNameIdType("migrate_pfn", 2, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("free_pfn", 3, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("zone_end", 4, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("sync", 5, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("status", 6, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_finished";
+ event->group = "compaction";
+ event->proto_field_id = 104;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("idx", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("order", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("ret", 4, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_isolate_freepages";
+ event->group = "compaction";
+ event->proto_field_id = 105;
+ event->fields.push_back(FieldFromNameIdType("start_pfn", 1, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("end_pfn", 2, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("nr_scanned", 3, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("nr_taken", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_isolate_migratepages";
+ event->group = "compaction";
+ event->proto_field_id = 106;
+ event->fields.push_back(FieldFromNameIdType("start_pfn", 1, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("end_pfn", 2, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("nr_scanned", 3, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("nr_taken", 4, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_kcompactd_sleep";
+ event->group = "compaction";
+ event->proto_field_id = 107;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_kcompactd_wake";
+ event->group = "compaction";
+ event->proto_field_id = 108;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("order", 2, kProtoInt32));
+ event->fields.push_back(
+ FieldFromNameIdType("classzone_idx", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_migratepages";
+ event->group = "compaction";
+ event->proto_field_id = 109;
+ event->fields.push_back(
+ FieldFromNameIdType("nr_migrated", 1, kProtoUint64));
+ event->fields.push_back(FieldFromNameIdType("nr_failed", 2, kProtoUint64));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_suitable";
+ event->group = "compaction";
+ event->proto_field_id = 110;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("idx", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("order", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("ret", 4, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_try_to_compact_pages";
+ event->group = "compaction";
+ event->proto_field_id = 111;
+ event->fields.push_back(FieldFromNameIdType("order", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("gfp_mask", 2, kProtoUint32));
+ event->fields.push_back(FieldFromNameIdType("mode", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
+ event->name = "mm_compaction_wakeup_kcompactd";
+ event->group = "compaction";
+ event->proto_field_id = 112;
+ event->fields.push_back(FieldFromNameIdType("nid", 1, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("order", 2, kProtoInt32));
+ event->fields.push_back(
+ FieldFromNameIdType("classzone_idx", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "cpufreq_interactive_already";
event->group = "cpufreq_interactive";
event->proto_field_id = 5;
@@ -888,6 +1068,17 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "suspend_resume";
+ event->group = "power";
+ event->proto_field_id = 113;
+ event->fields.push_back(FieldFromNameIdType("action", 1, kProtoString));
+ event->fields.push_back(FieldFromNameIdType("val", 2, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("start", 3, kProtoUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "regulator_disable";
event->group = "regulator";
event->proto_field_id = 60;
@@ -1005,6 +1196,19 @@
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "sched_wakeup_new";
+ event->group = "sched";
+ event->proto_field_id = 114;
+ event->fields.push_back(FieldFromNameIdType("comm", 1, kProtoString));
+ event->fields.push_back(FieldFromNameIdType("pid", 2, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("prio", 3, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("success", 4, kProtoInt32));
+ event->fields.push_back(FieldFromNameIdType("target_cpu", 5, kProtoInt32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "sched_waking";
event->group = "sched";
event->proto_field_id = 20;
diff --git a/test/configs/ftrace.cfg b/test/configs/ftrace.cfg
index df3082e..749eb93 100644
--- a/test/configs/ftrace.cfg
+++ b/test/configs/ftrace.cfg
@@ -106,6 +106,22 @@
event_names: "rotator_bw_ao_as_context"
event_names: "mm_filemap_add_to_page_cache"
event_names: "mm_filemap_delete_from_page_cache"
+ event_names: "mm_compaction_begin"
+ event_names: "mm_compaction_defer_compaction"
+ event_names: "mm_compaction_deferred"
+ event_names: "mm_compaction_defer_reset"
+ event_names: "mm_compaction_end"
+ event_names: "mm_compaction_finished"
+ event_names: "mm_compaction_isolate_freepages"
+ event_names: "mm_compaction_isolate_migratepages"
+ event_names: "mm_compaction_kcompactd_sleep"
+ event_names: "mm_compaction_kcompactd_wake"
+ event_names: "mm_compaction_migratepages"
+ event_names: "mm_compaction_suitable"
+ event_names: "mm_compaction_try_to_compact_pages"
+ event_names: "mm_compaction_wakeup_kcompactd"
+ event_names: "suspend_resume"
+ event_names: "sched_wakeup_new"
}
}
}
diff --git a/tools/ftrace_proto_gen/event_whitelist b/tools/ftrace_proto_gen/event_whitelist
index a5cdde3..0735e00 100644
--- a/tools/ftrace_proto_gen/event_whitelist
+++ b/tools/ftrace_proto_gen/event_whitelist
@@ -94,3 +94,19 @@
mdss/rotator_bw_ao_as_context
filemap/mm_filemap_add_to_page_cache
filemap/mm_filemap_delete_from_page_cache
+compaction/mm_compaction_begin
+compaction/mm_compaction_defer_compaction
+compaction/mm_compaction_deferred
+compaction/mm_compaction_defer_reset
+compaction/mm_compaction_end
+compaction/mm_compaction_finished
+compaction/mm_compaction_isolate_freepages
+compaction/mm_compaction_isolate_migratepages
+compaction/mm_compaction_kcompactd_sleep
+compaction/mm_compaction_kcompactd_wake
+compaction/mm_compaction_migratepages
+compaction/mm_compaction_suitable
+compaction/mm_compaction_try_to_compact_pages
+compaction/mm_compaction_wakeup_kcompactd
+power/suspend_resume
+sched/sched_wakeup_new
diff --git a/tools/trace_to_text/main.cc b/tools/trace_to_text/main.cc
index 147ba4a..084038c 100644
--- a/tools/trace_to_text/main.cc
+++ b/tools/trace_to_text/main.cc
@@ -166,6 +166,22 @@
using protos::WorkqueueExecuteStartFtraceEvent;
using protos::WorkqueueActivateWorkFtraceEvent;
using protos::WorkqueueQueueWorkFtraceEvent;
+using protos::MmCompactionBeginFtraceEvent;
+using protos::MmCompactionDeferCompactionFtraceEvent;
+using protos::MmCompactionDeferredFtraceEvent;
+using protos::MmCompactionDeferResetFtraceEvent;
+using protos::MmCompactionEndFtraceEvent;
+using protos::MmCompactionFinishedFtraceEvent;
+using protos::MmCompactionIsolateFreepagesFtraceEvent;
+using protos::MmCompactionIsolateMigratepagesFtraceEvent;
+using protos::MmCompactionKcompactdSleepFtraceEvent;
+using protos::MmCompactionKcompactdWakeFtraceEvent;
+using protos::MmCompactionMigratepagesFtraceEvent;
+using protos::MmCompactionSuitableFtraceEvent;
+using protos::MmCompactionTryToCompactPagesFtraceEvent;
+using protos::MmCompactionWakeupKcompactdFtraceEvent;
+using protos::SuspendResumeFtraceEvent;
+using protos::SchedWakeupNewFtraceEvent;
using protos::Trace;
using protos::TracePacket;
@@ -208,6 +224,16 @@
return "R";
}
+const char* MmCompactionRetArray[] = {
+ "deferred", "skipped", "continue", "partial",
+ "complete", "no_suitable_page", "not_suitable_zone", "contended"};
+
+const char* MmCompactionSuitableArray[] = {"DMA", "Normal", "Movable"};
+
+const char* SoftirqArray[] = {"HI", "TIMER", "NET_TX", "NET_RX",
+ "BLOCK", "BLOCK_IOPOLL", "TASKLET", "SCHED",
+ "HRTIMER", "RCU"};
+
uint64_t TimestampToSeconds(uint64_t timestamp) {
return timestamp / 1000000000ul;
}
@@ -559,27 +585,21 @@
std::string FormatSoftirqRaise(const SoftirqRaiseFtraceEvent& event) {
char line[2048];
sprintf(line, "softirq_raise: vec=%u [action=%s]\\n", event.vec(),
- "({ 0, 'HI' }, {1, 'TIMER' }, { 2, 'NET_TX' }, { 3, 'NET_RX' }, { 4, "
- "'BLOCK' }, { 5, 'BLOCK_IOPOLL' }, { 6, 'TASKLET' }, { 7, 'SCHED' }, "
- "{ 8, 'HRTIMER' }, { 9, 'RCU' })");
+ SoftirqArray[event.vec()]);
return std::string(line);
}
std::string FormatSoftirqEntry(const SoftirqEntryFtraceEvent& event) {
char line[2048];
sprintf(line, "softirq_entry: vec=%u [action=%s]\\n", event.vec(),
- "({ 0, 'HI' }, {1, 'TIMER' }, { 2, 'NET_TX' }, { 3, 'NET_RX' }, { 4, "
- "'BLOCK' }, { 5, 'BLOCK_IOPOLL' }, { 6, 'TASKLET' }, { 7, 'SCHED' }, "
- "{ 8, 'HRTIMER' }, { 9, 'RCU' })");
+ SoftirqArray[event.vec()]);
return std::string(line);
}
std::string FormatSoftirqExit(const SoftirqExitFtraceEvent& event) {
char line[2048];
sprintf(line, "softirq_exit: vec=%u [action=%s]\\n", event.vec(),
- "({ 0, 'HI' }, {1, 'TIMER' }, { 2, 'NET_TX' }, { 3, 'NET_RX' }, { 4, "
- "'BLOCK' }, { 5, 'BLOCK_IOPOLL' }, { 6, 'TASKLET' }, { 7, 'SCHED' }, "
- "{ 8, 'HRTIMER' }, { 9, 'RCU' })");
+ SoftirqArray[event.vec()]);
return std::string(line);
}
@@ -660,6 +680,162 @@
return std::string(line);
}
+std::string FormatMmCompactionBegin(const MmCompactionBeginFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_begin: zone_start=0x%llx migrate_pfn=0x%llx "
+ "free_pfn=0x%llx zone_end=0x%llx, mode=%s\\n",
+ event.zone_start(), event.migrate_pfn(), event.free_pfn(),
+ event.zone_end(), event.sync() ? "sync" : "async");
+ return std::string(line);
+}
+
+std::string FormatMmCompactionDeferCompaction(
+ const MmCompactionDeferCompactionFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_defer_compaction: node=%d zone=%-8s order=%d "
+ "order_failed=%d consider=%u limit=%lu\\n",
+ event.nid(), MmCompactionSuitableArray[event.idx()], event.order(),
+ event.order_failed(), event.considered(), 1UL << event.defer_shift());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionDeferred(
+ const MmCompactionDeferredFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_deferred: node=%d zone=%-8s order=%d order_failed=%d "
+ "consider=%u limit=%lu\\n",
+ event.nid(), MmCompactionSuitableArray[event.idx()], event.order(),
+ event.order_failed(), event.considered(), 1UL << event.defer_shift());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionDeferReset(
+ const MmCompactionDeferResetFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_defer_reset: node=%d zone=%-8s order=%d "
+ "order_failed=%d consider=%u limit=%lu\\n",
+ event.nid(), MmCompactionSuitableArray[event.idx()], event.order(),
+ event.order_failed(), event.considered(), 1UL << event.defer_shift());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionEnd(const MmCompactionEndFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_end: zone_start=0x%llx migrate_pfn=0x%llx "
+ "free_pfn=0x%llx zone_end=0x%llx, mode=%s status=%s\\n",
+ event.zone_start(), event.migrate_pfn(), event.free_pfn(),
+ event.zone_end(), event.sync() ? "sync" : "aysnc",
+ MmCompactionRetArray[event.status()]);
+ return std::string(line);
+}
+
+std::string FormatMmCompactionFinished(
+ const MmCompactionFinishedFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "mm_compaction_finished: node=%d zone=%-8s order=%d ret=%s\\n",
+ event.nid(), MmCompactionSuitableArray[event.idx()], event.order(),
+ MmCompactionRetArray[event.ret()]);
+ return std::string(line);
+}
+
+std::string FormatMmCompactionIsolateFreepages(
+ const MmCompactionIsolateFreepagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_isolate_freepages: range=(0x%llx ~ 0x%llx) "
+ "nr_scanned=%llu nr_taken=%llu\\n",
+ event.start_pfn(), event.end_pfn(), event.nr_scanned(),
+ event.nr_taken());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionIsolateMigratepages(
+ const MmCompactionIsolateMigratepagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_isolate_migratepages: range=(0x%llx ~ 0x%llx) "
+ "nr_scanned=%llu nr_taken=%llu\\n",
+ event.start_pfn(), event.end_pfn(), event.nr_scanned(),
+ event.nr_taken());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionKcompactdSleep(
+ const MmCompactionKcompactdSleepFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "mm_compaction_kcompactd_sleep: nid=%d\\n", event.nid());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionKcompactdWake(
+ const MmCompactionKcompactdWakeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_kcompactd_wake: nid=%d order=%d classzone_idx=%-8s\\n",
+ event.nid(), event.order(),
+ MmCompactionSuitableArray[event.classzone_idx()]);
+ return std::string(line);
+}
+
+std::string FormatMmCompactionMigratepages(
+ const MmCompactionMigratepagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(line,
+ "mm_compaction_migratepages: nr_migrated=%llu nr_failed=%llu\\n",
+ event.nr_migrated(), event.nr_failed());
+ return std::string(line);
+}
+
+std::string FormatMmCompactionSuitable(
+ const MmCompactionSuitableFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "mm_compaction_suitable: node=%d zone=%-8s order=%d ret=%s\\n",
+ event.nid(), MmCompactionSuitableArray[event.idx()], event.order(),
+ MmCompactionRetArray[event.ret()]);
+ return std::string(line);
+}
+
+std::string FormatMmCompactionTryToCompactPages(
+ const MmCompactionTryToCompactPagesFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "mm_compaction_try_to_compact_pages: order=%d gfp_mask=0x%x mode=%d\\n",
+ event.order(), event.gfp_mask(),
+ event.mode()); // convert to int?
+ return std::string(line);
+}
+
+std::string FormatMmCompactionWakeupKcompactd(
+ const MmCompactionWakeupKcompactdFtraceEvent& event) {
+ char line[2048];
+ sprintf(
+ line,
+ "mm_compaction_wakeup_kcompactd: nid=%d order=%d classzone_idx=%-8s\\n",
+ event.nid(), event.order(),
+ MmCompactionSuitableArray[event.classzone_idx()]);
+ return std::string(line);
+}
+
+std::string FormatSuspendResume(const SuspendResumeFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "suspend_resume: %s[%u] %s\\n", event.action().c_str(),
+ event.val(), event.start() ? "begin" : "end");
+ return std::string(line);
+}
+
+std::string FormatSchedWakeupNew(const SchedWakeupNewFtraceEvent& event) {
+ char line[2048];
+ sprintf(line, "sched_wakeup_new: comm=%s pid=%d prio=%d target_cpu=%03d\\n",
+ event.comm().c_str(), event.pid(), event.prio(), event.target_cpu());
+ return std::string(line);
+}
+
int TraceToSystrace(std::istream* input, std::ostream* output) {
std::multimap<uint64_t, std::string> sorted;
@@ -829,6 +1005,51 @@
} else if (event.has_workqueue_activate_work()) {
const auto& inner = event.workqueue_activate_work();
line = FormatWorkqueueActivateWork(inner);
+ } else if (event.has_mm_compaction_begin()) {
+ const auto& inner = event.mm_compaction_begin();
+ line = FormatMmCompactionBegin(inner);
+ } else if (event.has_mm_compaction_deferred()) {
+ const auto& inner = event.mm_compaction_deferred();
+ line = FormatMmCompactionDeferred(inner);
+ } else if (event.has_mm_compaction_defer_reset()) {
+ const auto& inner = event.mm_compaction_defer_reset();
+ line = FormatMmCompactionDeferReset(inner);
+ } else if (event.has_mm_compaction_end()) {
+ const auto& inner = event.mm_compaction_end();
+ line = FormatMmCompactionEnd(inner);
+ } else if (event.has_mm_compaction_finished()) {
+ const auto& inner = event.mm_compaction_finished();
+ line = FormatMmCompactionFinished(inner);
+ } else if (event.has_mm_compaction_isolate_freepages()) {
+ const auto& inner = event.mm_compaction_isolate_freepages();
+ line = FormatMmCompactionIsolateFreepages(inner);
+ } else if (event.has_mm_compaction_isolate_migratepages()) {
+ const auto& inner = event.mm_compaction_isolate_migratepages();
+ line = FormatMmCompactionIsolateMigratepages(inner);
+ } else if (event.has_mm_compaction_kcompactd_sleep()) {
+ const auto& inner = event.mm_compaction_kcompactd_sleep();
+ line = FormatMmCompactionKcompactdSleep(inner);
+ } else if (event.has_mm_compaction_kcompactd_wake()) {
+ const auto& inner = event.mm_compaction_kcompactd_wake();
+ line = FormatMmCompactionKcompactdWake(inner);
+ } else if (event.has_mm_compaction_migratepages()) {
+ const auto& inner = event.mm_compaction_migratepages();
+ line = FormatMmCompactionMigratepages(inner);
+ } else if (event.has_mm_compaction_suitable()) {
+ const auto& inner = event.mm_compaction_suitable();
+ line = FormatMmCompactionSuitable(inner);
+ } else if (event.has_mm_compaction_try_to_compact_pages()) {
+ const auto& inner = event.mm_compaction_try_to_compact_pages();
+ line = FormatMmCompactionTryToCompactPages(inner);
+ } else if (event.has_mm_compaction_wakeup_kcompactd()) {
+ const auto& inner = event.mm_compaction_wakeup_kcompactd();
+ line = FormatMmCompactionWakeupKcompactd(inner);
+ } else if (event.has_suspend_resume()) {
+ const auto& inner = event.suspend_resume();
+ line = FormatSuspendResume(inner);
+ } else if (event.has_sched_wakeup_new()) {
+ const auto& inner = event.sched_wakeup_new();
+ line = FormatSchedWakeupNew(inner);
} else {
continue;
}