ANDROID: sched: add rvh for rebalance domains

Vendor scheduler may not want to rebalance between domains in some case.
New vendor hook is added for vendor to decide whether rebalance domains.

Bug: 176952463

Change-Id: Ie2edbd4b11679786096dd0170496904ae180583c
Signed-off-by: Park Bumgyu <bumgyu.park@samsung.com>
This commit is contained in:
Park Bumgyu 2021-01-08 10:25:21 +09:00 committed by Todd Kjos
parent 15cc1a6f99
commit f09589401c
3 changed files with 9 additions and 0 deletions

View File

@ -84,6 +84,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_resume_epoch_val);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_table_limits);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_newidle_balance);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_nohz_balancer_kick);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_rebalance_domains);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_queue);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_migrate_queued_task);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);

View File

@ -89,6 +89,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_sched_nohz_balancer_kick,
TP_PROTO(struct rq *rq, unsigned int *flags, int *done),
TP_ARGS(rq, flags, done), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_sched_rebalance_domains,
TP_PROTO(struct rq *rq, int *continue_balancing),
TP_ARGS(rq, continue_balancing), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_find_busiest_queue,
TP_PROTO(int dst_cpu, struct sched_group *group,
struct cpumask *env_cpus, struct rq **busiest,

View File

@ -10417,6 +10417,10 @@ static void rebalance_domains(struct rq *rq, enum cpu_idle_type idle)
int need_serialize, need_decay = 0;
u64 max_cost = 0;
trace_android_rvh_sched_rebalance_domains(rq, &continue_balancing);
if (!continue_balancing)
return;
rcu_read_lock();
for_each_domain(cpu, sd) {
/*