diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 2c11e964cc5b..8d79fbe24012 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -413,6 +413,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_task_comm, TP_PROTO(struct task_struct *tsk, bool exec), TP_ARGS(tsk, exec), 1); +DECLARE_HOOK(android_vh_move_entity, + TP_PROTO(int *move, unsigned int flags), + TP_ARGS(move, flags)); DECLARE_HOOK(android_vh_task_should_scx, TP_PROTO(int *should_scx, int policy, int prio), TP_ARGS(should_scx, policy, prio)); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 6e42c640520b..3d2e43080e2b 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1250,6 +1250,10 @@ void dec_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq) */ static inline bool move_entity(unsigned int flags) { + int move = 0; + trace_android_vh_move_entity(&move, flags); + if (move) + return true; if ((flags & (DEQUEUE_SAVE | DEQUEUE_MOVE)) == DEQUEUE_SAVE) return false; diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index 301be05fe55e..b58f1bbbf87f 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -106,6 +106,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_ptr); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_task_comm); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_move_entity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_task_should_scx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_ops_consider_migration); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_fix_prev_slice);