diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 1f6ac9318411..d5fbbfd703fc 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -312,6 +312,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_entity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_entity_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task_fair); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task_fair); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_stat_runtime_rt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_prepare_update_load_avg_se); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_finish_update_load_avg_se); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_is_initialized); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 3b7d022c4328..78f57b106e6c 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -354,6 +354,10 @@ DECLARE_HOOK(android_vh_prepare_update_load_avg_se, TP_PROTO(struct sched_entity *se, int flags), TP_ARGS(se, flags)); +DECLARE_HOOK(android_vh_sched_stat_runtime_rt, + TP_PROTO(struct task_struct *tsk, u64 delta), + TP_ARGS(tsk, delta)); + DECLARE_HOOK(android_vh_finish_update_load_avg_se, TP_PROTO(struct sched_entity *se, int flags), TP_ARGS(se, flags)); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 74ee2d1d16ce..8b45d14616ee 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -24,6 +24,8 @@ #include +EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_runtime); + /* * Targeted preemption latency for CPU-bound tasks: * diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index da40e5f07a57..1c4b0b14777f 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1026,6 +1026,8 @@ static void update_curr_rt(struct rq *rq) curr->se.exec_start = now; cgroup_account_cputime(curr, delta_exec); + trace_android_vh_sched_stat_runtime_rt(curr, delta_exec); + if (!rt_bandwidth_enabled()) return;