From fe580539f6cec43ddb0d6ecfd39aa2f4e45754ca Mon Sep 17 00:00:00 2001 From: Liangliang Li Date: Wed, 12 May 2021 18:25:07 +0800 Subject: [PATCH] ANDROID: vendor_hooks: Add hooks for account irqtime process tick Add a hook in irqtime_account_process_tick, which helps to get information about the high load task. Bug: 187904818 Change-Id: I644f7d66b09d047ca6b0a0fbd2915a6387c8c007 Signed-off-by: Liangliang Li --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/cputime.c | 1 + 3 files changed, 6 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index e90d7b81aa3b..13c8726d9d6f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -238,6 +238,7 @@ 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_typec_store_partner_src_caps); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_irqtime_account_process_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gpio_block_read); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ep_create_wakeup_source); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_timerfd_create); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index ae508abbae2b..c851e7ae3af9 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -299,6 +299,10 @@ 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)); +DECLARE_HOOK(android_vh_irqtime_account_process_tick, + TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick, int ticks), + TP_ARGS(p, rq, user_tick, ticks)); + DECLARE_RESTRICTED_HOOK(android_rvh_post_init_entity_util_avg, TP_PROTO(struct sched_entity *se), TP_ARGS(se), 1); diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c index c1f7c410dbb0..343147802e6c 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -399,6 +399,7 @@ static void irqtime_account_process_tick(struct task_struct *p, int user_tick, } else { account_system_index_time(p, cputime, CPUTIME_SYSTEM); } + trace_android_vh_irqtime_account_process_tick(p, this_rq(), user_tick, ticks); } static void irqtime_account_idle_ticks(int ticks)