summaryrefslogtreecommitdiff
path: root/include/trace
diff options
context:
space:
mode:
authorVijay Ganti <viganti@codeaurora.org>2016-01-26 18:26:58 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:22:34 -0700
commit5151ee897d65c53123a4c1fe78d872243fe19bcb (patch)
tree62ebfde432227723ad8cca352c7bd7b069bf072b /include/trace
parent5e635690ee27b98046d46a17f4f842001e1e7370 (diff)
soc: qcom: msm_perf: Detect and notify when peak perf Cluster load is seen
Detect Perf cluster peak loads near FMAX based on the trigger thresholds set. On meeting the peak load criteria, the userspace is notified to take action by applying parameters to enhance performance. CRs-Fixed: 969499 Change-Id: Ie9687bf1aa832434dc61d20056f91a096d7be4f0 Signed-off-by: Vijay Ganti <viganti@codeaurora.org>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/power.h92
1 files changed, 88 insertions, 4 deletions
diff --git a/include/trace/events/power.h b/include/trace/events/power.h
index 5d9bb61be49c..1d1979616a5c 100644
--- a/include/trace/events/power.h
+++ b/include/trace/events/power.h
@@ -839,11 +839,15 @@ DECLARE_EVENT_CLASS(cpu_modes,
unsigned int single_enter_cycle_cnt,
unsigned int single_exit_cycle_cnt,
unsigned int total_load, unsigned int multi_enter_cycle_cnt,
- unsigned int multi_exit_cycle_cnt, unsigned int mode,
+ unsigned int multi_exit_cycle_cnt,
+ unsigned int perf_cl_peak_enter_cycle_cnt,
+ unsigned int perf_cl_peak_exit_cycle_cnt,
+ unsigned int mode,
unsigned int cpu_cnt),
TP_ARGS(cpu, max_load, single_enter_cycle_cnt, single_exit_cycle_cnt,
- total_load, multi_enter_cycle_cnt, multi_exit_cycle_cnt, mode,
+ total_load, multi_enter_cycle_cnt, multi_exit_cycle_cnt,
+ perf_cl_peak_enter_cycle_cnt, perf_cl_peak_exit_cycle_cnt, mode,
cpu_cnt),
TP_STRUCT__entry(
@@ -854,6 +858,8 @@ DECLARE_EVENT_CLASS(cpu_modes,
__field(u32, total_load)
__field(u32, multi_enter_cycle_cnt)
__field(u32, multi_exit_cycle_cnt)
+ __field(u32, perf_cl_peak_enter_cycle_cnt)
+ __field(u32, perf_cl_peak_exit_cycle_cnt)
__field(u32, mode)
__field(u32, cpu_cnt)
),
@@ -866,17 +872,23 @@ DECLARE_EVENT_CLASS(cpu_modes,
__entry->total_load = total_load;
__entry->multi_enter_cycle_cnt = multi_enter_cycle_cnt;
__entry->multi_exit_cycle_cnt = multi_exit_cycle_cnt;
+ __entry->perf_cl_peak_enter_cycle_cnt =
+ perf_cl_peak_enter_cycle_cnt;
+ __entry->perf_cl_peak_exit_cycle_cnt =
+ perf_cl_peak_exit_cycle_cnt;
__entry->mode = mode;
__entry->cpu_cnt = cpu_cnt;
),
- TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%u",
+ TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%u",
(unsigned int)__entry->cpu, (unsigned int)__entry->max_load,
(unsigned int)__entry->single_enter_cycle_cnt,
(unsigned int)__entry->single_exit_cycle_cnt,
(unsigned int)__entry->total_load,
(unsigned int)__entry->multi_enter_cycle_cnt,
(unsigned int)__entry->multi_exit_cycle_cnt,
+ (unsigned int)__entry->perf_cl_peak_enter_cycle_cnt,
+ (unsigned int)__entry->perf_cl_peak_exit_cycle_cnt,
(unsigned int)__entry->mode,
(unsigned int)__entry->cpu_cnt)
);
@@ -886,10 +898,14 @@ DEFINE_EVENT(cpu_modes, cpu_mode_detect,
unsigned int single_enter_cycle_cnt,
unsigned int single_exit_cycle_cnt,
unsigned int total_load, unsigned int multi_enter_cycle_cnt,
- unsigned int multi_exit_cycle_cnt, unsigned int mode,
+ unsigned int multi_exit_cycle_cnt,
+ unsigned int perf_cl_peak_enter_cycle_cnt,
+ unsigned int perf_cl_peak_exit_cycle_cnt,
+ unsigned int mode,
unsigned int cpu_cnt),
TP_ARGS(cpu, max_load, single_enter_cycle_cnt, single_exit_cycle_cnt,
total_load, multi_enter_cycle_cnt, multi_exit_cycle_cnt,
+ perf_cl_peak_enter_cycle_cnt, perf_cl_peak_exit_cycle_cnt,
mode, cpu_cnt)
);
@@ -998,6 +1014,74 @@ DEFINE_EVENT(timer_status, single_cycle_exit_timer_stop,
timer_rate, mode)
);
+DECLARE_EVENT_CLASS(perf_cl_peak_timer_status,
+ TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
+ unsigned int perf_cl_peak_enter_cycle_cnt,
+ unsigned int perf_cl_peak_exit_cycles,
+ unsigned int perf_cl_peak_exit_cycle_cnt,
+ unsigned int timer_rate,
+ unsigned int mode),
+ TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
+ perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
+ timer_rate, mode),
+
+ TP_STRUCT__entry(
+ __field(unsigned int, cpu)
+ __field(unsigned int, perf_cl_peak_enter_cycles)
+ __field(unsigned int, perf_cl_peak_enter_cycle_cnt)
+ __field(unsigned int, perf_cl_peak_exit_cycles)
+ __field(unsigned int, perf_cl_peak_exit_cycle_cnt)
+ __field(unsigned int, timer_rate)
+ __field(unsigned int, mode)
+ ),
+
+ TP_fast_assign(
+ __entry->cpu = cpu;
+ __entry->perf_cl_peak_enter_cycles = perf_cl_peak_enter_cycles;
+ __entry->perf_cl_peak_enter_cycle_cnt =
+ perf_cl_peak_enter_cycle_cnt;
+ __entry->perf_cl_peak_exit_cycles = perf_cl_peak_exit_cycles;
+ __entry->perf_cl_peak_exit_cycle_cnt =
+ perf_cl_peak_exit_cycle_cnt;
+ __entry->timer_rate = timer_rate;
+ __entry->mode = mode;
+ ),
+
+ TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u",
+ (unsigned int) __entry->cpu,
+ (unsigned int) __entry->perf_cl_peak_enter_cycles,
+ (unsigned int) __entry->perf_cl_peak_enter_cycle_cnt,
+ (unsigned int) __entry->perf_cl_peak_exit_cycles,
+ (unsigned int) __entry->perf_cl_peak_exit_cycle_cnt,
+ (unsigned int) __entry->timer_rate,
+ (unsigned int) __entry->mode)
+);
+
+DEFINE_EVENT(perf_cl_peak_timer_status, perf_cl_peak_exit_timer_start,
+ TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
+ unsigned int perf_cl_peak_enter_cycle_cnt,
+ unsigned int perf_cl_peak_exit_cycles,
+ unsigned int perf_cl_peak_exit_cycle_cnt,
+ unsigned int timer_rate,
+ unsigned int mode),
+ TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
+ perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
+ timer_rate, mode)
+);
+
+
+DEFINE_EVENT(perf_cl_peak_timer_status, perf_cl_peak_exit_timer_stop,
+ TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
+ unsigned int perf_cl_peak_enter_cycle_cnt,
+ unsigned int perf_cl_peak_exit_cycles,
+ unsigned int perf_cl_peak_exit_cycle_cnt,
+ unsigned int timer_rate,
+ unsigned int mode),
+ TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
+ perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
+ timer_rate, mode)
+);
+
#endif /* _TRACE_POWER_H */
/* This part must be outside protection */