diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index a18561eb2b00..ae7beb250686 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -473,6 +473,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_dequeue_entity_delayed, TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se, bool *delay), TP_ARGS(cfs_rq, se, delay), 1); +DECLARE_HOOK(android_vh_tick_nohz_idle_stop_tick, + TP_PROTO(void *unused), + TP_ARGS(unused)); /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index d75c93cba41c..8b338e9c740b 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -116,6 +116,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg_blocked_se); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg_se); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg_cfs_rq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg_internal); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tick_nohz_idle_stop_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_reweight_entity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_move_task); diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index a93b3fe37c05..ed59a40bbf60 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -1216,6 +1216,8 @@ void tick_nohz_idle_stop_tick(void) int cpu = smp_processor_id(); ktime_t expires; + trace_android_vh_tick_nohz_idle_stop_tick(NULL); + /* * If tick_nohz_get_sleep_length() ran tick_nohz_next_event(), the * tick timer expiration time is known already.