Linux Power Management development
 help / color / mirror / Atom feed
* [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support
  2013-06-06  7:07 [PATCH 0/5] " Lukasz Majewski
@ 2013-08-26 15:50 ` Lukasz Majewski
  0 siblings, 0 replies; 5+ messages in thread
From: Lukasz Majewski @ 2013-08-26 15:50 UTC (permalink / raw)
  To: Viresh Kumar, Rafael J. Wysocki, Zhang Rui, Eduardo Valentin
  Cc: cpufreq@vger.kernel.org, Linux PM list, Jonghwa Lee,
	Lukasz Majewski, Lukasz Majewski, linux-kernel,
	Bartlomiej Zolnierkiewicz, Daniel Lezcano, Kukjin Kim,
	Myungjoo Ham, durgadoss.r

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. Then it starts
  monitoring target temperature to evaluate if boost can be enabled
  again. This emulates behaviour similar to HW managed boost (like x86)

Tested at HW:
       Exynos 4412 3.11-rc6 Linux
       Intel Core i7-3770 3.11-rc6 Linux

Above patches were posted on top of linux_pm/linux-next 
(SHA1: 68327ee544d74f20bb6179637971912e5e78811c)

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
  thermal:boost: Automatic enable/disable of BOOST feature
  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

 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     |    6 ++
 drivers/cpufreq/exynos4x12-cpufreq.c |    2 +-
 drivers/cpufreq/freq_table.c         |   53 +++++++++++++--
 drivers/thermal/thermal_core.c       |   55 ++++++++++++++++
 include/linux/cpufreq.h              |   25 +++++++
 include/linux/thermal.h              |    2 +
 11 files changed, 313 insertions(+), 79 deletions(-)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support
@ 2013-08-27  5:40 Viresh Kumar
  2013-08-27  8:45 ` Lukasz Majewski
       [not found] ` <20130910141603.6225fe4e@amdc308.digital.local>
  0 siblings, 2 replies; 5+ messages in thread
From: Viresh Kumar @ 2013-08-27  5:40 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Rafael J. Wysocki, Zhang Rui, Eduardo Valentin,
	cpufreq@vger.kernel.org, Linux PM list, Jonghwa Lee,
	Lukasz Majewski, linux-kernel, Bartlomiej Zolnierkiewicz,
	Daniel Lezcano, Kukjin Kim, Myungjoo Ham, R, Durgadoss

On 26 August 2013 21:20, Lukasz Majewski <l.majewski@samsung.com> wrote:
> 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. Then it starts
>   monitoring target temperature to evaluate if boost can be enabled
>   again. This emulates behaviour similar to HW managed boost (like x86)
>
> Tested at HW:
>        Exynos 4412 3.11-rc6 Linux
>        Intel Core i7-3770 3.11-rc6 Linux
>
> Above patches were posted on top of linux_pm/linux-next
> (SHA1: 68327ee544d74f20bb6179637971912e5e78811c)
>
> 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
>   thermal:boost: Automatic enable/disable of BOOST feature
>   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
>
>  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     |    6 ++
>  drivers/cpufreq/exynos4x12-cpufreq.c |    2 +-
>  drivers/cpufreq/freq_table.c         |   53 +++++++++++++--
>  drivers/thermal/thermal_core.c       |   55 ++++++++++++++++
>  include/linux/cpufreq.h              |   25 +++++++
>  include/linux/thermal.h              |    2 +
>  11 files changed, 313 insertions(+), 79 deletions(-)

Sorry for the long delays in getting this patchset in :)

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support
  2013-08-27  5:40 [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support Viresh Kumar
@ 2013-08-27  8:45 ` Lukasz Majewski
  2013-08-27  8:49   ` Viresh Kumar
       [not found] ` <20130910141603.6225fe4e@amdc308.digital.local>
  1 sibling, 1 reply; 5+ messages in thread
From: Lukasz Majewski @ 2013-08-27  8:45 UTC (permalink / raw)
  To: Viresh Kumar
  Cc: Rafael J. Wysocki, Zhang Rui, Eduardo Valentin,
	cpufreq@vger.kernel.org, Linux PM list, Jonghwa Lee,
	Lukasz Majewski, linux-kernel, Bartlomiej Zolnierkiewicz,
	Daniel Lezcano, Kukjin Kim, Myungjoo Ham, R, Durgadoss

On Tue, 27 Aug 2013 11:10:42 +0530 Viresh Kumar viresh.kumar@linaro.org
wrote,
> On 26 August 2013 21:20, Lukasz Majewski <l.majewski@samsung.com>
> wrote:
> > 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.
> > Then it starts monitoring target temperature to evaluate if boost
> > can be enabled again. This emulates behaviour similar to HW managed
> > boost (like x86)
> >
> > Tested at HW:
> >        Exynos 4412 3.11-rc6 Linux
> >        Intel Core i7-3770 3.11-rc6 Linux
> >
> > Above patches were posted on top of linux_pm/linux-next
> > (SHA1: 68327ee544d74f20bb6179637971912e5e78811c)
> >
> > 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
> >   thermal:boost: Automatic enable/disable of BOOST feature
> >   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
> >
> >  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     |    6 ++
> > drivers/cpufreq/exynos4x12-cpufreq.c |    2 +-
> > drivers/cpufreq/freq_table.c         |   53 +++++++++++++--
> > drivers/thermal/thermal_core.c       |   55 ++++++++++++++++
> > include/linux/cpufreq.h              |   25 +++++++
> > include/linux/thermal.h              |    2 + 11 files changed, 313
> > insertions(+), 79 deletions(-)
> 
> Sorry for the long delays in getting this patchset in :)
> 
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

Thanks Viresh :-).

For my future work it is important, to "stabilize" those patches at
some kernel_pm branch (linux-next or other).

-- 
Best regards,

Lukasz Majewski

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support
  2013-08-27  8:45 ` Lukasz Majewski
@ 2013-08-27  8:49   ` Viresh Kumar
  0 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2013-08-27  8:49 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Rafael J. Wysocki, Zhang Rui, Eduardo Valentin,
	cpufreq@vger.kernel.org, Linux PM list, Jonghwa Lee,
	Lukasz Majewski, linux-kernel, Bartlomiej Zolnierkiewicz,
	Daniel Lezcano, Kukjin Kim, Myungjoo Ham, R, Durgadoss

On 27 August 2013 14:15, Lukasz Majewski <l.majewski@samsung.com> wrote:
> For my future work it is important, to "stabilize" those patches at
> some kernel_pm branch (linux-next or other).

You can rebase them over 3.12-rc1 as soon as it is released after few
weeks and then Rafael can get them into linux-next.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support
       [not found]   ` <1525010.ijhgMNYcdJ@vostro.rjw.lan>
@ 2013-09-11  7:50     ` Viresh Kumar
  0 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2013-09-11  7:50 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Lukasz Majewski, cpufreq@vger.kernel.org,
	linux-pm@vger.kernel.org, Linux Kernel Mailing List,
	Daniel Lezcano

That is some important piece of information that might be useful for
others and so cc'ing LKML and other lists..

On 11 September 2013 01:06, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Tuesday, September 10, 2013 02:16:03 PM Lukasz Majewski wrote:
>> For my curiosity - what is the difference between bleeding-edge and
>> linux-next branches at kernel_pm?
>
> linux-next are patches that I'm going to push to Linus in the future and that
> have passed automated build testing.  I still may drop one of them occasionally
> or add tags to commits and rebase the branch as a result, though.
>
> bleeding-edge is linux-next plus patches under automated build testing, but it
> may contain some purely experimental stuff too.  During a merge window, like
> for example today, it also may contain material for the second next release
> (like 3.13 at the moment).
>
> In addition to those, there are topic branches like pm-cpufreq, acpica etc.
> that are only material either in the Linus' tree already or going to be pushed
> to Linus going forward and I don't rebase them.
>
> So if you want a stable branch to work on top of, either use one of the topic
> branches (but please note that they may be somewhat behind Linus sometimes), or
> ask me for one directly.
>
> Thanks,
> Rafael
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-11  7:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-27  5:40 [PATCH v8 0/7] cpufreq:boost: CPU Boost mode support Viresh Kumar
2013-08-27  8:45 ` Lukasz Majewski
2013-08-27  8:49   ` Viresh Kumar
     [not found] ` <20130910141603.6225fe4e@amdc308.digital.local>
     [not found]   ` <1525010.ijhgMNYcdJ@vostro.rjw.lan>
2013-09-11  7:50     ` Viresh Kumar
  -- strict thread matches above, loose matches on Subject: below --
2013-06-06  7:07 [PATCH 0/5] " Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 0/7] " Lukasz Majewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox