diff options
author | Martin Liu <liumartin@google.com> | 2022-11-11 15:47:47 +0800 |
---|---|---|
committer | Martin Liu <liumartin@google.com> | 2022-11-17 12:22:08 +0800 |
commit | 8e37cea8f0f46fd666218831dcd3e4d7d8edcf7c (patch) | |
tree | d67c81efb3dbd914907febb033ce099175c9c48d | |
parent | d85b69a13e9500910d715be5348dedb5f3fbe002 (diff) | |
download | perfetto-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.bp | 14 | ||||
-rw-r--r-- | BUILD | 1 | ||||
-rw-r--r-- | protos/perfetto/trace/ftrace/all_protos.gni | 1 | ||||
-rw-r--r-- | protos/perfetto/trace/ftrace/cma.proto | 24 | ||||
-rw-r--r-- | protos/perfetto/trace/ftrace/ftrace_event.proto | 4 | ||||
-rw-r--r-- | protos/perfetto/trace/perfetto_trace.proto | 25 | ||||
-rw-r--r-- | src/traced/probes/ftrace/event_info.cc | 53 | ||||
-rw-r--r-- | src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_info/format | 20 | ||||
-rw-r--r-- | src/traced/probes/ftrace/test/data/synthetic/events/cma/cma_alloc_start/format | 13 | ||||
-rw-r--r-- | tools/ftrace_proto_gen/event_list | 2 |
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", @@ -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 |