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

Lukasz Majewski
2013-07-09T07:02:43Z

On Thu, 04 Jul 2013 10:50:23 +0200, Lukasz Majewski wrote:

Dear Viresh, Rafael

Do you have any comments/feedback for me regarding those patches?

> 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 enable_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
> selectable 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
> -- enable_boost - callback to function, which is necessary to
> enable 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.
>
> - All available policies are now stored in a list.
>
> - 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. Then
> it starts monitoring of target temperature to evaluate if boost can
> be enabled again. This emulates behaviour similar to HW managed boost
> (like x86)
>
> New patches for v5:
> cpufreq:boost:Kconfig: Enable software managed BOOST support at
> Kconfig Documentation:cpufreq:boost: Update BOOST documentation
>
> Patches dropped at v5:
> cpufreq: Calculate number of busy CPUs
> cpufreq: Enable software boost only when up to one busy core is
> running
>
> Tested at: HW:
> Exynos 4412 3.10 linux
> Exynos 4210 3.10 linux
> Compile tested x86_64 defconfig (acpi) - help with HW (Intel Nehalem)
> test needed
>
> The code has been rebased on top of kernel_pm/bleeding-edge (3.11-rc1)
>
>
> Lukasz Majewski (7):
> cpufreq: Store cpufreq policies in a list
> cpufreq: Add boost frequency support in core
> cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common
> boost solution
> cpufreq:exynos:Extend Exynos cpufreq driver to support boost
> framework
> thermal:boost: Automatic enable/disable of BOOST feature
> cpufreq:boost:Kconfig: Enable software managed BOOST support at
> Kconfig
> Documentation:cpufreq:boost: Update BOOST documentation
>
> Documentation/cpu-freq/boost.txt | 26 ++++-----
> drivers/cpufreq/Kconfig | 14 +++++
> drivers/cpufreq/acpi-cpufreq.c | 69 +++++++----------------
> drivers/cpufreq/cpufreq.c | 115
> ++++++++++++++++++++++++++++++++++++++
> drivers/cpufreq/exynos-cpufreq.c | 9 ++-
> drivers/cpufreq/freq_table.c | 47 +++++++++++++---
> drivers/thermal/thermal_core.c | 31 ++++++++++
> include/linux/cpufreq.h | 13 +++++
> include/linux/thermal.h | 2 + 9 files changed, 257
> insertions(+), 69 deletions(-)
>

--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group