diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 283241b1f42c..ea80d2ae1adf 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -219,3 +219,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterruptible_tasks); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterruptible_tasks_dn); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_est_update); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 3e33d63a00d7..da2d9c76a6d5 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -358,6 +358,10 @@ 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_setscheduler_uclamp, + TP_PROTO(struct task_struct *tsk, int clamp_id, unsigned int value), + TP_ARGS(tsk, clamp_id, value)); + #endif /* _TRACE_HOOK_SCHED_H */ /* This part must be outside protection */ #include diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 505350c85325..607c64aabdd6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1898,12 +1898,14 @@ static void __setscheduler_uclamp(struct task_struct *p, attr->sched_util_min != -1) { uclamp_se_set(&p->uclamp_req[UCLAMP_MIN], attr->sched_util_min, true); + trace_android_vh_setscheduler_uclamp(p, UCLAMP_MIN, attr->sched_util_min); } if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX && attr->sched_util_max != -1) { uclamp_se_set(&p->uclamp_req[UCLAMP_MAX], attr->sched_util_max, true); + trace_android_vh_setscheduler_uclamp(p, UCLAMP_MAX, attr->sched_util_max); } }