Loading init/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -934,7 +934,7 @@ endif # CGROUPS config SCHED_CORE_CTL bool "QTI Core Control" depends on SMP depends on SMP && SCHED_WALT help This options enables the core control functionality in the scheduler. Core control automatically offline and Loading kernel/sched/cpufreq_schedutil.c +9 −3 Original line number Diff line number Diff line Loading @@ -394,25 +394,31 @@ unsigned long schedutil_freq_util(int cpu, unsigned long util, return min(max, util); } #ifdef CONFIG_SCHED_WALT static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu) { struct rq *rq = cpu_rq(sg_cpu->cpu); unsigned long max = arch_scale_cpu_capacity(NULL, sg_cpu->cpu); #ifdef CONFIG_SCHED_WALT sg_cpu->max = max; sg_cpu->bw_dl = cpu_bw_dl(rq); return boosted_cpu_util(sg_cpu->cpu, 0, &sg_cpu->walt_load); } #else unsigned long util = boosted_cpu_util(sg_cpu->cpu, cpu_util_rt(rq)); static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu) { struct rq *rq = cpu_rq(sg_cpu->cpu); unsigned long util = boosted_cpu_util(sg_cpu->cpu, cpu_util_rt(rq), NULL); unsigned long max = arch_scale_cpu_capacity(NULL, sg_cpu->cpu); sg_cpu->max = max; sg_cpu->bw_dl = cpu_bw_dl(rq); return schedutil_freq_util(sg_cpu->cpu, util, max, FREQUENCY_UTIL); #endif } #endif /** * sugov_iowait_reset() - Reset the IO boost status of a CPU. Loading kernel/sched/sched.h +3 −1 Original line number Diff line number Diff line Loading @@ -2073,10 +2073,12 @@ static inline unsigned long cpu_util_cum(int cpu, int delta) return (delta >= capacity) ? capacity : delta; } #ifdef CONFIG_SCHED_WALT #ifdef CONFIG_SCHED_TUNE extern unsigned long boosted_cpu_util(int cpu, unsigned long other_util, struct sched_walt_cpu_load *walt_load); #endif #ifdef CONFIG_SCHED_WALT u64 freq_policy_load(struct rq *rq); extern u64 walt_load_reported_window; Loading kernel/sched/tune.h +1 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,6 @@ void schedtune_dequeue_task(struct task_struct *p, int cpu); #define schedtune_enqueue_task(task, cpu) do { } while (0) #define schedtune_dequeue_task(task, cpu) do { } while (0) #define boosted_cpu_util(cpu, other_util) cpu_util_cfs(cpu_rq(cpu)) #define boosted_cpu_util(cpu, other_util, walt_load) cpu_util_cfs(cpu_rq(cpu)) #endif /* CONFIG_SCHED_TUNE */ Loading
init/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -934,7 +934,7 @@ endif # CGROUPS config SCHED_CORE_CTL bool "QTI Core Control" depends on SMP depends on SMP && SCHED_WALT help This options enables the core control functionality in the scheduler. Core control automatically offline and Loading
kernel/sched/cpufreq_schedutil.c +9 −3 Original line number Diff line number Diff line Loading @@ -394,25 +394,31 @@ unsigned long schedutil_freq_util(int cpu, unsigned long util, return min(max, util); } #ifdef CONFIG_SCHED_WALT static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu) { struct rq *rq = cpu_rq(sg_cpu->cpu); unsigned long max = arch_scale_cpu_capacity(NULL, sg_cpu->cpu); #ifdef CONFIG_SCHED_WALT sg_cpu->max = max; sg_cpu->bw_dl = cpu_bw_dl(rq); return boosted_cpu_util(sg_cpu->cpu, 0, &sg_cpu->walt_load); } #else unsigned long util = boosted_cpu_util(sg_cpu->cpu, cpu_util_rt(rq)); static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu) { struct rq *rq = cpu_rq(sg_cpu->cpu); unsigned long util = boosted_cpu_util(sg_cpu->cpu, cpu_util_rt(rq), NULL); unsigned long max = arch_scale_cpu_capacity(NULL, sg_cpu->cpu); sg_cpu->max = max; sg_cpu->bw_dl = cpu_bw_dl(rq); return schedutil_freq_util(sg_cpu->cpu, util, max, FREQUENCY_UTIL); #endif } #endif /** * sugov_iowait_reset() - Reset the IO boost status of a CPU. Loading
kernel/sched/sched.h +3 −1 Original line number Diff line number Diff line Loading @@ -2073,10 +2073,12 @@ static inline unsigned long cpu_util_cum(int cpu, int delta) return (delta >= capacity) ? capacity : delta; } #ifdef CONFIG_SCHED_WALT #ifdef CONFIG_SCHED_TUNE extern unsigned long boosted_cpu_util(int cpu, unsigned long other_util, struct sched_walt_cpu_load *walt_load); #endif #ifdef CONFIG_SCHED_WALT u64 freq_policy_load(struct rq *rq); extern u64 walt_load_reported_window; Loading
kernel/sched/tune.h +1 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,6 @@ void schedtune_dequeue_task(struct task_struct *p, int cpu); #define schedtune_enqueue_task(task, cpu) do { } while (0) #define schedtune_dequeue_task(task, cpu) do { } while (0) #define boosted_cpu_util(cpu, other_util) cpu_util_cfs(cpu_rq(cpu)) #define boosted_cpu_util(cpu, other_util, walt_load) cpu_util_cfs(cpu_rq(cpu)) #endif /* CONFIG_SCHED_TUNE */