diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c46ea7001bd2..35c6846bf96b 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -241,4 +241,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_acct_update_power); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal); diff --git a/drivers/cpufreq/cpufreq_times.c b/drivers/cpufreq/cpufreq_times.c index 4df55b323fc1..47dc34c01299 100644 --- a/drivers/cpufreq/cpufreq_times.c +++ b/drivers/cpufreq/cpufreq_times.c @@ -21,6 +21,7 @@ #include #include #include +#include static DEFINE_SPINLOCK(task_time_in_state_lock); /* task->time_in_state */ @@ -146,6 +147,8 @@ void cpufreq_acct_update_power(struct task_struct *p, u64 cputime) p->time_in_state) p->time_in_state[state] += cputime; spin_unlock_irqrestore(&task_time_in_state_lock, flags); + + trace_android_vh_cpufreq_acct_update_power(cputime, p, state); } static int cpufreq_times_get_index(struct cpu_freqs *freqs, unsigned int freq) diff --git a/include/trace/hooks/cpufreq.h b/include/trace/hooks/cpufreq.h index c6c2b19cdadf..a18ddba496bc 100644 --- a/include/trace/hooks/cpufreq.h +++ b/include/trace/hooks/cpufreq.h @@ -20,6 +20,10 @@ DECLARE_HOOK(android_vh_freq_table_limits, unsigned int max_freq), TP_ARGS(policy, min_freq, max_freq)); +DECLARE_HOOK(android_vh_cpufreq_acct_update_power, + TP_PROTO(u64 cputime, struct task_struct *p, unsigned int state), + TP_ARGS(cputime, p, state)); + DECLARE_RESTRICTED_HOOK(android_rvh_cpufreq_transition, TP_PROTO(struct cpufreq_policy *policy), TP_ARGS(policy), 1);