ANDROID: vendor_hooks: add hooks in cpu_cgroup subsystem

Add hooks to tune cpu policy based on cpu_cgroup.

Bug: 333664691
Bug: 439772147

Change-Id: If7ca0f2ae774f433563abfbe4e761f3fb9645633
Signed-off-by: maoshenshen <maoshenshen@oppo.com>
(cherry picked from commit 66b74bb79ddfe12ea63b05880eef0548aa4bf6d8)
Signed-off-by: Gaowei Pu <pugaowei@oppo.com>
This commit is contained in:
maoshenshen
2024-04-09 20:34:38 +08:00
committed by Gaowei Pu
parent ba270f8f88
commit 01179fa874
3 changed files with 25 additions and 1 deletions

View File

@@ -414,6 +414,10 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_force_compatible_post);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_print_transaction_info);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_reweight_entity);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_move_task);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_cgroup_css_alloc_early);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_cgroup_css_alloc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_cgroup_css_free);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ptype_head);

View File

@@ -406,6 +406,21 @@ DECLARE_HOOK(android_vh_sched_pelt_multiplier,
DECLARE_HOOK(android_vh_reweight_entity,
TP_PROTO(struct sched_entity *se),
TP_ARGS(se));
struct cgroup_subsys_state;
DECLARE_HOOK(android_vh_sched_move_task,
TP_PROTO(struct task_struct *tsk),
TP_ARGS(tsk));
DECLARE_HOOK(android_vh_cpu_cgroup_css_alloc,
TP_PROTO(struct task_group *tg, struct cgroup_subsys_state *parent_css),
TP_ARGS(tg, parent_css));
DECLARE_HOOK(android_vh_cpu_cgroup_css_alloc_early,
TP_PROTO(struct task_group *parent),
TP_ARGS(parent));
DECLARE_HOOK(android_vh_cpu_cgroup_css_free,
TP_PROTO(struct cgroup_subsys_state *css),
TP_ARGS(css));
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_SCHED_H */

View File

@@ -7956,6 +7956,7 @@ void sched_move_task(struct task_struct *tsk)
struct rq_flags rf;
struct rq *rq;
trace_android_vh_sched_move_task(tsk);
rq = task_rq_lock(tsk, &rf);
update_rq_clock(rq);
@@ -7996,6 +7997,7 @@ cpu_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
struct task_group *tg;
if (!parent) {
trace_android_vh_cpu_cgroup_css_alloc_early(parent);
/* This is early initialization for the top cgroup */
return &root_task_group.css;
}
@@ -8004,6 +8006,8 @@ cpu_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
if (IS_ERR(tg))
return ERR_PTR(-ENOMEM);
trace_android_vh_cpu_cgroup_css_alloc(tg, parent_css);
return &tg->css;
}
@@ -8044,6 +8048,7 @@ static void cpu_cgroup_css_free(struct cgroup_subsys_state *css)
* Relies on the RCU grace period between css_released() and this.
*/
sched_free_group(tg);
trace_android_vh_cpu_cgroup_css_free(css);
}
/*
@@ -8883,7 +8888,7 @@ struct cgroup_subsys cpu_cgrp_subsys = {
.early_init = true,
.threaded = true,
};
EXPORT_SYMBOL_GPL(cpu_cgrp_subsys);
#endif /* CONFIG_CGROUP_SCHED */
void dump_cpu_task(int cpu)