Message ID | 20200402080239.7471-1-linus.walleij@linaro.org (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | cpufreq: Select schedutil when using big.LITTLE | expand |
On Thu, Apr 02, 2020 at 10:02:39AM +0200, Linus Walleij wrote: > When we are using a system with big.LITTLE HMP > configuration, we need to use EAS to schedule the > system. > > As can be seen from kernel/sched/topology.c: > > "EAS can be used on a root domain if it meets all the following conditions: > 1. an Energy Model (EM) is available; > 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy. > 3. no SMT is detected. > 4. the EM complexity is low enough to keep scheduling overheads low; > 5. schedutil is driving the frequency of all CPUs of the rd;" > > This means that at the very least, schedutil needs to be > available as a scheduling policy for EAS to work on these > systems. Make this explicit by defaulting to the schedutil > governor if BIG_LITTLE is selected. > > Currently users of the TC2 board (like me) has to figure these > dependencies out themselves and it is not helpful. > > Suggested-by: Arnd Bergmann <arnd@arndb.de> > Cc: Vincent Guittot <vincent.guittot@linaro.org> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > Cc: Sudeep Holla <sudeep.holla@arm.com> Good to see another user of TC2 ;) FWIW: Acked-by: Sudeep Holla <sudeep.holla@arm.com>
On Thu, Apr 2, 2020 at 11:15 AM Sudeep Holla <sudeep.holla@arm.com> wrote: > > On Thu, Apr 02, 2020 at 10:02:39AM +0200, Linus Walleij wrote: > > When we are using a system with big.LITTLE HMP > > configuration, we need to use EAS to schedule the > > system. > > > > As can be seen from kernel/sched/topology.c: > > > > "EAS can be used on a root domain if it meets all the following conditions: > > 1. an Energy Model (EM) is available; > > 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy. > > 3. no SMT is detected. > > 4. the EM complexity is low enough to keep scheduling overheads low; > > 5. schedutil is driving the frequency of all CPUs of the rd;" > > > > This means that at the very least, schedutil needs to be > > available as a scheduling policy for EAS to work on these > > systems. Make this explicit by defaulting to the schedutil > > governor if BIG_LITTLE is selected. > > > > Currently users of the TC2 board (like me) has to figure these > > dependencies out themselves and it is not helpful. > > > > Suggested-by: Arnd Bergmann <arnd@arndb.de> > > Cc: Vincent Guittot <vincent.guittot@linaro.org> > > Cc: Viresh Kumar <viresh.kumar@linaro.org> > > Cc: Sudeep Holla <sudeep.holla@arm.com> > > Good to see another user of TC2 ;) > > FWIW: > Acked-by: Sudeep Holla <sudeep.holla@arm.com> This slightly clashes with https://patchwork.kernel.org/patch/11463531/, so I'm going to queue up them both. Thanks!
On 02-04-20, 10:02, Linus Walleij wrote: > When we are using a system with big.LITTLE HMP > configuration, we need to use EAS to schedule the > system. > > As can be seen from kernel/sched/topology.c: > > "EAS can be used on a root domain if it meets all the following conditions: > 1. an Energy Model (EM) is available; > 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy. > 3. no SMT is detected. > 4. the EM complexity is low enough to keep scheduling overheads low; > 5. schedutil is driving the frequency of all CPUs of the rd;" > > This means that at the very least, schedutil needs to be > available as a scheduling policy for EAS to work on these > systems. Make this explicit by defaulting to the schedutil > governor if BIG_LITTLE is selected. > > Currently users of the TC2 board (like me) has to figure these > dependencies out themselves and it is not helpful. > > Suggested-by: Arnd Bergmann <arnd@arndb.de> > Cc: Vincent Guittot <vincent.guittot@linaro.org> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > Cc: Sudeep Holla <sudeep.holla@arm.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > drivers/cpufreq/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig > index bff5295016ae..873aefd96cf2 100644 > --- a/drivers/cpufreq/Kconfig > +++ b/drivers/cpufreq/Kconfig > @@ -36,6 +36,7 @@ config CPU_FREQ_STAT > > choice > prompt "Default CPUFreq governor" > + default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if BIG_LITTLE > default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ > default CPU_FREQ_DEFAULT_GOV_PERFORMANCE > help Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index bff5295016ae..873aefd96cf2 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig @@ -36,6 +36,7 @@ config CPU_FREQ_STAT choice prompt "Default CPUFreq governor" + default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if BIG_LITTLE default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ default CPU_FREQ_DEFAULT_GOV_PERFORMANCE help
When we are using a system with big.LITTLE HMP configuration, we need to use EAS to schedule the system. As can be seen from kernel/sched/topology.c: "EAS can be used on a root domain if it meets all the following conditions: 1. an Energy Model (EM) is available; 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy. 3. no SMT is detected. 4. the EM complexity is low enough to keep scheduling overheads low; 5. schedutil is driving the frequency of all CPUs of the rd;" This means that at the very least, schedutil needs to be available as a scheduling policy for EAS to work on these systems. Make this explicit by defaulting to the schedutil governor if BIG_LITTLE is selected. Currently users of the TC2 board (like me) has to figure these dependencies out themselves and it is not helpful. Suggested-by: Arnd Bergmann <arnd@arndb.de> Cc: Vincent Guittot <vincent.guittot@linaro.org> Cc: Viresh Kumar <viresh.kumar@linaro.org> Cc: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/cpufreq/Kconfig | 1 + 1 file changed, 1 insertion(+)