diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index aef267114508..179bdf6a695a 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -329,6 +329,10 @@ DECLARE_HOOK(android_vh_dup_task_struct, TP_PROTO(struct task_struct *tsk, struct task_struct *orig), TP_ARGS(tsk, orig)); +DECLARE_RESTRICTED_HOOK(android_rvh_find_energy_efficient_cpu, + TP_PROTO(struct task_struct *p, int prev_cpu, int sync, int *new_cpu), + TP_ARGS(p, prev_cpu, sync, new_cpu), 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 4fabdddc6d91..2c4b87c9ddae 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8454,6 +8454,11 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu, int sy struct sched_domain *sd; struct perf_domain *pd; struct energy_env eenv; + int new_cpu = INT_MAX; + + trace_android_rvh_find_energy_efficient_cpu(p, prev_cpu, sync, &new_cpu); + if (new_cpu != INT_MAX) + return new_cpu; sync_entity_load_avg(&p->se); diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index a3b50d8657be..abc2c93604a2 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -86,3 +86,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_util_cfs_boost); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dup_task_struct); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);