Add android_fs trace points.

Fs trace points were added to common kernel here aosp/2214061
and can help track IO latency.

Change-Id: I9dfe15521967fd6b176b34fb35236c613c175087
diff --git a/Android.bp b/Android.bp
index c5f8d56..ef297dc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4688,6 +4688,7 @@
         "protos/perfetto/trace/clock_snapshot.proto",
         "protos/perfetto/trace/extension_descriptor.proto",
         "protos/perfetto/trace/filesystem/inode_file_map.proto",
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -4921,6 +4922,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -4986,6 +4988,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.gen.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/block.gen.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.cc",
@@ -5051,6 +5054,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -5116,6 +5120,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.gen.h",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.h",
         "external/perfetto/protos/perfetto/trace/ftrace/block.gen.h",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.h",
@@ -5185,6 +5190,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_lite_gen",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -5249,6 +5255,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.pb.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/block.pb.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.cc",
@@ -5314,6 +5321,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -5378,6 +5386,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.pb.h",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.h",
         "external/perfetto/protos/perfetto/trace/ftrace/block.pb.h",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.h",
@@ -5447,6 +5456,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_zero_gen",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -5512,6 +5522,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.pbzero.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.cc",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.cc",
@@ -5577,6 +5588,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
     srcs: [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
@@ -5642,6 +5654,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/android_fs.pbzero.h",
         "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.h",
         "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.h",
         "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.h",
@@ -10474,6 +10487,7 @@
         "protos/perfetto/trace/clock_snapshot.proto",
         "protos/perfetto/trace/extension_descriptor.proto",
         "protos/perfetto/trace/filesystem/inode_file_map.proto",
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
diff --git a/BUILD b/BUILD
index 4054e20..939d28e 100644
--- a/BUILD
+++ b/BUILD
@@ -3318,6 +3318,7 @@
 perfetto_proto_library(
     name = "protos_perfetto_trace_ftrace_protos",
     srcs = [
+        "protos/perfetto/trace/ftrace/android_fs.proto",
         "protos/perfetto/trace/ftrace/binder.proto",
         "protos/perfetto/trace/ftrace/block.proto",
         "protos/perfetto/trace/ftrace/cgroup.proto",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 97d521d..a72f51d 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -20,6 +20,7 @@
   "ftrace_stats.proto",
   "test_bundle_wrapper.proto",
   "generic.proto",
+  "android_fs.proto",
   "binder.proto",
   "block.proto",
   "cgroup.proto",
diff --git a/protos/perfetto/trace/ftrace/android_fs.proto b/protos/perfetto/trace/ftrace/android_fs.proto
new file mode 100644
index 0000000..76d7216
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/android_fs.proto
@@ -0,0 +1,47 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message AndroidFsDatareadEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsDatareadStartFtraceEvent {
+  optional int32 bytes = 1;
+  optional string cmdline = 2;
+  optional int64 i_size = 3;
+  optional uint64 ino = 4;
+  optional int64 offset = 5;
+  optional string pathbuf = 6;
+  optional int32 pid = 7;
+}
+message AndroidFsDatawriteEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsDatawriteStartFtraceEvent {
+  optional int32 bytes = 1;
+  optional string cmdline = 2;
+  optional int64 i_size = 3;
+  optional uint64 ino = 4;
+  optional int64 offset = 5;
+  optional string pathbuf = 6;
+  optional int32 pid = 7;
+}
+message AndroidFsFsyncEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsFsyncStartFtraceEvent {
+  optional string cmdline = 1;
+  optional int64 i_size = 2;
+  optional uint64 ino = 3;
+  optional string pathbuf = 4;
+  optional int32 pid = 5;
+}
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 6de544f..2a59ca1 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -20,6 +20,7 @@
 
 syntax = "proto2";
 
+import "protos/perfetto/trace/ftrace/android_fs.proto";
 import "protos/perfetto/trace/ftrace/binder.proto";
 import "protos/perfetto/trace/ftrace/block.proto";
 import "protos/perfetto/trace/ftrace/cgroup.proto";
@@ -533,5 +534,11 @@
     DsiCmdFifoStatusFtraceEvent dsi_cmd_fifo_status = 428;
     DsiRxFtraceEvent dsi_rx = 429;
     DsiTxFtraceEvent dsi_tx = 430;
+    AndroidFsDatareadEndFtraceEvent android_fs_dataread_end = 431;
+    AndroidFsDatareadStartFtraceEvent android_fs_dataread_start = 432;
+    AndroidFsDatawriteEndFtraceEvent android_fs_datawrite_end = 433;
+    AndroidFsDatawriteStartFtraceEvent android_fs_datawrite_start = 434;
+    AndroidFsFsyncEndFtraceEvent android_fs_fsync_end = 435;
+    AndroidFsFsyncStartFtraceEvent android_fs_fsync_start = 436;
   }
 }
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 3afca65..b853b9b 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -4067,6 +4067,51 @@
 
 // End of protos/perfetto/trace/filesystem/inode_file_map.proto
 
+// Begin of protos/perfetto/trace/ftrace/android_fs.proto
+
+message AndroidFsDatareadEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsDatareadStartFtraceEvent {
+  optional int32 bytes = 1;
+  optional string cmdline = 2;
+  optional int64 i_size = 3;
+  optional uint64 ino = 4;
+  optional int64 offset = 5;
+  optional string pathbuf = 6;
+  optional int32 pid = 7;
+}
+message AndroidFsDatawriteEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsDatawriteStartFtraceEvent {
+  optional int32 bytes = 1;
+  optional string cmdline = 2;
+  optional int64 i_size = 3;
+  optional uint64 ino = 4;
+  optional int64 offset = 5;
+  optional string pathbuf = 6;
+  optional int32 pid = 7;
+}
+message AndroidFsFsyncEndFtraceEvent {
+  optional int32 bytes = 1;
+  optional uint64 ino = 2;
+  optional int64 offset = 3;
+}
+message AndroidFsFsyncStartFtraceEvent {
+  optional string cmdline = 1;
+  optional int64 i_size = 2;
+  optional uint64 ino = 3;
+  optional string pathbuf = 4;
+  optional int32 pid = 5;
+}
+
+// End of protos/perfetto/trace/ftrace/android_fs.proto
+
 // Begin of protos/perfetto/trace/ftrace/binder.proto
 
 message BinderTransactionFtraceEvent {
@@ -7462,6 +7507,12 @@
     DsiCmdFifoStatusFtraceEvent dsi_cmd_fifo_status = 428;
     DsiRxFtraceEvent dsi_rx = 429;
     DsiTxFtraceEvent dsi_tx = 430;
+    AndroidFsDatareadEndFtraceEvent android_fs_dataread_end = 431;
+    AndroidFsDatareadStartFtraceEvent android_fs_dataread_start = 432;
+    AndroidFsDatawriteEndFtraceEvent android_fs_datawrite_end = 433;
+    AndroidFsDatawriteStartFtraceEvent android_fs_datawrite_start = 434;
+    AndroidFsFsyncEndFtraceEvent android_fs_fsync_end = 435;
+    AndroidFsFsyncStartFtraceEvent android_fs_fsync_start = 436;
   }
 }
 
diff --git a/src/tools/ftrace_proto_gen/event_list b/src/tools/ftrace_proto_gen/event_list
index 041e667..3e3eb04 100644
--- a/src/tools/ftrace_proto_gen/event_list
+++ b/src/tools/ftrace_proto_gen/event_list
@@ -425,3 +425,9 @@
 panel/dsi_cmd_fifo_status
 panel/dsi_rx
 panel/dsi_tx
+android_fs/android_fs_dataread_end
+android_fs/android_fs_dataread_start
+android_fs/android_fs_datawrite_end
+android_fs/android_fs_datawrite_start
+android_fs/android_fs_fsync_end
+android_fs/android_fs_fsync_start
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index 0d59a43..250641a 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -30,6 +30,132 @@
   static constexpr uint16_t kUnsetSize = 0;
   static constexpr uint16_t kUnsetFtraceId = 0;
   return {
+      {"android_fs_dataread_end",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "bytes", 1, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 2, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "offset", 3, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       431,
+       kUnsetSize},
+      {"android_fs_dataread_start",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "bytes", 1, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "cmdline", 2, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "i_size", 3, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 4, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "offset", 5, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pathbuf", 6, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pid", 7, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       432,
+       kUnsetSize},
+      {"android_fs_datawrite_end",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "bytes", 1, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 2, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "offset", 3, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       433,
+       kUnsetSize},
+      {"android_fs_datawrite_start",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "bytes", 1, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "cmdline", 2, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "i_size", 3, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 4, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "offset", 5, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pathbuf", 6, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pid", 7, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       434,
+       kUnsetSize},
+      {"android_fs_fsync_end",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "bytes", 1, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 2, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "offset", 3, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       435,
+       kUnsetSize},
+      {"android_fs_fsync_start",
+       "android_fs",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "cmdline", 1, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "i_size", 2, ProtoSchemaType::kInt64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "ino", 3, ProtoSchemaType::kUint64,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pathbuf", 4, ProtoSchemaType::kString,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "pid", 5, ProtoSchemaType::kInt32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       436,
+       kUnsetSize},
       {"binder_transaction",
        "binder",
        {
@@ -6860,28 +6986,28 @@
        kUnsetFtraceId,
        334,
        kUnsetSize},
-       {"dsi_cmd_fifo_status",
-        "panel",
-        {
-            {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-             "header", 1, ProtoSchemaType::kUint32,
-             TranslationStrategy::kInvalidTranslationStrategy},
-            {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-             "payload", 2, ProtoSchemaType::kUint32,
-             TranslationStrategy::kInvalidTranslationStrategy},
-        },
-        kUnsetFtraceId,
-        428,
-        kUnsetSize},
+      {"dsi_cmd_fifo_status",
+       "panel",
+       {
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "header", 1, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "payload", 2, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+       },
+       kUnsetFtraceId,
+       428,
+       kUnsetSize},
       {"dsi_rx",
        "panel",
        {
-          {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-           "cmd", 1, ProtoSchemaType::kUint32,
-           TranslationStrategy::kInvalidTranslationStrategy},
-          {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-           "rx_buf", 2, ProtoSchemaType::kUint32,
-           TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "cmd", 1, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "rx_buf", 2, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
        },
        kUnsetFtraceId,
        429,
@@ -6889,15 +7015,15 @@
       {"dsi_tx",
        "panel",
        {
-          {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-           "last", 1, ProtoSchemaType::kUint32,
-           TranslationStrategy::kInvalidTranslationStrategy},
-          {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-           "tx_buf", 2, ProtoSchemaType::kUint32,
-           TranslationStrategy::kInvalidTranslationStrategy},
-          {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
-           "type", 3, ProtoSchemaType::kUint32,
-           TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "last", 1, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "tx_buf", 2, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
+           {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+            "type", 3, ProtoSchemaType::kUint32,
+            TranslationStrategy::kInvalidTranslationStrategy},
        },
        kUnsetFtraceId,
        430,
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_end/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_end/format
new file mode 100644
index 0000000..797a61f
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_end/format
@@ -0,0 +1,13 @@
+name: android_fs_dataread_end
+ID: 332
+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:ino_t ino; offset:8; size:4; signed:0;
+field:loff_t offset; offset:16; size:8; signed:1;
+field:int bytes; offset:24; size:4; signed:1;
+
+print fmt: "ino %lu, offset %llu, bytes %d", (unsigned long) REC->ino, REC->offset, REC->bytes
\ No newline at end of file
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_start/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_start/format
new file mode 100644
index 0000000..81ad7f5
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_dataread_start/format
@@ -0,0 +1,17 @@
+name: android_fs_dataread_start
+ID: 331
+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:__data_loc char[] pathbuf; offset:8; size:4; signed:0;
+field:loff_t offset; offset:16; size:8; signed:1;
+field:int bytes; offset:24; size:4; signed:1;
+field:loff_t i_size; offset:32; size:8; signed:1;
+field:__data_loc char[] cmdline; offset:40; size:4; signed:0;
+field:pid_t pid; offset:44; size:4; signed:1;
+field:ino_t ino; offset:48; size:4; signed:0;
+
+print fmt: "entry_name %s, offset %llu, bytes %d, cmdline %s, pid %d, i_size %llu, ino %lu", __get_str(pathbuf), REC->offset, REC->bytes, __get_str(cmdline), REC->pid, REC->i_size, (unsigned long) REC->ino
\ No newline at end of file
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_end/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_end/format
new file mode 100644
index 0000000..8ee014a
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_end/format
@@ -0,0 +1,13 @@
+name: android_fs_datawrite_end
+ID: 334
+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:ino_t ino; offset:8; size:4; signed:0;
+field:loff_t offset; offset:16; size:8; signed:1;
+field:int bytes; offset:24; size:4; signed:1;
+
+print fmt: "ino %lu, offset %llu, bytes %d", (unsigned long) REC->ino, REC->offset, REC->bytes
\ No newline at end of file
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_start/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_start/format
new file mode 100644
index 0000000..2f4d892
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_datawrite_start/format
@@ -0,0 +1,17 @@
+name: android_fs_datawrite_start
+ID: 333
+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:__data_loc char[] pathbuf; offset:8; size:4; signed:0;
+field:loff_t offset; offset:16; size:8; signed:1;
+field:int bytes; offset:24; size:4; signed:1;
+field:loff_t i_size; offset:32; size:8; signed:1;
+field:__data_loc char[] cmdline; offset:40; size:4; signed:0;
+field:pid_t pid; offset:44; size:4; signed:1;
+field:ino_t ino; offset:48; size:4; signed:0;
+
+print fmt: "entry_name %s, offset %llu, bytes %d, cmdline %s, pid %d, i_size %llu, ino %lu", __get_str(pathbuf), REC->offset, REC->bytes, __get_str(cmdline), REC->pid, REC->i_size, (unsigned long) REC->ino
\ No newline at end of file
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_end/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_end/format
new file mode 100644
index 0000000..9cc6a7c
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_end/format
@@ -0,0 +1,13 @@
+name: android_fs_fsync_end
+ID: 336
+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:ino_t ino; offset:8; size:4; signed:0;
+field:loff_t offset; offset:16; size:8; signed:1;
+field:int bytes; offset:24; size:4; signed:1;
+
+print fmt: "ino %lu, offset %llu, bytes %d", (unsigned long) REC->ino, REC->offset, REC->bytes
\ No newline at end of file
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_start/format b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_start/format
new file mode 100644
index 0000000..fb5f033
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/android_fs/android_fs_fsync_start/format
@@ -0,0 +1,15 @@
+name: android_fs_fsync_start
+ID: 335
+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:__data_loc char[] pathbuf; offset:8; size:4; signed:0;
+field:loff_t i_size; offset:16; size:8; signed:1;
+field:__data_loc char[] cmdline; offset:24; size:4; signed:0;
+field:pid_t pid; offset:28; size:4; signed:1;
+field:ino_t ino; offset:32; size:4; signed:0;
+
+print fmt: "entry_name %s, cmdline %s, pid %d, i_size %llu, ino %lu", __get_str(pathbuf), __get_str(cmdline), REC->pid, REC->i_size, (unsigned long) REC->ino
\ No newline at end of file