aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-06-27 03:10:19 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-06-27 03:10:19 +0000
commit29e47ffb5bea63835723f6baae86d7bd1ea66c6c (patch)
treea17b63eb679e0f462a31c367d893f368d3b0bc12
parentdb0a9bf73bf754cceedc35cfd6f008cec40bae2a (diff)
parentabda07cf4969632987fa795bcce3422ba67c2d13 (diff)
downloadperfetto-android10-s3-release.tar.gz
Change-Id: I2dcdf0ee342e914d7cabf27d14a9803a0fc32e14
-rw-r--r--protos/perfetto/trace/ftrace/ftrace_event.proto1
-rw-r--r--protos/perfetto/trace/ftrace/power.proto4
-rw-r--r--protos/perfetto/trace/perfetto_trace.proto5
-rw-r--r--src/perfetto_cmd/perfetto_cmd.cc1
-rw-r--r--src/traced/probes/ftrace/event_info.cc10
-rw-r--r--src/traced/probes/ftrace/ftrace_config_muxer.cc2
-rw-r--r--src/traced/probes/ftrace/test/data/synthetic/events/power/gpu_frequency/format12
-rw-r--r--tools/ftrace_proto_gen/event_whitelist1
8 files changed, 35 insertions, 1 deletions
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 5e27dac4f..6996d0afb 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -394,5 +394,6 @@ message FtraceEvent {
SysEnterFtraceEvent sys_enter = 329;
SysExitFtraceEvent sys_exit = 330;
ZeroFtraceEvent zero = 331;
+ GpuFrequencyFtraceEvent gpu_frequency = 332;
}
}
diff --git a/protos/perfetto/trace/ftrace/power.proto b/protos/perfetto/trace/ftrace/power.proto
index b8548e5f1..a79cc03f3 100644
--- a/protos/perfetto/trace/ftrace/power.proto
+++ b/protos/perfetto/trace/ftrace/power.proto
@@ -39,3 +39,7 @@ message SuspendResumeFtraceEvent {
optional int32 val = 2;
optional uint32 start = 3;
}
+message GpuFrequencyFtraceEvent {
+ optional uint32 gpu_id = 1;
+ optional uint32 state = 2;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 0d1c759f7..f563be5ff 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -1932,6 +1932,7 @@ message FtraceEvent {
SysEnterFtraceEvent sys_enter = 329;
SysExitFtraceEvent sys_exit = 330;
ZeroFtraceEvent zero = 331;
+ GpuFrequencyFtraceEvent gpu_frequency = 332;
}
}
@@ -2315,6 +2316,10 @@ message SuspendResumeFtraceEvent {
optional int32 val = 2;
optional uint32 start = 3;
}
+message GpuFrequencyFtraceEvent {
+ optional uint32 gpu_id = 1;
+ optional uint32 state = 2;
+}
// End of protos/perfetto/trace/ftrace/power.proto
diff --git a/src/perfetto_cmd/perfetto_cmd.cc b/src/perfetto_cmd/perfetto_cmd.cc
index a54d23513..e1f71dd1d 100644
--- a/src/perfetto_cmd/perfetto_cmd.cc
+++ b/src/perfetto_cmd/perfetto_cmd.cc
@@ -274,6 +274,7 @@ int PerfettoCmd::Main(int argc, char** argv) {
ds_config->mutable_ftrace_config()->add_ftrace_events("sched_switch");
ds_config->mutable_ftrace_config()->add_ftrace_events("cpu_idle");
ds_config->mutable_ftrace_config()->add_ftrace_events("cpu_frequency");
+ ds_config->mutable_ftrace_config()->add_ftrace_events("gpu_frequency");
ds_config->set_target_buffer(0);
test_config.SerializeToString(&trace_config_raw);
} else {
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index 92ed091c6..657a459b3 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -3615,6 +3615,16 @@ std::vector<Event> GetStaticEventInfo() {
{
events.emplace_back(Event{});
Event* event = &events.back();
+ event->name = "gpu_frequency";
+ event->group = "power";
+ event->proto_field_id = 332;
+ event->fields.push_back(MakeField("gpu_id", 1, ProtoSchemaType::kUint32));
+ event->fields.push_back(MakeField("state", 2, ProtoSchemaType::kUint32));
+ }
+
+ {
+ events.emplace_back(Event{});
+ Event* event = &events.back();
event->name = "sys_enter";
event->group = "raw_syscalls";
event->proto_field_id = 329;
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer.cc b/src/traced/probes/ftrace/ftrace_config_muxer.cc
index a8d44d3fc..4dbf313b8 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer.cc
+++ b/src/traced/probes/ftrace/ftrace_config_muxer.cc
@@ -106,7 +106,6 @@ std::set<GroupAndName> FtraceConfigMuxer::GetFtraceEvents(
if (category == "gfx") {
AddEventGroup(table, "mdss", &events);
AddEventGroup(table, "sde", &events);
- AddEventGroup(table, "mali_systrace", &events);
continue;
}
@@ -166,6 +165,7 @@ std::set<GroupAndName> FtraceConfigMuxer::GetFtraceEvents(
if (category == "freq") {
events.insert(GroupAndName("power", "cpu_frequency"));
+ events.insert(GroupAndName("power", "gpu_frequency"));
events.insert(GroupAndName("power", "clock_set_rate"));
events.insert(GroupAndName("power", "clock_disable"));
events.insert(GroupAndName("power", "clock_enable"));
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/power/gpu_frequency/format b/src/traced/probes/ftrace/test/data/synthetic/events/power/gpu_frequency/format
new file mode 100644
index 000000000..6b7707113
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/power/gpu_frequency/format
@@ -0,0 +1,12 @@
+name: gpu_frequency
+ID: 511
+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:unsigned int state; offset:8; size:4; signed:0;
+ field:unsigned int gpu_id; offset:12; size:4; signed:0;
+
+print fmt: "state=%lu gpu_id=%lu", REC->state, REC->gpu_id
diff --git a/tools/ftrace_proto_gen/event_whitelist b/tools/ftrace_proto_gen/event_whitelist
index 9f9737acf..e0662ce32 100644
--- a/tools/ftrace_proto_gen/event_whitelist
+++ b/tools/ftrace_proto_gen/event_whitelist
@@ -326,3 +326,4 @@ mm_event/mm_event_record
raw_syscalls/sys_enter
raw_syscalls/sys_exit
systrace/0
+power/gpu_frequency