mbox series

[v5,0/2] add SW BOOST support for CPPC

Message ID 1590804511-9672-1-git-send-email-wangxiongfeng2@huawei.com (mailing list archive)
Headers show
Series add SW BOOST support for CPPC | expand

Message

Xiongfeng Wang May 30, 2020, 2:08 a.m. UTC
ACPI spec 6.2 section 8.4.7.1 provide the following two CPC registers.

"Highest performance is the absolute maximum performance an individual
processor may reach, assuming ideal conditions. This performance level
may not be sustainable for long durations, and may only be achievable if
other platform components are in a specific state; for example, it may
require other processors be in an idle state.

Nominal Performance is the maximum sustained performance level of the
processor, assuming ideal operating conditions. In absence of an
external constraint (power, thermal, etc.) this is the performance level
the platform is expected to be able to maintain continuously. All
processors are expected to be able to sustain their nominal performance
state simultaneously."

We can use Highest Performance as the max performance in boost mode and
Nomial Performance as the max performance in non-boost mode. If the
Highest Performance is greater than the Nominal Performance, we assume
SW BOOST is supported.

Changelog:

v4 -> v5:
	add 'cpu_hotplug_lock' before calling '.set_boost'
v3 -> v4:
	run 'boost_set_msr_each' for each CPU in the policy rather than
	each CPU in the system for 'acpi-cpufreq'
	add 'Suggested-by'

Xiongfeng Wang (2):
  cpufreq: change '.set_boost' to act on only one policy
  CPPC: add support for SW BOOST

 drivers/cpufreq/acpi-cpufreq.c | 14 ++++++-----
 drivers/cpufreq/cppc_cpufreq.c | 39 +++++++++++++++++++++++++++--
 drivers/cpufreq/cpufreq.c      | 57 +++++++++++++++++++++++-------------------
 include/linux/cpufreq.h        |  2 +-
 4 files changed, 77 insertions(+), 35 deletions(-)

Comments

Viresh Kumar June 2, 2020, 5:16 a.m. UTC | #1
On 30-05-20, 10:08, Xiongfeng Wang wrote:
> ACPI spec 6.2 section 8.4.7.1 provide the following two CPC registers.
> 
> "Highest performance is the absolute maximum performance an individual
> processor may reach, assuming ideal conditions. This performance level
> may not be sustainable for long durations, and may only be achievable if
> other platform components are in a specific state; for example, it may
> require other processors be in an idle state.
> 
> Nominal Performance is the maximum sustained performance level of the
> processor, assuming ideal operating conditions. In absence of an
> external constraint (power, thermal, etc.) this is the performance level
> the platform is expected to be able to maintain continuously. All
> processors are expected to be able to sustain their nominal performance
> state simultaneously."
> 
> We can use Highest Performance as the max performance in boost mode and
> Nomial Performance as the max performance in non-boost mode. If the
> Highest Performance is greater than the Nominal Performance, we assume
> SW BOOST is supported.
> 
> Changelog:
> 
> v4 -> v5:
> 	add 'cpu_hotplug_lock' before calling '.set_boost'
> v3 -> v4:
> 	run 'boost_set_msr_each' for each CPU in the policy rather than
> 	each CPU in the system for 'acpi-cpufreq'
> 	add 'Suggested-by'
> 
> Xiongfeng Wang (2):
>   cpufreq: change '.set_boost' to act on only one policy
>   CPPC: add support for SW BOOST
> 
>  drivers/cpufreq/acpi-cpufreq.c | 14 ++++++-----
>  drivers/cpufreq/cppc_cpufreq.c | 39 +++++++++++++++++++++++++++--
>  drivers/cpufreq/cpufreq.c      | 57 +++++++++++++++++++++++-------------------
>  include/linux/cpufreq.h        |  2 +-
>  4 files changed, 77 insertions(+), 35 deletions(-)

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Rafael J. Wysocki June 5, 2020, 12:22 p.m. UTC | #2
On Tue, Jun 2, 2020 at 7:16 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>
> On 30-05-20, 10:08, Xiongfeng Wang wrote:
> > ACPI spec 6.2 section 8.4.7.1 provide the following two CPC registers.
> >
> > "Highest performance is the absolute maximum performance an individual
> > processor may reach, assuming ideal conditions. This performance level
> > may not be sustainable for long durations, and may only be achievable if
> > other platform components are in a specific state; for example, it may
> > require other processors be in an idle state.
> >
> > Nominal Performance is the maximum sustained performance level of the
> > processor, assuming ideal operating conditions. In absence of an
> > external constraint (power, thermal, etc.) this is the performance level
> > the platform is expected to be able to maintain continuously. All
> > processors are expected to be able to sustain their nominal performance
> > state simultaneously."
> >
> > We can use Highest Performance as the max performance in boost mode and
> > Nomial Performance as the max performance in non-boost mode. If the
> > Highest Performance is greater than the Nominal Performance, we assume
> > SW BOOST is supported.
> >
> > Changelog:
> >
> > v4 -> v5:
> >       add 'cpu_hotplug_lock' before calling '.set_boost'
> > v3 -> v4:
> >       run 'boost_set_msr_each' for each CPU in the policy rather than
> >       each CPU in the system for 'acpi-cpufreq'
> >       add 'Suggested-by'
> >
> > Xiongfeng Wang (2):
> >   cpufreq: change '.set_boost' to act on only one policy
> >   CPPC: add support for SW BOOST
> >
> >  drivers/cpufreq/acpi-cpufreq.c | 14 ++++++-----
> >  drivers/cpufreq/cppc_cpufreq.c | 39 +++++++++++++++++++++++++++--
> >  drivers/cpufreq/cpufreq.c      | 57 +++++++++++++++++++++++-------------------
> >  include/linux/cpufreq.h        |  2 +-
> >  4 files changed, 77 insertions(+), 35 deletions(-)
>
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

Both patches have been applied as 5.8-rc material with slightly
modified subjects and the changelog of patch [1/2] has been updated.

Thanks!