<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/cpufreq, branch v2.6.35</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.35</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.35'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2010-07-26T19:25:33+00:00</updated>
<entry>
<title>[CPUFREQ] fix memory leak in cpufreq_add_dev</title>
<updated>2010-07-26T19:25:33+00:00</updated>
<author>
<name>Xiaotian Feng</name>
<email>dfeng@redhat.com</email>
</author>
<published>2010-07-20T12:11:02+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6f90388ac98e8cb2c63e307ffb13871a6b87f29b'/>
<id>urn:sha1:6f90388ac98e8cb2c63e307ffb13871a6b87f29b</id>
<content type='text'>
We didn't free policy-&gt;related_cpus in error path err_unlock_policy.
This is catched by following kmemleak report:

unreferenced object 0xffff88022a0b96d0 (size 512):
  comm "modprobe", pid 886, jiffies 4294689177 (age 780.694s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;ffffffff8111ebe5&gt;] create_object+0x186/0x281
    [&lt;ffffffff814fad4f&gt;] kmemleak_alloc+0x60/0xa7
    [&lt;ffffffff8111127a&gt;] kmem_cache_alloc_node_notrace+0x120/0x142
    [&lt;ffffffff81262e4f&gt;] alloc_cpumask_var_node+0x2c/0xd7
    [&lt;ffffffff81262f0b&gt;] alloc_cpumask_var+0x11/0x13
    [&lt;ffffffff81262f1c&gt;] zalloc_cpumask_var+0xf/0x11
    [&lt;ffffffff8140fac0&gt;] cpufreq_add_dev+0x11f/0x547
    [&lt;ffffffff81334bda&gt;] sysdev_driver_register+0xc2/0x11d
    [&lt;ffffffff8140e334&gt;] cpufreq_register_driver+0xcb/0x1b8
    [&lt;ffffffffa032e040&gt;] 0xffffffffa032e040
    [&lt;ffffffff810021ba&gt;] do_one_initcall+0x5e/0x15c
    [&lt;ffffffff81087f94&gt;] sys_init_module+0xa6/0x1e6
    [&lt;ffffffff81009bc2&gt;] system_call_fastpath+0x16/0x1b
    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff

Signed-off-by: Xiaotian Feng &lt;dfeng@redhat.com&gt;
Cc: Thomas Renninger &lt;trenn@suse.de&gt;
Cc: Prarit Bhargava &lt;prarit@redhat.com&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
<entry>
<title>[CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)"</title>
<updated>2010-07-26T19:25:33+00:00</updated>
<author>
<name>Andrej Gelenberg</name>
<email>andrej.gelenberg@udo.edu</email>
</author>
<published>2010-05-14T22:15:58+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=accd846698439ba18250e8fd5681af280446b853'/>
<id>urn:sha1:accd846698439ba18250e8fd5681af280446b853</id>
<content type='text'>
395913d0b1db37092ea3d9d69b832183b1dd84c5 ("[CPUFREQ] remove rwsem lock
from CPUFREQ_GOV_STOP call (second call site)") is not needed, because
there is no rwsem lock in cpufreq_ondemand and cpufreq_conservative
anymore.  Lock should not be released until the work done.

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=1594

Signed-off-by: Andrej Gelenberg &lt;andrej.gelenberg@udo.edu&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Cc: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Acked-by: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2010-05-18T15:49:13+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-18T15:49:13+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=07d77759c95d899b84f8e473a01cff001019dd5f'/>
<id>urn:sha1:07d77759c95d899b84f8e473a01cff001019dd5f</id>
<content type='text'>
* 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, hypervisor: add missing &lt;linux/module.h&gt;
  Modify the VMware balloon driver for the new x86_hyper API
  x86, hypervisor: Export the x86_hyper* symbols
  x86: Clean up the hypervisor layer
  x86, HyperV: fix up the license to mshyperv.c
  x86: Detect running on a Microsoft HyperV system
  x86, cpu: Make APERF/MPERF a normal table-driven flag
  x86, k8: Fix build error when K8_NB is disabled
  x86, cacheinfo: Disable index in all four subcaches
  x86, cacheinfo: Make L3 cache info per node
  x86, cacheinfo: Reorganize AMD L3 cache structure
  x86, cacheinfo: Turn off L3 cache index disable feature in virtualized environments
  x86, cacheinfo: Unify AMD L3 cache index disable checking
  cpufreq: Unify sysfs attribute definition macros
  powernow-k8: Fix frequency reporting
  x86, cpufreq: Add APERF/MPERF support for AMD processors
  x86: Unify APERF/MPERF support
  powernow-k8: Add core performance boost support
  x86, cpu: Add AMD core boosting feature flag to /proc/cpuinfo

Fix up trivial conflicts in arch/x86/kernel/cpu/intel_cacheinfo.c and
drivers/cpufreq/cpufreq_ondemand.c
</content>
</entry>
<entry>
<title>ondemand: Make the iowait-is-busy time a sysfs tunable</title>
<updated>2010-05-09T17:35:27+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2010-05-09T15:26:51+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=19379b11819efc1fc3b602e64f7e7531050aaddb'/>
<id>urn:sha1:19379b11819efc1fc3b602e64f7e7531050aaddb</id>
<content type='text'>
Pavel Machek pointed out that not all CPUs have an efficient
idle at high frequency. Specifically, older Intel and various
AMD cpus would get a higher powerusage when copying files from
USB.

Mike Chan pointed out that the same is true for various ARM
chips as well.

Thomas Renninger suggested to make this a sysfs tunable with a
reasonable default.

This patch adds a sysfs tunable for the new behavior, and uses
a very simple function to determine a reasonable default,
depending on the CPU vendor/type.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Acked-by: Rik van Riel &lt;riel@redhat.com&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: davej@redhat.com
LKML-Reference: &lt;20100509082651.46914d04@infradead.org&gt;
[ minor tidyup ]
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>ondemand: Solve a big performance issue by counting IOWAIT time as busy</title>
<updated>2010-05-09T17:35:27+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2010-05-09T15:26:06+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6b8fcd9029f217a9ecce822db645e19111c11080'/>
<id>urn:sha1:6b8fcd9029f217a9ecce822db645e19111c11080</id>
<content type='text'>
The ondemand cpufreq governor uses CPU busy time (e.g. not-idle
time) as a measure for scaling the CPU frequency up or down.
If the CPU is busy, the CPU frequency scales up, if it's idle,
the CPU frequency scales down. Effectively, it uses the CPU busy
time as proxy variable for the more nebulous "how critical is
performance right now" question.

This algorithm falls flat on its face in the light of workloads
where you're alternatingly disk and CPU bound, such as the ever
popular "git grep", but also things like startup of programs and
maildir using email clients... much to the chagarin of Andrew
Morton.

This patch changes the ondemand algorithm to count iowait time
as busy, not idle, time. As shown in the breakdown cases above,
iowait is performance critical often, and by counting iowait,
the proxy variable becomes a more accurate representation of the
"how critical is performance" question.

The problem and fix are both verified with the "perf timechar"
tool.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Reviewed-by: Rik van Riel &lt;riel@redhat.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;20100509082606.3d9f00d0@infradead.org&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Merge commit 'v2.6.34-rc6' into x86/cpu</title>
<updated>2010-05-08T21:59:58+00:00</updated>
<author>
<name>H. Peter Anvin</name>
<email>hpa@zytor.com</email>
</author>
<published>2010-05-08T21:59:58+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=d7be0ce6afb1df60bc786f57410407ceae92b994'/>
<id>urn:sha1:d7be0ce6afb1df60bc786f57410407ceae92b994</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq</title>
<updated>2010-04-24T18:35:21+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-04-24T18:35:21+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ddc9b34c3b3bc063a7d9eb891ae09b8f49cfb27e'/>
<id>urn:sha1:ddc9b34c3b3bc063a7d9eb891ae09b8f49cfb27e</id>
<content type='text'>
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] use max load in conservative governor
  [CPUFREQ] fix a lockdep warning
</content>
</entry>
<entry>
<title>cpufreq: Unify sysfs attribute definition macros</title>
<updated>2010-04-09T21:07:56+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>borislav.petkov@amd.com</email>
</author>
<published>2010-03-31T19:56:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6dad2a29646ce3792c40cfc52d77e9b65a7bb143'/>
<id>urn:sha1:6dad2a29646ce3792c40cfc52d77e9b65a7bb143</id>
<content type='text'>
Multiple modules used to define those which are with identical
functionality and were needlessly replicated among the different cpufreq
drivers. Push them into the header and remove duplication.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1270065406-1814-7-git-send-email-bp@amd64.org&gt;
Reviewed-by: Thomas Renninger &lt;trenn@suse.de&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
</entry>
<entry>
<title>[CPUFREQ] use max load in conservative governor</title>
<updated>2010-03-31T16:00:22+00:00</updated>
<author>
<name>Dominik Brodowski</name>
<email>linux@dominikbrodowski.net</email>
</author>
<published>2010-03-26T09:01:34+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=fd187aaf980c45f1d16a94a846faa68e24de03c8'/>
<id>urn:sha1:fd187aaf980c45f1d16a94a846faa68e24de03c8</id>
<content type='text'>
Instead of using the load of the last CPU in a package, use the
maximum load of all CPUs in a package.

Reported-by: Jean-Christian Goussard &lt;jeanchristian.goussard@sfr.fr&gt;
Signed-off-by: Dominik Brodowski &lt;linux@dominikbrodowski.net&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
<entry>
<title>[CPUFREQ] fix a lockdep warning</title>
<updated>2010-03-31T16:00:21+00:00</updated>
<author>
<name>Amerigo Wang</name>
<email>amwang@redhat.com</email>
</author>
<published>2010-03-04T08:23:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=499bca9b6d3243f9278a1f5a22d00e67acdd844d'/>
<id>urn:sha1:499bca9b6d3243f9278a1f5a22d00e67acdd844d</id>
<content type='text'>
There is no need to do sysfs_remove_link() or kobject_put() etc.
when policy_rwsem_write is held, move them after releasing the lock.

This fixes the lockdep warning:

halt/4071 is trying to acquire lock:
 (s_active){++++.+}, at: [&lt;c0000000001ef868&gt;] .sysfs_addrm_finish+0x58/0xc0

but task is already holding lock:
 (&amp;per_cpu(cpu_policy_rwsem, cpu)){+.+.+.}, at: [&lt;c0000000004cd6ac&gt;] .lock_policy_rwsem_write+0x84/0xf4

Reported-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: WANG Cong &lt;amwang@redhat.com&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
</feed>
