ANDROID: GKI: add fair task core selection logic vendor hooks.

The hook we added allows prioritization of task selection from our own
queue, reducing the overhead of task selection while optimizing the
logic for load balancing and selecting important tasks.

Bug: 434879809
Signed-off-by: renchenghan <renchenghan@vivo.corp-partner.google.com>
Change-Id: Iec0292d0c991c69d48771ee4568ca8393b96cca8
This commit is contained in:
renchenghan
2025-07-29 19:45:01 +08:00
committed by Treehugger Robot
parent d6ad6516b8
commit 196f030712
3 changed files with 18 additions and 5 deletions
+9
View File
@@ -387,6 +387,15 @@ DECLARE_RESTRICTED_HOOK(android_rvh_remove_entity_load_avg,
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
TP_ARGS(cfs_rq, se), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_before_pick_task_fair,
TP_PROTO(struct rq *rq, struct task_struct **p,
struct task_struct *prev, struct rq_flags *rf),
TP_ARGS(rq, p, prev, rf), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_balance_fair,
TP_PROTO(struct rq *rq, struct task_struct *prev, struct rq_flags *rf),
TP_ARGS(rq, prev, rf), 1);
struct affinity_context;
DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_ptr,
TP_PROTO(struct task_struct *p, struct affinity_context *ctx, bool *skip_user_ptr),
+7 -3
View File
@@ -8961,6 +8961,7 @@ static void set_cpus_allowed_fair(struct task_struct *p, struct affinity_context
static int
balance_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
{
trace_android_rvh_balance_fair(rq, prev, rf);
if (sched_fair_runnable(rq))
return 1;
@@ -9120,12 +9121,15 @@ struct task_struct *
pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
{
struct sched_entity *se;
struct task_struct *p;
struct task_struct *p = NULL;
int new_tasks;
again:
p = pick_task_fair(rq);
trace_android_rvh_replace_next_task_fair(rq, &p, prev);
trace_android_rvh_before_pick_task_fair(rq, &p, prev, rf);
if (!p) {
p = pick_task_fair(rq);
trace_android_rvh_replace_next_task_fair(rq, &p, prev);
}
if (!p)
goto idle;
+2 -2
View File
@@ -134,5 +134,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uclamp_validate);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_fits_cpu);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_before_pick_task_fair);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_balance_fair);