<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/cpufreq/Kconfig, branch linux-4.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-08-02T23:34:11Z</updated>
<entry>
<title>cpufreq: Do not default-yes CPU_FREQ_STAT</title>
<updated>2016-08-02T23:34:11Z</updated>
<author>
<name>Borislav Petkov</name>
</author>
<published>2016-08-01T09:34:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79ad70de539c58883098f9f4ed6312dd7f6c2fef'/>
<id>urn:sha1:79ad70de539c58883098f9f4ed6312dd7f6c2fef</id>
<content type='text'>
CPU frequency transition statistics are not absolutely required for
proper cpufreq operation on the system AFAICT so remove the default-yes
setting in Kconfig.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>cpufreq: stats: Make the stats code non-modular</title>
<updated>2016-06-02T21:24:41Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-05-31T20:14:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1aefc75b2449eb68a6fc3ca932e2a4ee353b748d'/>
<id>urn:sha1:1aefc75b2449eb68a6fc3ca932e2a4ee353b748d</id>
<content type='text'>
The modularity of cpufreq_stats is quite problematic.

First off, the usage of policy notifiers for the initialization
and cleanup in the cpufreq_stats module is inherently racy with
respect to CPU offline/online and the initialization and cleanup
of the cpufreq driver.

Second, fast frequency switching (used by the schedutil governor)
cannot be enabled if any transition notifiers are registered, so
if the cpufreq_stats module (that registers a transition notifier
for updating transition statistics) is loaded, the schedutil governor
cannot use fast frequency switching.

On the other hand, allowing cpufreq_stats to be built as a module
doesn't really add much value.  Arguably, there's not much reason
for that code to be modular at all.

For the above reasons, make the cpufreq stats code non-modular,
modify the core to invoke functions provided by that code directly
and drop the notifiers from it.

Make the stats sysfs attributes appear empty if fast frequency
switching is enabled as the statistics will not be updated in that
case anyway (and returning -EBUSY from those attributes breaks
powertop).

While at it, clean up Kconfig help for the CPU_FREQ_STAT and
CPU_FREQ_STAT_DETAILS options.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pm-cpufreq-sched' into pm-cpufreq</title>
<updated>2016-05-11T20:48:20Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-05-11T20:48:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c29af6f1a4e6f54e806fed1c40e7d338650b7791'/>
<id>urn:sha1:c29af6f1a4e6f54e806fed1c40e7d338650b7791</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cpufreq: schedutil: Make default depend on CONFIG_SMP</title>
<updated>2016-05-11T20:47:44Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2016-05-11T12:52:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cfe9492fdf04d1191e7ac3a43e6df5e20c3f4164'/>
<id>urn:sha1:cfe9492fdf04d1191e7ac3a43e6df5e20c3f4164</id>
<content type='text'>
CPU_FREQ_GOV_SCHEDUTIL gained a dependency on SMP, so now we
get a warning if it gets selected by CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
without SMP:

warning: (CPU_FREQ_DEFAULT_GOV_SCHEDUTIL) selects CPU_FREQ_GOV_SCHEDUTIL which has unmet direct dependencies (CPU_FREQ &amp;&amp; SMP)

This adds another dependency to avoid the problem.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Fixes: bf7cdff19429 (cpufreq: schedutil: Make it depend on CONFIG_SMP)
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pm-cpufreq-sched' into pm-cpufreq</title>
<updated>2016-05-09T14:00:10Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-05-09T14:00:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d87de8f38a6739ad180923dbefd3e08e087a8f51'/>
<id>urn:sha1:d87de8f38a6739ad180923dbefd3e08e087a8f51</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cpufreq: schedutil: Make it depend on CONFIG_SMP</title>
<updated>2016-05-06T20:33:33Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-05-06T13:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf7cdff19429a72c32257da70d5345ffca66d861'/>
<id>urn:sha1:bf7cdff19429a72c32257da70d5345ffca66d861</id>
<content type='text'>
Make the schedutil cpufreq governor depend on CONFIG_SMP, because
the scheduler-provided utilization numbers used by it are only
available with CONFIG_SMP set.

Fixes: 9bdcb44e391d (cpufreq: schedutil: New governor based on scheduler utilization data)
Reported-by: Steve Muckle &lt;steve.muckle@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>cpufreq: dt: Add generic platform-device creation support</title>
<updated>2016-04-08T23:18:42Z</updated>
<author>
<name>Viresh Kumar</name>
</author>
<published>2016-03-30T08:15:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f56aad1d98f1c0c6df513abcd275a4d914adc1ef'/>
<id>urn:sha1:f56aad1d98f1c0c6df513abcd275a4d914adc1ef</id>
<content type='text'>
Multiple platforms are using the generic cpufreq-dt driver now, and all
of them are required to create a platform device with name "cpufreq-dt",
in order to get the cpufreq-dt probed.

Many of them do it from platform code, others have special drivers just
to do that.

It would be more sensible to do this at a generic place, where all such
platform can mark their entries.

This patch adds a separate file to get this device created. Currently
the compat list of platforms that we support is empty, and will be
filled in as and when we move platforms to use it.

It always compiles as part of the kernel and so doesn't need a
module-exit operation.

Signed-off-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Reviewed-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>cpufreq: schedutil: New governor based on scheduler utilization data</title>
<updated>2016-04-01T23:09:12Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-04-01T23:09:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9bdcb44e391da5c41b98573bf0305a0e0b1c9569'/>
<id>urn:sha1:9bdcb44e391da5c41b98573bf0305a0e0b1c9569</id>
<content type='text'>
Add a new cpufreq scaling governor, called "schedutil", that uses
scheduler-provided CPU utilization information as input for making
its decisions.

Doing that is possible after commit 34e2c555f3e1 (cpufreq: Add
mechanism for registering utilization update callbacks) that
introduced cpufreq_update_util() called by the scheduler on
utilization changes (from CFS) and RT/DL task status updates.
In particular, CPU frequency scaling decisions may be based on
the the utilization data passed to cpufreq_update_util() by CFS.

The new governor is relatively simple.

The frequency selection formula used by it depends on whether or not
the utilization is frequency-invariant.  In the frequency-invariant
case the new CPU frequency is given by

	next_freq = 1.25 * max_freq * util / max

where util and max are the last two arguments of cpufreq_update_util().
In turn, if util is not frequency-invariant, the maximum frequency in
the above formula is replaced with the current frequency of the CPU:

	next_freq = 1.25 * curr_freq * util / max

The coefficient 1.25 corresponds to the frequency tipping point at
(util / max) = 0.8.

All of the computations are carried out in the utilization update
handlers provided by the new governor.  One of those handlers is
used for cpufreq policies shared between multiple CPUs and the other
one is for policies with one CPU only (and therefore it doesn't need
to use any extra synchronization means).

The governor supports fast frequency switching if that is supported
by the cpufreq driver in use and possible for the given policy.
In the fast switching case, all operations of the governor take
place in its utilization update handlers.  If fast switching cannot
be used, the frequency switch operations are carried out with the
help of a work item which only calls __cpufreq_driver_target()
(under a mutex) to trigger a frequency update (to a value already
computed beforehand in one of the utilization update handlers).

Currently, the governor treats all of the RT and DL tasks as
"unknown utilization" and sets the frequency to the allowed
maximum when updated from the RT or DL sched classes.  That
heavy-handed approach should be replaced with something more
subtle and specifically targeted at RT and DL tasks.

The governor shares some tunables management code with the
"ondemand" and "conservative" governors and uses some common
definitions from cpufreq_governor.h, but apart from that it
is stand-alone.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
</content>
</entry>
<entry>
<title>cpufreq: governor: Move abstract gov_attr_set code to seperate file</title>
<updated>2016-04-01T23:09:01Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-03-22T01:49:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d0c58ad60376160ee8b535e570a38b9a349b6a4'/>
<id>urn:sha1:2d0c58ad60376160ee8b535e570a38b9a349b6a4</id>
<content type='text'>
Move abstract code related to struct gov_attr_set to a separate (new)
file so it can be shared with (future) goverernors that won't share
more code with "ondemand" and "conservative".

No intentional functional changes.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pm-cpufreq'</title>
<updated>2016-03-14T13:22:03Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2016-03-14T13:22:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ed39004271280d2b5fc6929b2782c0e330f6895'/>
<id>urn:sha1:4ed39004271280d2b5fc6929b2782c0e330f6895</id>
<content type='text'>
* pm-cpufreq: (94 commits)
  intel_pstate: Do not skip samples partially
  intel_pstate: Remove freq calculation from intel_pstate_calc_busy()
  intel_pstate: Move intel_pstate_calc_busy() into get_target_pstate_use_performance()
  intel_pstate: Optimize calculation for max/min_perf_adj
  intel_pstate: Remove extra conversions in pid calculation
  cpufreq: Move scheduler-related code to the sched directory
  Revert "cpufreq: postfix policy directory with the first CPU in related_cpus"
  cpufreq: Reduce cpufreq_update_util() overhead a bit
  cpufreq: Select IRQ_WORK if CPU_FREQ_GOV_COMMON is set
  cpufreq: Remove 'policy-&gt;governor_enabled'
  cpufreq: Rename __cpufreq_governor() to cpufreq_governor()
  cpufreq: Relocate handle_update() to kill its declaration
  cpufreq: governor: Drop unnecessary checks from show() and store()
  cpufreq: governor: Fix race in dbs_update_util_handler()
  cpufreq: governor: Make gov_set_update_util() static
  cpufreq: governor: Narrow down the dbs_data_mutex coverage
  cpufreq: governor: Make dbs_data_mutex static
  cpufreq: governor: Relocate definitions of tuners structures
  cpufreq: governor: Move per-CPU data to the common code
  cpufreq: governor: Make governor private data per-policy
  ...
</content>
</entry>
</feed>
