sched/walt: Improve the scheduler

This change is for general scheduler improvement.

Change-Id: Ie81267e970c55da4f5f5f2a6ffb9b7f64e48503c
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This commit is contained in:
Abhijeet Dharmapurikar 2021-09-14 11:29:51 -07:00 committed by Rishabh Bhatnagar
parent 3da4f50cf4
commit 0808e3fa4d
2 changed files with 13 additions and 3 deletions

View File

@ -56,6 +56,7 @@ unsigned int __read_mostly sysctl_sched_asym_cap_sibling_freq_match_pct;
unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by default */
unsigned int sysctl_sched_conservative_pl;
unsigned int sysctl_sched_min_task_util_for_boost = 51;
unsigned int sysctl_sched_min_task_util_for_uclamp = 51;
unsigned int sysctl_sched_min_task_util_for_colocation = 35;
unsigned int sysctl_sched_many_wakeup_threshold = WALT_MANY_WAKEUP_DEFAULT;
const int sched_user_hint_max = 1000;
@ -543,6 +544,15 @@ struct ctl_table walt_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = &one_thousand,
},
{
.procname = "sched_min_task_util_for_uclamp",
.data = &sysctl_sched_min_task_util_for_uclamp,
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = &one_thousand,
},
{
.procname = "sched_min_task_util_for_colocation",
.data = &sysctl_sched_min_task_util_for_colocation,

View File

@ -202,6 +202,7 @@ extern unsigned int __read_mostly sched_load_granule;
/* 1ms default for 20ms window size scaled to 1024 */
extern unsigned int sysctl_sched_min_task_util_for_boost;
extern unsigned int sysctl_sched_min_task_util_for_uclamp;
/* 0.68ms default for 20ms window size scaled to 1024 */
extern unsigned int sysctl_sched_min_task_util_for_colocation;
extern unsigned int __read_mostly sysctl_sched_silver_thres;
@ -484,9 +485,8 @@ static inline enum sched_boost_policy task_boost_policy(struct task_struct *p)
static inline bool walt_uclamp_boosted(struct task_struct *p)
{
struct walt_task_struct *wts = (struct walt_task_struct *) p->android_vendor_data1;
return uclamp_eff_value(p, UCLAMP_MIN) > 0 && wts->unfilter;
return ((uclamp_eff_value(p, UCLAMP_MIN) > 0) &&
(task_util(p) > sysctl_sched_min_task_util_for_uclamp));
}
static inline unsigned long capacity_of(int cpu)