Merge "add google_icc_trace and google_irm_trace group ftrace events" into main
diff --git a/Android.bp b/Android.bp
index f8e8b03..dcb6477 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5987,6 +5987,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
@@ -6409,6 +6411,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
@@ -6492,6 +6496,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/generic.gen.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.gen.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.gen.cc",
@@ -6575,6 +6581,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/generic.gen.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.gen.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.gen.h",
@@ -6654,6 +6662,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
@@ -6736,6 +6746,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/generic.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.pb.cc",
@@ -6818,6 +6830,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/generic.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.pb.h",
@@ -6897,6 +6911,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
@@ -6980,6 +6996,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.pbzero.cc",
@@ -7063,6 +7081,8 @@
"external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_icc_trace.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/google_irm_trace.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/hyp.pbzero.h",
@@ -13906,6 +13926,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
@@ -14124,6 +14146,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
diff --git a/BUILD b/BUILD
index c6408f1..2ad7c9c 100644
--- a/BUILD
+++ b/BUILD
@@ -4780,6 +4780,8 @@
"protos/perfetto/trace/ftrace/ftrace_stats.proto",
"protos/perfetto/trace/ftrace/g2d.proto",
"protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/google_icc_trace.proto",
+ "protos/perfetto/trace/ftrace/google_irm_trace.proto",
"protos/perfetto/trace/ftrace/gpu_mem.proto",
"protos/perfetto/trace/ftrace/gpu_scheduler.proto",
"protos/perfetto/trace/ftrace/hyp.proto",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 39e5ba2..910d067 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -40,6 +40,8 @@
"filemap.proto",
"ftrace.proto",
"g2d.proto",
+ "google_icc_trace.proto",
+ "google_irm_trace.proto",
"gpu_mem.proto",
"gpu_scheduler.proto",
"hyp.proto",
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 302de2a..c75f932 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -40,6 +40,8 @@
import "protos/perfetto/trace/ftrace/filemap.proto";
import "protos/perfetto/trace/ftrace/ftrace.proto";
import "protos/perfetto/trace/ftrace/g2d.proto";
+import "protos/perfetto/trace/ftrace/google_icc_trace.proto";
+import "protos/perfetto/trace/ftrace/google_irm_trace.proto";
import "protos/perfetto/trace/ftrace/gpu_mem.proto";
import "protos/perfetto/trace/ftrace/gpu_scheduler.proto";
import "protos/perfetto/trace/ftrace/hyp.proto";
@@ -618,5 +620,7 @@
FastrpcDmaAllocFtraceEvent fastrpc_dma_alloc = 499;
FastrpcDmaUnmapFtraceEvent fastrpc_dma_unmap = 500;
FastrpcDmaMapFtraceEvent fastrpc_dma_map = 501;
+ GoogleIccEventFtraceEvent google_icc_event = 502;
+ GoogleIrmEventFtraceEvent google_irm_event = 503;
}
}
diff --git a/protos/perfetto/trace/ftrace/google_icc_trace.proto b/protos/perfetto/trace/ftrace/google_icc_trace.proto
new file mode 100644
index 0000000..07861c8
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/google_icc_trace.proto
@@ -0,0 +1,11 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message GoogleIccEventFtraceEvent {
+ optional string event = 1;
+ optional uint64 timestamp = 2;
+}
diff --git a/protos/perfetto/trace/ftrace/google_irm_trace.proto b/protos/perfetto/trace/ftrace/google_irm_trace.proto
new file mode 100644
index 0000000..140ee13
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/google_irm_trace.proto
@@ -0,0 +1,11 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message GoogleIrmEventFtraceEvent {
+ optional string event = 1;
+ optional uint64 timestamp = 2;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 81977bf..5ca1994 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -8517,6 +8517,24 @@
// End of protos/perfetto/trace/ftrace/generic.proto
+// Begin of protos/perfetto/trace/ftrace/google_icc_trace.proto
+
+message GoogleIccEventFtraceEvent {
+ optional string event = 1;
+ optional uint64 timestamp = 2;
+}
+
+// End of protos/perfetto/trace/ftrace/google_icc_trace.proto
+
+// Begin of protos/perfetto/trace/ftrace/google_irm_trace.proto
+
+message GoogleIrmEventFtraceEvent {
+ optional string event = 1;
+ optional uint64 timestamp = 2;
+}
+
+// End of protos/perfetto/trace/ftrace/google_irm_trace.proto
+
// Begin of protos/perfetto/trace/ftrace/gpu_mem.proto
message GpuMemTotalFtraceEvent {
@@ -10765,6 +10783,8 @@
FastrpcDmaAllocFtraceEvent fastrpc_dma_alloc = 499;
FastrpcDmaUnmapFtraceEvent fastrpc_dma_unmap = 500;
FastrpcDmaMapFtraceEvent fastrpc_dma_map = 501;
+ GoogleIccEventFtraceEvent google_icc_event = 502;
+ GoogleIrmEventFtraceEvent google_irm_event = 503;
}
}
diff --git a/src/tools/ftrace_proto_gen/event_list b/src/tools/ftrace_proto_gen/event_list
index 3d5ead4..0bc44e0 100644
--- a/src/tools/ftrace_proto_gen/event_list
+++ b/src/tools/ftrace_proto_gen/event_list
@@ -496,3 +496,5 @@
fastrpc/fastrpc_dma_alloc
fastrpc/fastrpc_dma_unmap
fastrpc/fastrpc_dma_map
+google_icc_trace/google_icc_event
+google_irm_trace/google_irm_event
diff --git a/src/trace_processor/importers/common/track_tracker.cc b/src/trace_processor/importers/common/track_tracker.cc
index ca5ffbd..5026391 100644
--- a/src/trace_processor/importers/common/track_tracker.cc
+++ b/src/trace_processor/importers/common/track_tracker.cc
@@ -249,6 +249,18 @@
return *trigger_track_id_;
}
+TrackId TrackTracker::GetOrCreateInterconnectTrack() {
+ if (interconnect_events_track_id_) {
+ return *interconnect_events_track_id_;
+ }
+ tables::TrackTable::Row row;
+ row.name = context_->storage->InternString("Interconnect Events");
+ row.machine_id = context_->machine_id();
+ interconnect_events_track_id_ =
+ context_->storage->mutable_track_table()->Insert(row).id;
+ return *interconnect_events_track_id_;
+}
+
TrackId TrackTracker::InternGlobalCounterTrack(TrackTracker::Group group,
StringId name,
SetArgsCallback callback,
diff --git a/src/trace_processor/importers/common/track_tracker.h b/src/trace_processor/importers/common/track_tracker.h
index a7d481a..0fec299 100644
--- a/src/trace_processor/importers/common/track_tracker.h
+++ b/src/trace_processor/importers/common/track_tracker.h
@@ -88,6 +88,9 @@
// received by the service.
TrackId GetOrCreateTriggerTrack();
+ // Returns the ID of the track for Google Interconnect events
+ TrackId GetOrCreateInterconnectTrack();
+
// Interns a global counter track into the storage.
TrackId InternGlobalCounterTrack(Group group,
StringId name,
@@ -224,6 +227,7 @@
std::optional<TrackId> chrome_global_instant_track_id_;
std::optional<TrackId> trigger_track_id_;
+ std::optional<TrackId> interconnect_events_track_id_;
const StringId source_key_ = kNullStringId;
const StringId trace_id_key_ = kNullStringId;
diff --git a/src/trace_processor/importers/ftrace/ftrace_descriptors.cc b/src/trace_processor/importers/ftrace/ftrace_descriptors.cc
index 0955a25..aafa9b4 100644
--- a/src/trace_processor/importers/ftrace/ftrace_descriptors.cc
+++ b/src/trace_processor/importers/ftrace/ftrace_descriptors.cc
@@ -24,7 +24,7 @@
namespace trace_processor {
namespace {
-std::array<FtraceMessageDescriptor, 502> descriptors{{
+std::array<FtraceMessageDescriptor, 504> descriptors{{
{nullptr, 0, {}},
{nullptr, 0, {}},
{nullptr, 0, {}},
@@ -5547,6 +5547,24 @@
{"mflags", ProtoSchemaType::kInt32},
},
},
+ {
+ "google_icc_event",
+ 2,
+ {
+ {},
+ {"event", ProtoSchemaType::kString},
+ {"timestamp", ProtoSchemaType::kUint64},
+ },
+ },
+ {
+ "google_irm_event",
+ 2,
+ {
+ {},
+ {"event", ProtoSchemaType::kString},
+ {"timestamp", ProtoSchemaType::kUint64},
+ },
+ },
}};
} // namespace
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.cc b/src/trace_processor/importers/ftrace/ftrace_parser.cc
index 4390a71..ba8a259 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.cc
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.cc
@@ -57,6 +57,8 @@
#include "protos/perfetto/trace/ftrace/ftrace_stats.pbzero.h"
#include "protos/perfetto/trace/ftrace/g2d.pbzero.h"
#include "protos/perfetto/trace/ftrace/generic.pbzero.h"
+#include "protos/perfetto/trace/ftrace/google_icc_trace.pbzero.h"
+#include "protos/perfetto/trace/ftrace/google_irm_trace.pbzero.h"
#include "protos/perfetto/trace/ftrace/gpu_mem.pbzero.h"
#include "protos/perfetto/trace/ftrace/i2c.pbzero.h"
#include "protos/perfetto/trace/ftrace/ion.pbzero.h"
@@ -339,6 +341,8 @@
android_fs_category_id_(context_->storage->InternString("android_fs")),
android_fs_data_read_id_(
context_->storage->InternString("android_fs_data_read")),
+ google_icc_event_id_(context->storage->InternString("google_icc_event")),
+ google_irm_event_id_(context->storage->InternString("google_irm_event")),
runtime_status_invalid_id_(
context->storage->InternString("Invalid State")),
runtime_status_active_id_(context->storage->InternString("Active")),
@@ -1148,6 +1152,14 @@
ParsePanelWriteGeneric(ts, pid, fld_bytes);
break;
}
+ case FtraceEvent::kGoogleIccEventFieldNumber: {
+ ParseGoogleIccEvent(ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kGoogleIrmEventFieldNumber: {
+ ParseGoogleIrmEvent(ts, fld_bytes);
+ break;
+ }
default:
break;
}
@@ -1610,6 +1622,24 @@
evt.func_name(), tgid, evt.value());
}
+void FtraceParser::ParseGoogleIccEvent(int64_t timestamp, ConstBytes blob) {
+ protos::pbzero::GoogleIccEventFtraceEvent::Decoder evt(blob.data, blob.size);
+ TrackId track_id = context_->track_tracker->GetOrCreateInterconnectTrack();
+ StringId slice_name_id =
+ context_->storage->InternString(base::StringView(evt.event()));
+ context_->slice_tracker->Scoped(timestamp, track_id, google_icc_event_id_,
+ slice_name_id, 0);
+}
+
+void FtraceParser::ParseGoogleIrmEvent(int64_t timestamp, ConstBytes blob) {
+ protos::pbzero::GoogleIrmEventFtraceEvent::Decoder evt(blob.data, blob.size);
+ TrackId track_id = context_->track_tracker->GetOrCreateInterconnectTrack();
+ StringId slice_name_id =
+ context_->storage->InternString(base::StringView(evt.event()));
+ context_->slice_tracker->Scoped(timestamp, track_id, google_irm_event_id_,
+ slice_name_id, 0);
+}
+
/** Parses ion heap events present in Pixel kernels. */
void FtraceParser::ParseIonHeapGrowOrShrink(int64_t timestamp,
uint32_t pid,
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.h b/src/trace_processor/importers/ftrace/ftrace_parser.h
index 6c84c6d..619b8d4 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.h
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.h
@@ -301,6 +301,8 @@
void ParsePanelWriteGeneric(int64_t timestamp,
uint32_t pid,
protozero::ConstBytes);
+ void ParseGoogleIccEvent(int64_t timestamp, protozero::ConstBytes);
+ void ParseGoogleIrmEvent(int64_t timestamp, protozero::ConstBytes);
TraceProcessorContext* context_;
RssStatTracker rss_stat_tracker_;
@@ -390,6 +392,8 @@
const StringId bytes_read_id_end_;
const StringId android_fs_category_id_;
const StringId android_fs_data_read_id_;
+ const StringId google_icc_event_id_;
+ const StringId google_irm_event_id_;
const StringId runtime_status_invalid_id_;
const StringId runtime_status_active_id_;
const StringId runtime_status_suspending_id_;
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index 09615fe..23fc16a 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -5024,6 +5024,32 @@
kUnsetFtraceId,
349,
kUnsetSize},
+ {"google_icc_event",
+ "google_icc_trace",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "event", 1, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "timestamp", 2, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 502,
+ kUnsetSize},
+ {"google_irm_event",
+ "google_irm_trace",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "event", 1, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "timestamp", 2, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 503,
+ kUnsetSize},
{"gpu_mem_total",
"gpu_mem",
{
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/google_icc_trace/google_icc_event/format b/src/traced/probes/ftrace/test/data/synthetic/events/google_icc_trace/google_icc_event/format
new file mode 100644
index 0000000..ffbfdab
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/google_icc_trace/google_icc_event/format
@@ -0,0 +1,12 @@
+name: google_icc_event
+ID: 1559
+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[] event; offset:8; size:4; signed:0;
+ field:u64 timestamp; offset:16; size:8; signed:0;
+
+print fmt: "event: %s, timestamp: %llu", __get_str(event), REC->timestamp
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/google_irm_trace/google_irm_event/format b/src/traced/probes/ftrace/test/data/synthetic/events/google_irm_trace/google_irm_event/format
new file mode 100644
index 0000000..fcacc10
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/google_irm_trace/google_irm_event/format
@@ -0,0 +1,12 @@
+name: google_irm_event
+ID: 1561
+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[] event; offset:8; size:4; signed:0;
+ field:u64 timestamp; offset:16; size:8; signed:0;
+
+print fmt: "event: %s, timestamp: %llu", __get_str(event), REC->timestamp
\ No newline at end of file