From 475aea007d6565553bf161b1035479c6a659c525 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Tue, 16 Mar 2021 10:07:31 +0800 Subject: [PATCH] ANDROID: sched: Add vendor hook for util_est_update Vendor may have its own estimated utilization. Bug: 170508405 Signed-off-by: Rick Yiu Change-Id: I6055907de75ace4586c3ad854d40f42e3bf40147 --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/fair.c | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 695fecabefdb..2bb02e3bb464 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -205,3 +205,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_ro); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_rw); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_before_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_after_init); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_est_update); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index bdf8290f33db..939e8389f88a 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -288,6 +288,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_replace_next_task_fair, TP_PROTO(struct rq *rq, struct task_struct **p, struct sched_entity **se, bool *repick, bool simple), TP_ARGS(rq, p, se, repick, simple), 1); +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); + /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8dd160907a78..9ed56b5d7efb 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3971,6 +3971,11 @@ static inline void util_est_update(struct cfs_rq *cfs_rq, { long last_ewma_diff; struct util_est ue; + int ret = 0; + + trace_android_rvh_util_est_update(cfs_rq, p, task_sleep, &ret); + if (ret) + return; if (!sched_feat(UTIL_EST)) return;