Merge "thermal: perfetto/ftrace: Add thermal_exynos ftrace events" into main
diff --git a/Android.bp b/Android.bp
index 579e8f9..3f5cec7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -6533,6 +6533,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
@@ -6957,6 +6958,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
@@ -7042,6 +7044,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.gen.cc",
@@ -7127,6 +7130,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.gen.h",
@@ -7208,6 +7212,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
@@ -7292,6 +7297,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pb.cc",
@@ -7376,6 +7382,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pb.h",
@@ -7457,6 +7464,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
@@ -7542,6 +7550,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pbzero.cc",
@@ -7627,6 +7636,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/thermal_exynos.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/trusty.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pbzero.h",
@@ -14504,6 +14514,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
@@ -15770,6 +15781,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
diff --git a/BUILD b/BUILD
index 1ec9ddd..2edf805 100644
--- a/BUILD
+++ b/BUILD
@@ -4929,6 +4929,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/thermal_exynos.proto",
"protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index 910d067..ca78a55 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -78,6 +78,7 @@
"task.proto",
"tcp.proto",
"thermal.proto",
+ "thermal_exynos.proto",
"trusty.proto",
"ufs.proto",
"v4l2.proto",
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index 277a251..16984b7 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -78,6 +78,7 @@
import "protos/perfetto/trace/ftrace/task.proto";
import "protos/perfetto/trace/ftrace/tcp.proto";
import "protos/perfetto/trace/ftrace/thermal.proto";
+import "protos/perfetto/trace/ftrace/thermal_exynos.proto";
import "protos/perfetto/trace/ftrace/trusty.proto";
import "protos/perfetto/trace/ftrace/ufs.proto";
import "protos/perfetto/trace/ftrace/v4l2.proto";
@@ -624,5 +625,8 @@
GoogleIrmEventFtraceEvent google_irm_event = 503;
DevicePmCallbackStartFtraceEvent device_pm_callback_start = 504;
DevicePmCallbackEndFtraceEvent device_pm_callback_end = 505;
+ ThermalExynosAcpmBulkFtraceEvent thermal_exynos_acpm_bulk = 506;
+ ThermalExynosAcpmHighOverheadFtraceEvent thermal_exynos_acpm_high_overhead =
+ 507;
}
}
diff --git a/protos/perfetto/trace/ftrace/thermal_exynos.proto b/protos/perfetto/trace/ftrace/thermal_exynos.proto
new file mode 100644
index 0000000..7c3adb6
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/thermal_exynos.proto
@@ -0,0 +1,29 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message ThermalExynosAcpmBulkFtraceEvent {
+ optional uint32 tz_id = 1;
+ optional uint32 current_temp = 2;
+ optional uint32 ctrl_temp = 3;
+ optional uint32 cdev_state = 4;
+ optional int32 pid_et_p = 5;
+ optional int32 pid_power_range = 6;
+ optional int32 pid_p = 7;
+ optional int32 pid_i = 8;
+ optional int32 k_p = 9;
+ optional int32 k_i = 10;
+ optional uint64 timestamp = 11;
+}
+message ThermalExynosAcpmHighOverheadFtraceEvent {
+ optional int32 tz_id = 1;
+ optional uint32 current_temp = 2;
+ optional uint32 ctrl_temp = 3;
+ optional uint32 cdev_state = 4;
+ optional int32 pid_et_p = 5;
+ optional int32 k_p = 6;
+ optional int32 k_i = 7;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index e280127..960f8c3 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -9920,6 +9920,33 @@
// End of protos/perfetto/trace/ftrace/thermal.proto
+// Begin of protos/perfetto/trace/ftrace/thermal_exynos.proto
+
+message ThermalExynosAcpmBulkFtraceEvent {
+ optional uint32 tz_id = 1;
+ optional uint32 current_temp = 2;
+ optional uint32 ctrl_temp = 3;
+ optional uint32 cdev_state = 4;
+ optional int32 pid_et_p = 5;
+ optional int32 pid_power_range = 6;
+ optional int32 pid_p = 7;
+ optional int32 pid_i = 8;
+ optional int32 k_p = 9;
+ optional int32 k_i = 10;
+ optional uint64 timestamp = 11;
+}
+message ThermalExynosAcpmHighOverheadFtraceEvent {
+ optional int32 tz_id = 1;
+ optional uint32 current_temp = 2;
+ optional uint32 ctrl_temp = 3;
+ optional uint32 cdev_state = 4;
+ optional int32 pid_et_p = 5;
+ optional int32 k_p = 6;
+ optional int32 k_i = 7;
+}
+
+// End of protos/perfetto/trace/ftrace/thermal_exynos.proto
+
// Begin of protos/perfetto/trace/ftrace/trusty.proto
message TrustySmcFtraceEvent {
@@ -10811,6 +10838,9 @@
GoogleIrmEventFtraceEvent google_irm_event = 503;
DevicePmCallbackStartFtraceEvent device_pm_callback_start = 504;
DevicePmCallbackEndFtraceEvent device_pm_callback_end = 505;
+ ThermalExynosAcpmBulkFtraceEvent thermal_exynos_acpm_bulk = 506;
+ ThermalExynosAcpmHighOverheadFtraceEvent thermal_exynos_acpm_high_overhead =
+ 507;
}
}
diff --git a/src/tools/ftrace_proto_gen/event_list b/src/tools/ftrace_proto_gen/event_list
index 737e76d..a019827 100644
--- a/src/tools/ftrace_proto_gen/event_list
+++ b/src/tools/ftrace_proto_gen/event_list
@@ -500,3 +500,5 @@
google_irm_trace/google_irm_event
power/device_pm_callback_start
power/device_pm_callback_end
+thermal_exynos/thermal_exynos_acpm_bulk
+thermal_exynos/thermal_exynos_acpm_high_overhead
diff --git a/src/trace_processor/importers/ftrace/ftrace_descriptors.cc b/src/trace_processor/importers/ftrace/ftrace_descriptors.cc
index f3fe1ff..64ae4d57 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, 506> descriptors{{
+std::array<FtraceMessageDescriptor, 508> descriptors{{
{nullptr, 0, {}},
{nullptr, 0, {}},
{nullptr, 0, {}},
@@ -5587,6 +5587,38 @@
{"error", ProtoSchemaType::kInt32},
},
},
+ {
+ "thermal_exynos_acpm_bulk",
+ 11,
+ {
+ {},
+ {"tz_id", ProtoSchemaType::kUint32},
+ {"current_temp", ProtoSchemaType::kUint32},
+ {"ctrl_temp", ProtoSchemaType::kUint32},
+ {"cdev_state", ProtoSchemaType::kUint32},
+ {"pid_et_p", ProtoSchemaType::kInt32},
+ {"pid_power_range", ProtoSchemaType::kInt32},
+ {"pid_p", ProtoSchemaType::kInt32},
+ {"pid_i", ProtoSchemaType::kInt32},
+ {"k_p", ProtoSchemaType::kInt32},
+ {"k_i", ProtoSchemaType::kInt32},
+ {"timestamp", ProtoSchemaType::kUint64},
+ },
+ },
+ {
+ "thermal_exynos_acpm_high_overhead",
+ 7,
+ {
+ {},
+ {"tz_id", ProtoSchemaType::kInt32},
+ {"current_temp", ProtoSchemaType::kUint32},
+ {"ctrl_temp", ProtoSchemaType::kUint32},
+ {"cdev_state", ProtoSchemaType::kUint32},
+ {"pid_et_p", ProtoSchemaType::kInt32},
+ {"k_p", ProtoSchemaType::kInt32},
+ {"k_i", ProtoSchemaType::kInt32},
+ },
+ },
}};
} // namespace
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index 37a1b1a..61af03d 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -8833,6 +8833,74 @@
kUnsetFtraceId,
342,
kUnsetSize},
+ {"thermal_exynos_acpm_bulk",
+ "thermal_exynos",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "tz_id", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "current_temp", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ctrl_temp", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "cdev_state", 4, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pid_et_p", 5, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pid_power_range", 6, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pid_p", 7, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pid_i", 8, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "k_p", 9, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "k_i", 10, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "timestamp", 11, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 506,
+ kUnsetSize},
+ {"thermal_exynos_acpm_high_overhead",
+ "thermal_exynos",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "tz_id", 1, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "current_temp", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ctrl_temp", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "cdev_state", 4, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "pid_et_p", 5, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "k_p", 6, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "k_i", 7, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 507,
+ kUnsetSize},
{"trusty_smc",
"trusty",
{
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_bulk/format b/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_bulk/format
new file mode 100644
index 0000000..9ee9741
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_bulk/format
@@ -0,0 +1,21 @@
+name: thermal_exynos_acpm_bulk
+ID: 1074
+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:u8 tz_id; offset:8; size:1; signed:0;
+ field:u8 current_temp; offset:9; size:1; signed:0;
+ field:u8 ctrl_temp; offset:10; size:1; signed:0;
+ field:u8 cdev_state; offset:11; size:1; signed:0;
+ field:s32 pid_et_p; offset:12; size:4; signed:1;
+ field:s16 pid_power_range; offset:16; size:2; signed:1;
+ field:s16 pid_p; offset:18; size:2; signed:1;
+ field:s32 pid_i; offset:20; size:4; signed:1;
+ field:s32 k_p; offset:24; size:4; signed:1;
+ field:s32 k_i; offset:28; size:4; signed:1;
+ field:u64 timestamp; offset:32; size:8; signed:0;
+
+print fmt: "thermal_zone_id=%u current_temperature=%u ctrl_temp=%u cdev_state=%u pid_et_p=%d pid_power_range=%d pid_p=%d pid_i=%d k_p=%d k_i=%d timestamp=%llu", REC->tz_id, REC->current_temp, REC->ctrl_temp, REC->cdev_state, REC->pid_et_p, REC->pid_power_range, REC->pid_p, REC->pid_i, REC->k_p, REC->k_i, REC->timestamp
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_high_overhead/format b/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_high_overhead/format
new file mode 100644
index 0000000..5c4cc79
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/thermal_exynos/thermal_exynos_acpm_high_overhead/format
@@ -0,0 +1,17 @@
+name: thermal_exynos_acpm_high_overhead
+ID: 1075
+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:int tz_id; offset:8; size:4; signed:1;
+ field:u8 current_temp; offset:12; size:1; signed:0;
+ field:u8 ctrl_temp; offset:13; size:1; signed:0;
+ field:u8 cdev_state; offset:14; size:1; signed:0;
+ field:s32 pid_et_p; offset:16; size:4; signed:1;
+ field:s32 k_p; offset:20; size:4; signed:1;
+ field:s32 k_i; offset:24; size:4; signed:1;
+
+print fmt: "thermal_zone_id=%d current_temperature=%u ctrl_temp=%u cdev_state=%u pid_et_p=%d k_p=%d k_i=%d", REC->tz_id, REC->current_temp, REC->ctrl_temp, REC->cdev_state, REC->pid_et_p, REC->k_p, REC->k_i