Thread (320 messages) 320 messages, 12 authors, 2014-01-16

Re: [PATCH v12 0/7] cpufreq:boost: CPU Boost mode support

From: Rafael J. Wysocki <hidden>
Date: 2014-01-16 15:37:23
Also in: linux-samsung-soc, lkml

On Thursday, January 16, 2014 10:40:08 AM Lukasz Majewski wrote:
Hi Rafael,
quoted
On Wed, 2014-01-08 at 01:35 +0100, Rafael J. Wysocki wrote:
quoted
On Tuesday, January 07, 2014 07:58:24 AM Lukasz Majewski wrote:
quoted
Hi Rafael,
Hi,
quoted
quoted
This patch series introduces support for CPU overclocking
technique called Boost.

It is a follow up of a LAB governor proposal. Boost is a LAB
component:
http://thread.gmane.org/gmane.linux.kernel/1484746/match=cpufreq

Boost unifies hardware based solution (e.g. Intel Nehalem) with
software oriented one (like the one done at Exynos).
For this reason cpufreq/freq_table code has been reorganized to
include common code.

Important design decisions:
- Boost related code is compiled-in unconditionally to cpufreq
core and disabled by default. The cpufreq_driver is
responsibile for setting boost_supported flag and providing
set_boost callback(if HW support is needed). For software
managed boost, special Kconfig flag - CONFIG_CPU_FREQ_BOOST_SW
has been defined. It will be selected only when a target
platform has thermal framework properly configured.

- struct cpufreq_driver has been extended with boost related
fields: -- boost_supported - when driver supports boosting
        -- boost_enabled - boost state
        -- set_boost - callback to function, which is necessary
to enable/disable boost

- Boost sysfs attribute (/sys/devices/system/cpu/cpufreq/boost)
is visible _only_ when cpufreq driver supports Boost.

- No special spin_lock for Boost was created. The one from
cpufreq core was reused.

- The Boost code doesn't rely on any policy. When boost state is
changed, then the policy list is iterated and proper
adjustements are done.

- To improve safety level, the thermal framework is also
extended to disable software boosting, when thermal trip point
is reached. After cooling down the boost can be enabled again.
This emulates behaviour similar to HW managed boost (like x86)

Tested at HW:
       Exynos 4412 3.13-rc4 Linux
       Intel Core i7-3770 3.13-rc4 Linux

Above patches were posted on top of kernel_pm/bleeding-edge
(SHA1: bd0f3a5d9dce48a917ce1f1047534d79c725149)

Lukasz Majewski (7):
  cpufreq: Add boost frequency support in core
  cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with
common boost solution
  cpufreq:boost:Kconfig: Provide support for software managed
BOOST cpufreq:exynos:Extend Exynos cpufreq driver to support
boost framework
  Documentation:cpufreq:boost: Update BOOST documentation
  cpufreq:exynos4x12: Change L0 driver data to
CPUFREQ_BOOST_FREQ thermal:exynos:boost: Automatic
enable/disable of BOOST feature (at Exynos4412)

 Documentation/cpu-freq/boost.txt          |   26 +++----
 drivers/cpufreq/Kconfig                   |    4 +
 drivers/cpufreq/Kconfig.arm               |   15 ++++
 drivers/cpufreq/acpi-cpufreq.c            |   86
+++++++-------------- drivers/cpufreq/cpufreq.c
| 118 ++++++++++++++++++++++++++++-
drivers/cpufreq/exynos-cpufreq.c          |    3 +
drivers/cpufreq/exynos4x12-cpufreq.c      |    2 +-
drivers/cpufreq/freq_table.c              |   56 ++++++++++++--
drivers/thermal/samsung/exynos_tmu_data.c |   12 +--
include/linux/cpufreq.h                   |   24 ++++++ 10 files
changed, 261 insertions(+), 85 deletions(-)
A gentle ping about BOOST patches.

Its been already acked by Viresh and Eduardo.

It applies on kernel_pm/bleeding_edge SHA1:
4836deb72c5e2a9af0cb2129c1149783a26d99ab
It looks like Rui is still looking into this.

Rui, are you fine with this series?
Yes, I'm okay with the thermal related parts of this patch set.
Rafael, gentle reminder about BOOST patches ... :-)
I'm about to take them for 3.14.

Thanks!

[PS: Please don't use the rjw@sisk.pl address, that domain is gone.]

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help