From de538a0896df72c6994087f9b41430ae94c85117 Mon Sep 17 00:00:00 2001 From: Xuewen Yan Date: Wed, 26 Feb 2025 10:58:45 +0800 Subject: [PATCH] ANDROID: vendor_hooks: add dequeue_task_result in after_dequeue_task vh Delayed dequeued feature keeps a sleeping sched_entitiy enqueued until its lag has elapsed. So the dequeue_task maybe fail when the task is not eligible. So add the dequeue_task_result to the after_deuqueu_task vh to notify the vendor modules. Bug: 377437825 Change-Id: I871d4e3cc9ed51fb823ce42a3627a2ccf30bc379 Signed-off-by: Xuewen Yan --- include/trace/hooks/sched.h | 4 ++-- kernel/sched/core.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 360ad3da62f0..7f5254144f3a 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -277,8 +277,8 @@ DECLARE_RESTRICTED_HOOK(android_rvh_after_enqueue_task, TP_ARGS(rq, p, flags), 1); DECLARE_RESTRICTED_HOOK(android_rvh_after_dequeue_task, - TP_PROTO(struct rq *rq, struct task_struct *p, int flags), - TP_ARGS(rq, p, flags), 1); + TP_PROTO(struct rq *rq, struct task_struct *p, int flags, bool *dequeue_task_result), + TP_ARGS(rq, p, flags, dequeue_task_result), 1); struct cfs_rq; struct sched_entity; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 4174d3221e92..4f5fe3945a0a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2130,7 +2130,7 @@ inline bool dequeue_task(struct rq *rq, struct task_struct *p, int flags) uclamp_rq_dec(rq, p); trace_android_rvh_dequeue_task(rq, p, flags); dequeue_task_result = p->sched_class->dequeue_task(rq, p, flags); - trace_android_rvh_after_dequeue_task(rq, p, flags); + trace_android_rvh_after_dequeue_task(rq, p, flags, &dequeue_task_result); return dequeue_task_result; }