[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <1372927830-2949-1-git-send-email-l.majewski@samsung.com>
Date: Thu, 04 Jul 2013 10:50:23 +0200
From: Lukasz Majewski <l.majewski@...sung.com>
To: Viresh Kumar <viresh.kumar@...aro.org>,
"Rafael J. Wysocki" <rjw@...k.pl>, Zhang Rui <rui.zhang@...el.com>,
Eduardo Valentin <eduardo.valentin@...com>
Cc: "cpufreq@...r.kernel.org" <cpufreq@...r.kernel.org>,
Linux PM list <linux-pm@...r.kernel.org>,
Jonghwa Lee <jonghwa3.lee@...sung.com>,
Lukasz Majewski <l.majewski@...sung.com>, l.majewski@...ess.pl,
linux-kernel <linux-kernel@...r.kernel.org>,
Andre Przywara <andre.przywara@...aro.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Kukjin Kim <kgene.kim@...sung.com>,
Myungjoo Ham <myungjoo.ham@...sung.com>
Subject: [PATCH v5 0/7] cpufreq:boost: CPU Boost mode support
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(-)
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists