From 0808e3fa4d9ec1691d06f1dbf76317878fcbe6c6 Mon Sep 17 00:00:00 2001 From: Abhijeet Dharmapurikar Date: Tue, 14 Sep 2021 11:29:51 -0700 Subject: [PATCH] sched/walt: Improve the scheduler This change is for general scheduler improvement. Change-Id: Ie81267e970c55da4f5f5f2a6ffb9b7f64e48503c Signed-off-by: Abhijeet Dharmapurikar --- kernel/sched/walt/sysctl.c | 10 ++++++++++ kernel/sched/walt/walt.h | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/kernel/sched/walt/sysctl.c b/kernel/sched/walt/sysctl.c index 76f929eba9dd..85df1c2836dd 100644 --- a/kernel/sched/walt/sysctl.c +++ b/kernel/sched/walt/sysctl.c @@ -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, diff --git a/kernel/sched/walt/walt.h b/kernel/sched/walt/walt.h index dd335d0cc299..d6bd55f6e975 100644 --- a/kernel/sched/walt/walt.h +++ b/kernel/sched/walt/walt.h @@ -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)