diff --git a/drivers/debug/sched.c b/drivers/debug/sched.c index a4d719d24..9d4cf210b 100644 --- a/drivers/debug/sched.c +++ b/drivers/debug/sched.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -591,6 +592,9 @@ static void tick_entry_hook(void *data, struct rq *rq) int aml_sched_init(void) { + int cpu, old_flags; + struct sched_domain *sd; + #if defined(CONFIG_ANDROID_VENDOR_HOOKS) && defined(CONFIG_FAIR_GROUP_SCHED) register_trace_android_rvh_select_task_rq_rt(aml_select_rt_nice, NULL); register_trace_android_rvh_check_preempt_wakeup(aml_check_preempt_wakeup, NULL); @@ -606,5 +610,14 @@ int aml_sched_init(void) register_trace_android_vh_sched_show_task(sched_show_task_hook, NULL); #endif + for_each_possible_cpu(cpu) { + for_each_domain(cpu, sd) { + old_flags = sd->flags; + sd->flags &= ~SD_WAKE_AFFINE; + sd->flags |= (SD_BALANCE_WAKE | SD_BALANCE_NEWIDLE); + pr_info("cpu:%d sd:%px flags:%x->%x\n", cpu, sd, old_flags, sd->flags); + } + } + return 0; }