From 63399b4e2e25b0a1522deb724f1de269ac4c8f8b Mon Sep 17 00:00:00 2001 From: Liujie Xie Date: Tue, 23 Mar 2021 07:54:24 +0800 Subject: [PATCH] ANDROID: vendor_hooks: Add hooks for account process tick Add a hook in account_process_tick, which help us to get information about the high load task and the cpu they running on. Bug: 183260319 Change-Id: I54162ce3c65bd69e08d2d4747e4d4883efe4c442 Signed-off-by: Liujie Xie --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 3 +++ kernel/sched/cputime.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 4a6972572374..ba2608c9ede6 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -217,3 +217,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cache_show); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpci_override_toggling); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_typec_tcpci_chk_contaminant); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_typec_tcpci_get_vbus); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index aed5b8f6fd0e..74aa0de55465 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -282,6 +282,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_util_est_update, TP_PROTO(struct cfs_rq *cfs_rq, struct task_struct *p, bool task_sleep, int *ret), TP_ARGS(cfs_rq, p, task_sleep, ret), 1); +DECLARE_HOOK(android_vh_account_task_time, + TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick), + TP_ARGS(p, rq, user_tick)); /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c index 1a2a7d7f79d5..c1f7c410dbb0 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -486,6 +486,7 @@ void account_process_tick(struct task_struct *p, int user_tick) if (vtime_accounting_enabled_this_cpu()) return; + trace_android_vh_account_task_time(p, this_rq(), user_tick); if (sched_clock_irqtime) { irqtime_account_process_tick(p, user_tick, 1);