From b8545ebaddac15e99fccf594350b477fe493a7a0 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Tue, 22 Mar 2022 22:22:09 +0800 Subject: [PATCH] ANDROID: sched: Add vendor hook for rt util update Vendor may have need to track rt util. Bug: 201261299 Signed-off-by: Rick Yiu Change-Id: I2f4e5142c6bc8574ee3558042e1fb0dae13b702d --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/rt.c | 3 +++ 3 files changed, 8 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 22b265b5cb98..8d5464a99035 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -366,3 +366,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_detach_entity_load_avg); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 62a6ea16aea9..561a4677b35d 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -437,6 +437,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_update_blocked_fair, TP_PROTO(struct rq *rq), TP_ARGS(rq), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_update_rt_rq_load_avg, + TP_PROTO(u64 now, struct rq *rq, struct task_struct *tsk, int running), + TP_ARGS(now, rq, tsk, running), 1); + /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index f9f7a73ae744..5901e8ea5e58 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1694,6 +1694,7 @@ static inline void set_next_task_rt(struct rq *rq, struct task_struct *p, bool f */ if (rq->curr->sched_class != &rt_sched_class) update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 0); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 0); rt_queue_push_tasks(rq); } @@ -1756,6 +1757,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) update_curr_rt(rq); update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1); /* * The previous task needs to be made eligible for pushing @@ -2572,6 +2574,7 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p, int queued) update_curr_rt(rq); update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1); + trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1); watchdog(rq, p);