From e8f6113085685958d70112e96895bcd308cb7718 Mon Sep 17 00:00:00 2001 From: Biao Long Date: Wed, 20 Jan 2021 10:16:58 +0800 Subject: [PATCH] sched/fair: Add sched_sync_hint_enable node Add sched_sync_hint_enable not to enable/disable sync. Change-Id: Id6bdff3d4b9ea1051d7b55ca4cfd1d802c92fa64 Signed-off-by: Biao Long --- include/linux/sched/sysctl.h | 1 + kernel/sched/fair.c | 4 +++- kernel/sysctl.c | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h index 8bf34f07d605..3d9b702f3f96 100644 --- a/include/linux/sched/sysctl.h +++ b/include/linux/sched/sysctl.h @@ -61,6 +61,7 @@ extern unsigned int __weak sysctl_sched_dynamic_ravg_window_enable; extern unsigned int sysctl_sched_prefer_spread; extern unsigned int sysctl_walt_rtg_cfs_boost_prio; extern unsigned int sysctl_walt_low_latency_task_threshold; +extern unsigned int sysctl_sched_sync_hint_enable; extern int walt_proc_group_thresholds_handler(struct ctl_table *table, int write, diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 421bf8986b71..43ddd00efe39 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -136,6 +136,7 @@ unsigned int sched_capacity_margin_down[NR_CPUS] = { __read_mostly unsigned int sysctl_sched_prefer_spread; unsigned int sysctl_walt_rtg_cfs_boost_prio = 99; /* disabled by default */ unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by default */ +unsigned int sysctl_sched_sync_hint_enable = 1; #endif unsigned int sched_small_task_threshold = 102; __read_mostly unsigned int sysctl_sched_force_lb_enable = 1; @@ -7067,7 +7068,8 @@ int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu, if (sync && (need_idle || (is_rtg && curr_is_rtg))) sync = 0; - if (sync && bias_to_this_cpu(p, cpu, start_cpu)) { + if (sysctl_sched_sync_hint_enable && sync + && bias_to_this_cpu(p, cpu, start_cpu)) { best_energy_cpu = cpu; fbt_env.fastpath = SYNC_WAKEUP; goto done; diff --git a/kernel/sysctl.c b/kernel/sysctl.c index d31fd799a5f3..5fa53e98b3eb 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -587,6 +587,13 @@ static struct ctl_table kern_table[] = { .extra1 = SYSCTL_ZERO, .extra2 = &one_thousand, }, + { + .procname = "sched_sync_hint_enable", + .data = &sysctl_sched_sync_hint_enable, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_dointvec, + }, #endif { .procname = "sched_force_lb_enable",