sched/walt: Improve the scheduler
This change is for general scheduler improvement. Change-Id: I33e9ec890f8b54d673770d5d02dba489a8e08ce7 Signed-off-by: Sai Harshini Nimmala <snimmala@codeaurora.org> [satyap@codeaurora.org: port to 5.4 and resolve trivial merge conflicts] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This commit is contained in:

committed by
Satya Durga Srinivasu Prabhala

parent
e673c734f3
commit
44a9fe8ad9
@@ -832,7 +832,7 @@ struct task_struct {
|
|||||||
struct list_head grp_list;
|
struct list_head grp_list;
|
||||||
u64 cpu_cycles;
|
u64 cpu_cycles;
|
||||||
bool misfit;
|
bool misfit;
|
||||||
u8 unfilter;
|
u32 unfilter;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CGROUP_SCHED
|
#ifdef CONFIG_CGROUP_SCHED
|
||||||
|
@@ -43,7 +43,7 @@ extern unsigned int __weak sysctl_sched_min_task_util_for_boost;
|
|||||||
extern unsigned int __weak sysctl_sched_min_task_util_for_colocation;
|
extern unsigned int __weak sysctl_sched_min_task_util_for_colocation;
|
||||||
extern unsigned int __weak sysctl_sched_asym_cap_sibling_freq_match_pct;
|
extern unsigned int __weak sysctl_sched_asym_cap_sibling_freq_match_pct;
|
||||||
extern unsigned int __weak sysctl_sched_coloc_downmigrate_ns;
|
extern unsigned int __weak sysctl_sched_coloc_downmigrate_ns;
|
||||||
extern unsigned int __weak sysctl_sched_task_unfilter_nr_windows;
|
extern unsigned int __weak sysctl_sched_task_unfilter_period;
|
||||||
extern unsigned int __weak sysctl_sched_busy_hyst_enable_cpus;
|
extern unsigned int __weak sysctl_sched_busy_hyst_enable_cpus;
|
||||||
extern unsigned int __weak sysctl_sched_busy_hyst;
|
extern unsigned int __weak sysctl_sched_busy_hyst;
|
||||||
extern unsigned int __weak sysctl_sched_coloc_busy_hyst_enable_cpus;
|
extern unsigned int __weak sysctl_sched_coloc_busy_hyst_enable_cpus;
|
||||||
|
@@ -1019,7 +1019,7 @@ TRACE_EVENT(sched_task_util,
|
|||||||
__field(bool, is_rtg)
|
__field(bool, is_rtg)
|
||||||
__field(bool, rtg_skip_min)
|
__field(bool, rtg_skip_min)
|
||||||
__field(int, start_cpu)
|
__field(int, start_cpu)
|
||||||
__field(int, unfilter)
|
__field(u32, unfilter)
|
||||||
__field(unsigned long, cpus_allowed)
|
__field(unsigned long, cpus_allowed)
|
||||||
__field(int, task_boost)
|
__field(int, task_boost)
|
||||||
),
|
),
|
||||||
@@ -1054,7 +1054,7 @@ TRACE_EVENT(sched_task_util,
|
|||||||
#endif
|
#endif
|
||||||
),
|
),
|
||||||
|
|
||||||
TP_printk("pid=%d comm=%s util=%lu prev_cpu=%d candidates=%#lx best_energy_cpu=%d sync=%d need_idle=%d fastpath=%d placement_boost=%d latency=%llu stune_boosted=%d is_rtg=%d rtg_skip_min=%d start_cpu=%d unfilter=%d affinity=%lx task_boost=%d",
|
TP_printk("pid=%d comm=%s util=%lu prev_cpu=%d candidates=%#lx best_energy_cpu=%d sync=%d need_idle=%d fastpath=%d placement_boost=%d latency=%llu stune_boosted=%d is_rtg=%d rtg_skip_min=%d start_cpu=%d unfilter=%u affinity=%lx task_boost=%d",
|
||||||
__entry->pid, __entry->comm, __entry->util, __entry->prev_cpu,
|
__entry->pid, __entry->comm, __entry->util, __entry->prev_cpu,
|
||||||
__entry->candidates, __entry->best_energy_cpu, __entry->sync,
|
__entry->candidates, __entry->best_energy_cpu, __entry->sync,
|
||||||
__entry->need_idle, __entry->fastpath, __entry->placement_boost,
|
__entry->need_idle, __entry->fastpath, __entry->placement_boost,
|
||||||
|
@@ -148,6 +148,7 @@ static int two_hundred_fifty_five = 255;
|
|||||||
const int sched_user_hint_max = 1000;
|
const int sched_user_hint_max = 1000;
|
||||||
static unsigned int ns_per_sec = NSEC_PER_SEC;
|
static unsigned int ns_per_sec = NSEC_PER_SEC;
|
||||||
static unsigned int one_hundred_thousand = 100000;
|
static unsigned int one_hundred_thousand = 100000;
|
||||||
|
static unsigned int two_hundred_million = 200000000;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
|
/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
|
||||||
@@ -471,13 +472,13 @@ static struct ctl_table kern_table[] = {
|
|||||||
.proc_handler = proc_douintvec_minmax,
|
.proc_handler = proc_douintvec_minmax,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "sched_task_unfilter_nr_windows",
|
.procname = "sched_task_unfilter_period",
|
||||||
.data = &sysctl_sched_task_unfilter_nr_windows,
|
.data = &sysctl_sched_task_unfilter_period,
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = proc_dointvec_minmax,
|
.proc_handler = proc_dointvec_minmax,
|
||||||
.extra1 = SYSCTL_ONE,
|
.extra1 = SYSCTL_ONE,
|
||||||
.extra2 = &two_hundred_fifty_five,
|
.extra2 = &two_hundred_million,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "sched_busy_hysteresis_enable_cpus",
|
.procname = "sched_busy_hysteresis_enable_cpus",
|
||||||
|
Reference in New Issue
Block a user