diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 2d945fdd0f37..4eebdfd904bf 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -239,6 +239,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_by_task, struct task_struct *p, unsigned int *dest_cpu), TP_ARGS(cpu_valid_mask, new_mask, p, dest_cpu), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield, + TP_PROTO(struct rq *rq), + TP_ARGS(rq), 1); + DECLARE_HOOK(android_vh_free_task, TP_PROTO(struct task_struct *p), TP_ARGS(p)); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index ad39dea4b7c2..4aba679e4623 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8359,6 +8359,8 @@ static void do_sched_yield(void) schedstat_inc(rq->yld_count); current->sched_class->yield_task(rq); + trace_android_rvh_do_sched_yield(rq); + preempt_disable(); rq_unlock_irq(rq, &rf); sched_preempt_enable_no_resched(); diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index 59b1f9215a3a..0255562314cd 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -75,3 +75,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_getaffinity); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);