From 310995a546acfc9faa4fc8db5183b36da7508db6 Mon Sep 17 00:00:00 2001 From: Liujie Xie Date: Thu, 11 Nov 2021 22:15:49 +0800 Subject: [PATCH] ANDROID: vendor_hooks: Add hooks to record the time of the process in various states These hooks will do the following works: a) record the time of the process in various states b) Make corresponding optimization strategies in different hooks Bug: 205938967 Signed-off-by: Liujie Xie Change-Id: Ia3c47bbf0aadd17337ce18fd910343b1b8c3ef93 (cherry picked from commit a61d61bab7c3d221d5d2250eacab2e4e9f59b252) Signed-off-by: Carlos Llamas (cherry picked from commit b7a1174cc5dfc68cf769547b91958df407e55981) (cherry picked from commit e1f430a48702844c01933a925c92b077ba14ec3f) --- include/trace/hooks/sched.h | 4 ++++ kernel/sched/fair.c | 2 ++ kernel/sched/rt.c | 2 ++ kernel/sched/vendor_hooks.c | 1 + 4 files changed, 9 insertions(+) diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 355d876e9b25..eb9cf143d49c 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -296,6 +296,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_dequeue_task_fair, TP_PROTO(struct rq *rq, struct task_struct *p, int flags), TP_ARGS(rq, p, flags), 1); +DECLARE_HOOK(android_vh_sched_stat_runtime_rt, + TP_PROTO(struct task_struct *tsk, u64 delta), + TP_ARGS(tsk, delta)); + 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); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index e618b1b19b46..94d19e48e42b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -58,6 +58,8 @@ #include +EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_runtime); + /* * Targeted preemption latency for CPU-bound tasks: * diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index ea0887541754..b55c5221fc4c 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1073,6 +1073,8 @@ static void update_curr_rt(struct rq *rq) update_current_exec_runtime(curr, now, delta_exec); + trace_android_vh_sched_stat_runtime_rt(curr, delta_exec); + if (!rt_bandwidth_enabled()) return; diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index ac82d6d3a3c6..05713aa5cb42 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -81,6 +81,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_stat_runtime_rt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wake_up_sync); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb);