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:
committed by
Treehugger Robot
parent
d6ad6516b8
commit
196f030712
@@ -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
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user