aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liu <liumartin@google.com>2022-11-11 15:47:47 +0800
committerMartin Liu <liumartin@google.com>2022-11-17 12:22:08 +0800
commit8e37cea8f0f46fd666218831dcd3e4d7d8edcf7c (patch)
treed67c81efb3dbd914907febb033ce099175c9c48d
parentd85b69a13e9500910d715be5348dedb5f3fbe002 (diff)
downloadperfetto-8e37cea8f0f46fd666218831dcd3e4d7d8edcf7c.tar.gz
add cma alloc/info ftrace events
Backport from aosp/2299539 Bug: 258188795 Test: build pass Change-Id: Ied8cb9914cbe00fbb8bf8ce2b429055b62b3ec14 Signed-off-by: Martin Liu <liumartin@google.com> Merged-In: Ied8cb9914cbe00fbb8bf8ce2b429055b62b3ec14
-rw-r--r--Android.bp14
-rw-r--r--BUILD1
-rw-r--r--protos/perfetto/trace/ftrace/all_protos.gni1
-rw-r--r--protos/perfetto/trace/ftrace/cma.proto24
-rw-r--r--protos/perfetto/trace/ftrace/ftrace_event.proto4
-rw-r--r--protos/perfetto/trace/perfetto_trace.proto25
-rw-r--r--src/traced/probes/ftrace/event_info.cc53
-rw-r--r--src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_info/format20
-rw-r--r--src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_start/format13
-rw-r--r--tools/ftrace_proto_gen/event_list2
10 files changed, 157 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
index 5aa519fe0..e5264d9e3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4204,6 +4204,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -4434,6 +4435,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -4497,6 +4499,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/clk.gen.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.gen.cc",
@@ -4560,6 +4563,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -4623,6 +4627,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/clk.gen.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.gen.h",
@@ -4690,6 +4695,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -4752,6 +4758,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/clk.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.pb.cc",
@@ -4815,6 +4822,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -4877,6 +4885,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/clk.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.pb.h",
@@ -4944,6 +4953,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -5007,6 +5017,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.pbzero.cc",
@@ -5070,6 +5081,7 @@ genrule {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
@@ -5133,6 +5145,7 @@ genrule {
"external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/cma.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/cros_ec.pbzero.h",
@@ -9592,6 +9605,7 @@ java_library {
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
diff --git a/BUILD b/BUILD
index 784ea1ba5..ab039d892 100644
--- a/BUILD
+++ b/BUILD
@@ -3002,6 +3002,7 @@ perfetto_proto_library(
"protos/perfetto/trace/ftrace/block.proto",
"protos/perfetto/trace/ftrace/cgroup.proto",
"protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
"protos/perfetto/trace/ftrace/compaction.proto",
"protos/perfetto/trace/ftrace/cpuhp.proto",
"protos/perfetto/trace/ftrace/cros_ec.proto",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 35802909f..b0ff5622f 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -24,6 +24,7 @@ ftrace_proto_names = [
"block.proto",
"cgroup.proto",
"clk.proto",
+ "cma.proto",
"compaction.proto",
"cpuhp.proto",
"cros_ec.proto",
diff --git a/protos/perfetto/trace/ftrace/cma.proto b/protos/perfetto/trace/ftrace/cma.proto
new file mode 100644
index 000000000..20f7a7fbf
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/cma.proto
@@ -0,0 +1,24 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message CmaAllocStartFtraceEvent {
+ optional uint32 align = 1;
+ optional uint32 count = 2;
+ optional string name = 3;
+}
+message CmaAllocInfoFtraceEvent {
+ optional uint32 align = 1;
+ optional uint32 count = 2;
+ optional uint32 err_iso = 3;
+ optional uint32 err_mig = 4;
+ optional uint32 err_test = 5;
+ optional string name = 6;
+ optional uint64 nr_mapped = 7;
+ optional uint64 nr_migrated = 8;
+ optional uint64 nr_reclaimed = 9;
+ optional uint64 pfn = 10;
+}
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 85ff78853..dbb18e231 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -24,6 +24,7 @@ import "protos/perfetto/trace/ftrace/binder.proto";
import "protos/perfetto/trace/ftrace/block.proto";
import "protos/perfetto/trace/ftrace/cgroup.proto";
import "protos/perfetto/trace/ftrace/clk.proto";
+import "protos/perfetto/trace/ftrace/cma.proto";
import "protos/perfetto/trace/ftrace/compaction.proto";
import "protos/perfetto/trace/ftrace/cpuhp.proto";
import "protos/perfetto/trace/ftrace/cros_ec.proto";
@@ -519,5 +520,8 @@ message FtraceEvent {
DmaFenceSignaledFtraceEvent dma_fence_signaled = 416;
DmaFenceWaitStartFtraceEvent dma_fence_wait_start = 417;
DmaFenceWaitEndFtraceEvent dma_fence_wait_end = 418;
+ // Reserved: 419-464.
+ CmaAllocStartFtraceEvent cma_alloc_start = 465;
+ CmaAllocInfoFtraceEvent cma_alloc_info = 466;
}
}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 2e560602a..58a0f68e6 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -3620,6 +3620,28 @@ message ClkSetRateFtraceEvent {
// End of protos/perfetto/trace/ftrace/clk.proto
+// Begin of protos/perfetto/trace/ftrace/cma.proto
+
+message CmaAllocStartFtraceEvent {
+ optional uint32 align = 1;
+ optional uint32 count = 2;
+ optional string name = 3;
+}
+message CmaAllocInfoFtraceEvent {
+ optional uint32 align = 1;
+ optional uint32 count = 2;
+ optional uint32 err_iso = 3;
+ optional uint32 err_mig = 4;
+ optional uint32 err_test = 5;
+ optional string name = 6;
+ optional uint64 nr_mapped = 7;
+ optional uint64 nr_migrated = 8;
+ optional uint64 nr_reclaimed = 9;
+ optional uint64 pfn = 10;
+}
+
+// End of protos/perfetto/trace/ftrace/cma.proto
+
// Begin of protos/perfetto/trace/ftrace/compaction.proto
message MmCompactionBeginFtraceEvent {
@@ -6542,6 +6564,9 @@ message FtraceEvent {
DmaFenceSignaledFtraceEvent dma_fence_signaled = 416;
DmaFenceWaitStartFtraceEvent dma_fence_wait_start = 417;
DmaFenceWaitEndFtraceEvent dma_fence_wait_end = 418;
+ // Reserved: 419-464.
+ CmaAllocStartFtraceEvent cma_alloc_start = 465;
+ CmaAllocInfoFtraceEvent cma_alloc_info = 466;
}
}
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index e7c83a49b..700503d24 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -782,6 +782,59 @@ std::vector<Event> GetStaticEventInfo() {
kUnsetFtraceId,
322,
kUnsetSize},
+ {"cma_alloc_start",
+ "cma",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "align", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "count", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "name", 3, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 465,
+ kUnsetSize},
+ {"cma_alloc_info",
+ "cma",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "align", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "count", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "err_iso", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "err_mig", 4, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "err_test", 5, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "name", 6, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "nr_mapped", 7, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "nr_migrated", 8, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "nr_reclaimed", 9, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pfn", 10, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 466,
+ kUnsetSize},
{"mm_compaction_begin",
"compaction",
{
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_info/format b/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_info/format
new file mode 100644
index 000000000..038d756ba
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_info/format
@@ -0,0 +1,20 @@
+name: cma_alloc_info
+ID: 292
+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[] name; offset:8; size:4; signed:0;
+ field:unsigned long pfn; offset:16; size:8; signed:0;
+ field:unsigned int count; offset:24; size:4; signed:0;
+ field:unsigned int align; offset:28; size:4; signed:0;
+ field:unsigned long nr_migrated; offset:32; size:8; signed:0;
+ field:unsigned long nr_reclaimed; offset:40; size:8; signed:0;
+ field:unsigned long nr_mapped; offset:48; size:8; signed:0;
+ field:unsigned int err_iso; offset:56; size:4; signed:0;
+ field:unsigned int err_mig; offset:60; size:4; signed:0;
+ field:unsigned int err_test; offset:64; size:4; signed:0;
+
+print fmt: "name=%s pfn=0x%lx count=%u align=%u nr_migrated=%lu nr_reclaimed=%lu nr_mapped=%lu err_iso=%u err_mig=%u err_test=%u", __get_str(name), REC->pfn, REC->count, REC->align, REC->nr_migrated, REC->nr_reclaimed, REC->nr_mapped, REC->err_iso, REC->err_mig, REC->err_test
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_start/format b/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_start/format
new file mode 100644
index 000000000..2d3695f93
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_start/format
@@ -0,0 +1,13 @@
+name: cma_alloc_start
+ID: 291
+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[] name; offset:8; size:4; signed:0;
+ field:unsigned int count; offset:12; size:4; signed:0;
+ field:unsigned int align; offset:16; size:4; signed:0;
+
+print fmt: "name=%s count=%u align=%u", __get_str(name), REC->count, REC->align
diff --git a/tools/ftrace_proto_gen/event_list b/tools/ftrace_proto_gen/event_list
index 60a4a5748..5cd925367 100644
--- a/tools/ftrace_proto_gen/event_list
+++ b/tools/ftrace_proto_gen/event_list
@@ -413,3 +413,5 @@ dma_fence/dma_fence_emit
dma_fence/dma_fence_signaled
dma_fence/dma_fence_wait_start
dma_fence/dma_fence_wait_end
+cma/cma_alloc_start
+cma/cma_alloc_info