diff --git a/kernel/sched/walt/sysctl.c b/kernel/sched/walt/sysctl.c index 6e559502a28f..485ea5c858b4 100644 --- a/kernel/sched/walt/sysctl.c +++ b/kernel/sched/walt/sysctl.c @@ -62,6 +62,7 @@ const int sched_user_hint_max = 1000; unsigned int sysctl_walt_rtg_cfs_boost_prio = 99; /* disabled by default */ unsigned int sysctl_sched_sync_hint_enable = 1; unsigned int sysctl_panic_on_walt_bug; +unsigned int sysctl_sched_suppress_region2; /* range is [1 .. INT_MAX] */ static int sysctl_task_read_pid = 1; @@ -712,6 +713,15 @@ struct ctl_table walt_table[] = { .extra1 = SYSCTL_ZERO, .extra2 = SYSCTL_ONE, }, + { + .procname = "sched_suppress_region2", + .data = &sysctl_sched_suppress_region2, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ZERO, + .extra2 = SYSCTL_ONE, + }, { .procname = "panic_on_walt_bug", .data = &sysctl_panic_on_walt_bug, diff --git a/kernel/sched/walt/walt.h b/kernel/sched/walt/walt.h index cb6459eb6082..b5ff6da7b34e 100644 --- a/kernel/sched/walt/walt.h +++ b/kernel/sched/walt/walt.h @@ -286,6 +286,7 @@ extern unsigned int sysctl_sched_task_unfilter_period; extern unsigned int __read_mostly sysctl_sched_asym_cap_sibling_freq_match_pct; extern unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by default */ extern unsigned int sysctl_sched_sync_hint_enable; +extern unsigned int sysctl_sched_suppress_region2; extern struct ctl_table walt_table[]; extern struct ctl_table walt_base_table[]; extern void walt_tunables(void); diff --git a/kernel/sched/walt/walt_cfs.c b/kernel/sched/walt/walt_cfs.c index ee5b3ce30af3..286e653818d0 100644 --- a/kernel/sched/walt/walt_cfs.c +++ b/kernel/sched/walt/walt_cfs.c @@ -199,8 +199,9 @@ static void walt_get_indicies(struct task_struct *p, int *order_index, (task_util(p) >= MIN_UTIL_FOR_ENERGY_EVAL) && !(p->in_iowait && task_in_related_thread_group(p)) && !walt_get_rtg_status(p) && - !(sched_boost_type == CONSERVATIVE_BOOST && task_sched_boost(p)) - ) + !(sched_boost_type == CONSERVATIVE_BOOST && task_sched_boost(p)) && + !sysctl_sched_suppress_region2 + ) *end_index = 1; if (p->in_iowait && task_in_related_thread_group(p))