From fdfaf852cd521435178bf8dce1af9eddaafd71a3 Mon Sep 17 00:00:00 2001 From: zhengding chen Date: Tue, 1 Jun 2021 20:59:53 +0800 Subject: [PATCH] ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power We want to record the cputime of each running process by adding hooks for cpufreq_acct_update_power. Bug: 186604985 Signed-off-by: zhengding chen Change-Id: I35e38be4680781df3338b4a01041922294aecaa0 (cherry picked from commit 3983753280987d68138ce249232b3d1b775ab1e6) --- drivers/android/vendor_hooks.c | 1 + drivers/cpufreq/cpufreq_times.c | 3 +++ include/trace/hooks/cpufreq.h | 4 ++++ 3 files changed, 8 insertions(+) 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);