Loading include/linux/sched/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ extern unsigned int sysctl_sched_busy_hyst; extern unsigned int sysctl_sched_coloc_busy_hyst_enable_cpus; extern unsigned int sysctl_sched_coloc_busy_hyst; extern unsigned int sysctl_sched_coloc_busy_hyst_max_ms; extern unsigned int sysctl_sched_window_stats_policy; extern int walt_proc_group_thresholds_handler(struct ctl_table *table, int write, Loading kernel/sched/walt.c +4 −4 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ __read_mostly unsigned int sched_ravg_hist_size = 5; static __read_mostly unsigned int sched_io_is_busy = 1; __read_mostly unsigned int sched_window_stats_policy = __read_mostly unsigned int sysctl_sched_window_stats_policy = WINDOW_STATS_MAX_RECENT_AVG; /* Window size (in ns) */ Loading Loading @@ -1790,13 +1790,13 @@ static void update_history(struct rq *rq, struct task_struct *p, p->ravg.sum = 0; if (sched_window_stats_policy == WINDOW_STATS_RECENT) { if (sysctl_sched_window_stats_policy == WINDOW_STATS_RECENT) { demand = runtime; } else if (sched_window_stats_policy == WINDOW_STATS_MAX) { } else if (sysctl_sched_window_stats_policy == WINDOW_STATS_MAX) { demand = max; } else { avg = div64_u64(sum, sched_ravg_hist_size); if (sched_window_stats_policy == WINDOW_STATS_AVG) if (sysctl_sched_window_stats_policy == WINDOW_STATS_AVG) demand = avg; else demand = max(avg, runtime); Loading kernel/sched/walt.h +0 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ extern struct mutex cluster_lock; extern rwlock_t related_thread_group_lock; extern __read_mostly unsigned int sched_ravg_hist_size; extern __read_mostly unsigned int sched_freq_aggregate; extern __read_mostly unsigned int sched_window_stats_policy; extern __read_mostly unsigned int sched_group_upmigrate; extern __read_mostly unsigned int sched_group_downmigrate; Loading kernel/sysctl.c +9 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,15 @@ static struct ctl_table kern_table[] = { .extra1 = &zero, .extra2 = (void *)&sched_user_hint_max, }, { .procname = "sched_window_stats_policy", .data = &sysctl_sched_window_stats_policy, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &zero, .extra2 = &four, }, { .procname = "sched_cpu_high_irqload", .data = &sysctl_sched_cpu_high_irqload, Loading Loading
include/linux/sched/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ extern unsigned int sysctl_sched_busy_hyst; extern unsigned int sysctl_sched_coloc_busy_hyst_enable_cpus; extern unsigned int sysctl_sched_coloc_busy_hyst; extern unsigned int sysctl_sched_coloc_busy_hyst_max_ms; extern unsigned int sysctl_sched_window_stats_policy; extern int walt_proc_group_thresholds_handler(struct ctl_table *table, int write, Loading
kernel/sched/walt.c +4 −4 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ __read_mostly unsigned int sched_ravg_hist_size = 5; static __read_mostly unsigned int sched_io_is_busy = 1; __read_mostly unsigned int sched_window_stats_policy = __read_mostly unsigned int sysctl_sched_window_stats_policy = WINDOW_STATS_MAX_RECENT_AVG; /* Window size (in ns) */ Loading Loading @@ -1790,13 +1790,13 @@ static void update_history(struct rq *rq, struct task_struct *p, p->ravg.sum = 0; if (sched_window_stats_policy == WINDOW_STATS_RECENT) { if (sysctl_sched_window_stats_policy == WINDOW_STATS_RECENT) { demand = runtime; } else if (sched_window_stats_policy == WINDOW_STATS_MAX) { } else if (sysctl_sched_window_stats_policy == WINDOW_STATS_MAX) { demand = max; } else { avg = div64_u64(sum, sched_ravg_hist_size); if (sched_window_stats_policy == WINDOW_STATS_AVG) if (sysctl_sched_window_stats_policy == WINDOW_STATS_AVG) demand = avg; else demand = max(avg, runtime); Loading
kernel/sched/walt.h +0 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ extern struct mutex cluster_lock; extern rwlock_t related_thread_group_lock; extern __read_mostly unsigned int sched_ravg_hist_size; extern __read_mostly unsigned int sched_freq_aggregate; extern __read_mostly unsigned int sched_window_stats_policy; extern __read_mostly unsigned int sched_group_upmigrate; extern __read_mostly unsigned int sched_group_downmigrate; Loading
kernel/sysctl.c +9 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,15 @@ static struct ctl_table kern_table[] = { .extra1 = &zero, .extra2 = (void *)&sched_user_hint_max, }, { .procname = "sched_window_stats_policy", .data = &sysctl_sched_window_stats_policy, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &zero, .extra2 = &four, }, { .procname = "sched_cpu_high_irqload", .data = &sysctl_sched_cpu_high_irqload, Loading