<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel/pm_qos_params.c, branch T30_LinuxImageV2.0Beta2_20130626</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>PM QoS: Add disable parameter</title>
<updated>2012-08-22T19:04:18+00:00</updated>
<author>
<name>Antti P Miettinen</name>
<email>amiettinen@nvidia.com</email>
</author>
<published>2012-08-20T16:36:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=064618cb59271bf674f489219028807ff712b241'/>
<id>064618cb59271bf674f489219028807ff712b241</id>
<content type='text'>
For testing purposes it is useful to be able to disable
PM Qos.

Bug 1020898
Bug 917572

Change-Id: I266f5b5730cfe4705197d8b09db7f9eda6766c7c
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Reviewed-on: http://git-master/r/124667
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen &lt;jtukkinen@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For testing purposes it is useful to be able to disable
PM Qos.

Bug 1020898
Bug 917572

Change-Id: I266f5b5730cfe4705197d8b09db7f9eda6766c7c
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Reviewed-on: http://git-master/r/124667
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen &lt;jtukkinen@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PM Qos: Add min online cpus as PM QoS parameter</title>
<updated>2012-02-28T04:46:03+00:00</updated>
<author>
<name>Gaurav Sarode</name>
<email>gsarode@nvidia.com</email>
</author>
<published>2012-02-17T09:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=566594ce3b1dbfc8397a62826992a0794612f51a'/>
<id>566594ce3b1dbfc8397a62826992a0794612f51a</id>
<content type='text'>
Bug 940061

Change-Id: Ibae842fdc3af3c92ec7e6125c602417110d8b55e
Signed-off-by: Gaurav Sarode &lt;gsarode@nvidia.com&gt;
Reviewed-on: http://git-master/r/84521
Reviewed-by: Sachin Nikam &lt;snikam@nvidia.com&gt;
Tested-by: Aleksandr Frid &lt;afrid@nvidia.com&gt;
Reviewed-by: Diwakar Tundlam &lt;dtundlam@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug 940061

Change-Id: Ibae842fdc3af3c92ec7e6125c602417110d8b55e
Signed-off-by: Gaurav Sarode &lt;gsarode@nvidia.com&gt;
Reviewed-on: http://git-master/r/84521
Reviewed-by: Sachin Nikam &lt;snikam@nvidia.com&gt;
Tested-by: Aleksandr Frid &lt;afrid@nvidia.com&gt;
Reviewed-by: Diwakar Tundlam &lt;dtundlam@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cpufreq: Enforce PM QoS min/max limits</title>
<updated>2012-01-20T00:16:46+00:00</updated>
<author>
<name>Antti P Miettinen</name>
<email>amiettinen@nvidia.com</email>
</author>
<published>2011-12-27T10:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3899a0f11c4dade59cfd9ca0fbdb459f77af4cb2'/>
<id>3899a0f11c4dade59cfd9ca0fbdb459f77af4cb2</id>
<content type='text'>
Observe PM QoS CPU frequency minimum and maximum in addition
to policy settings.

Bug 888312

Change-Id: Ia4f60a1649a9952e02f6847c8add3b2ea5d47524
Reviewed-on: http://git-master/r/72207
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/75884
Reviewed-by: Automatic_Commit_Validation_User
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Observe PM QoS CPU frequency minimum and maximum in addition
to policy settings.

Bug 888312

Change-Id: Ia4f60a1649a9952e02f6847c8add3b2ea5d47524
Reviewed-on: http://git-master/r/72207
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/75884
Reviewed-by: Automatic_Commit_Validation_User
</pre>
</div>
</content>
</entry>
<entry>
<title>PM QoS: Add CPU frequency min/max as PM QoS params</title>
<updated>2012-01-20T00:16:42+00:00</updated>
<author>
<name>Antti P Miettinen</name>
<email>amiettinen@nvidia.com</email>
</author>
<published>2011-12-27T10:28:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3dc66d7569cc6065bd1be8f58fae195a5c7451f4'/>
<id>3dc66d7569cc6065bd1be8f58fae195a5c7451f4</id>
<content type='text'>
Add minimum and maximum CPU frequency as PM QoS parameters.

Bug 888312

Change-Id: I18abddded35a044a6ad8365035e31d1a2213a329
Reviewed-on: http://git-master/r/72206
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/75883
Reviewed-by: Automatic_Commit_Validation_User
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add minimum and maximum CPU frequency as PM QoS parameters.

Bug 888312

Change-Id: I18abddded35a044a6ad8365035e31d1a2213a329
Reviewed-on: http://git-master/r/72206
Signed-off-by: Antti P Miettinen &lt;amiettinen@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/75883
Reviewed-by: Automatic_Commit_Validation_User
</pre>
</div>
</content>
</entry>
<entry>
<title>PM QoS: Add max online cpus as PM QoS parameter</title>
<updated>2011-12-22T08:35:19+00:00</updated>
<author>
<name>Alex Frid</name>
<email>afrid@nvidia.com</email>
</author>
<published>2011-12-16T21:44:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=868313eb1f9ec8d035b8878e1a5ffe287202d30a'/>
<id>868313eb1f9ec8d035b8878e1a5ffe287202d30a</id>
<content type='text'>
Bug 894200

Change-Id: Ieb009a13c6ef9bca2388e234eb973d65a4e3a58b
Signed-off-by: Alex Frid &lt;afrid@nvidia.com&gt;
Reviewed-on: http://git-master/r/71034
Reviewed-by: Rohan Somvanshi &lt;rsomvanshi@nvidia.com&gt;
Tested-by: Rohan Somvanshi &lt;rsomvanshi@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug 894200

Change-Id: Ieb009a13c6ef9bca2388e234eb973d65a4e3a58b
Signed-off-by: Alex Frid &lt;afrid@nvidia.com&gt;
Reviewed-on: http://git-master/r/71034
Reviewed-by: Rohan Somvanshi &lt;rsomvanshi@nvidia.com&gt;
Tested-by: Rohan Somvanshi &lt;rsomvanshi@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PM QoS: Simplify PM QoS expansion/merge</title>
<updated>2011-12-22T06:03:17+00:00</updated>
<author>
<name>Alex Frid</name>
<email>afrid@nvidia.com</email>
</author>
<published>2011-12-15T21:34:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=546bfe22844d461f838a2ec093f7d97e7bacff15'/>
<id>546bfe22844d461f838a2ec093f7d97e7bacff15</id>
<content type='text'>
- Replace class ID #define with enumeration
- Loop through PM QoS objects during initialization (rather than
  initializing them one-by-one)

Change-Id: I185b700b52c752c62e7550fe739adc498fc989ef
Signed-off-by: Alex Frid &lt;afrid@nvidia.com&gt;
Reviewed-on: http://git-master/r/70603
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Antti Miettinen &lt;amiettinen@nvidia.com&gt;
Reviewed-by: Diwakar Tundlam &lt;dtundlam@nvidia.com&gt;
Reviewed-by: Scott Williams &lt;scwilliams@nvidia.com&gt;
Reviewed-by: Yu-Huan Hsu &lt;yhsu@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Replace class ID #define with enumeration
- Loop through PM QoS objects during initialization (rather than
  initializing them one-by-one)

Change-Id: I185b700b52c752c62e7550fe739adc498fc989ef
Signed-off-by: Alex Frid &lt;afrid@nvidia.com&gt;
Reviewed-on: http://git-master/r/70603
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Antti Miettinen &lt;amiettinen@nvidia.com&gt;
Reviewed-by: Diwakar Tundlam &lt;dtundlam@nvidia.com&gt;
Reviewed-by: Scott Williams &lt;scwilliams@nvidia.com&gt;
Reviewed-by: Yu-Huan Hsu &lt;yhsu@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>plist: Remove the need to supply locks to plist heads</title>
<updated>2011-07-08T12:02:53+00:00</updated>
<author>
<name>Dima Zavin</name>
<email>dima@android.com</email>
</author>
<published>2011-07-08T00:27:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=732375c6a5a4cc825b676c922d547aba96b8ce15'/>
<id>732375c6a5a4cc825b676c922d547aba96b8ce15</id>
<content type='text'>
This was legacy code brought over from the RT tree and
is no longer necessary.

Signed-off-by: Dima Zavin &lt;dima@android.com&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Daniel Walker &lt;dwalker@codeaurora.org&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
Link: http://lkml.kernel.org/r/1310084879-10351-2-git-send-email-dima@android.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was legacy code brought over from the RT tree and
is no longer necessary.

Signed-off-by: Dima Zavin &lt;dima@android.com&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Daniel Walker &lt;dwalker@codeaurora.org&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
Link: http://lkml.kernel.org/r/1310084879-10351-2-git-send-email-dima@android.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6</title>
<updated>2011-05-29T18:18:09+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-29T18:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f310642123e0d32d919c60ca3fab5acd130c4ba3'/>
<id>f310642123e0d32d919c60ca3fab5acd130c4ba3</id>
<content type='text'>
* 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
  x86 idle: deprecate mwait_idle() and "idle=mwait" cmdline param
  x86 idle: deprecate "no-hlt" cmdline param
  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
  x86 idle floppy: deprecate disable_hlt()
  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it
  x86 idle: clarify AMD erratum 400 workaround
  idle governor: Avoid lock acquisition to read pm_qos before entering idle
  cpuidle: menu: fixed wrapping timers at 4.294 seconds
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
  x86 idle: deprecate mwait_idle() and "idle=mwait" cmdline param
  x86 idle: deprecate "no-hlt" cmdline param
  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
  x86 idle floppy: deprecate disable_hlt()
  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it
  x86 idle: clarify AMD erratum 400 workaround
  idle governor: Avoid lock acquisition to read pm_qos before entering idle
  cpuidle: menu: fixed wrapping timers at 4.294 seconds
</pre>
</div>
</content>
</entry>
<entry>
<title>idle governor: Avoid lock acquisition to read pm_qos before entering idle</title>
<updated>2011-05-29T04:50:59+00:00</updated>
<author>
<name>Tim Chen</name>
<email>tim.c.chen@linux.intel.com</email>
</author>
<published>2011-02-11T20:49:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=333c5ae9948194428fe6c5ef5c088304fc98263b'/>
<id>333c5ae9948194428fe6c5ef5c088304fc98263b</id>
<content type='text'>
Thanks to the reviews and comments by Rafael, James, Mark and Andi.
Here's version 2 of the patch incorporating your comments and also some
update to my previous patch comments.

I noticed that before entering idle state, the menu idle governor will
look up the current pm_qos target value according to the list of qos
requests received.  This look up currently needs the acquisition of a
lock to access the list of qos requests to find the qos target value,
slowing down the entrance into idle state due to contention by multiple
cpus to access this list.  The contention is severe when there are a lot
of cpus waking and going into idle.  For example, for a simple workload
that has 32 pair of processes ping ponging messages to each other, where
64 cpu cores are active in test system, I see the following profile with
37.82% of cpu cycles spent in contention of pm_qos_lock:

-     37.82%          swapper  [kernel.kallsyms]          [k]
_raw_spin_lock_irqsave
   - _raw_spin_lock_irqsave
      - 95.65% pm_qos_request
           menu_select
           cpuidle_idle_call
         - cpu_idle
              99.98% start_secondary

A better approach will be to cache the updated pm_qos target value so
reading it does not require lock acquisition as in the patch below.
With this patch the contention for pm_qos_lock is removed and I saw a
2.2X increase in throughput for my message passing workload.

cc: stable@kernel.org
Signed-off-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Acked-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Acked-by: mark gross &lt;markgross@thegnar.org&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thanks to the reviews and comments by Rafael, James, Mark and Andi.
Here's version 2 of the patch incorporating your comments and also some
update to my previous patch comments.

I noticed that before entering idle state, the menu idle governor will
look up the current pm_qos target value according to the list of qos
requests received.  This look up currently needs the acquisition of a
lock to access the list of qos requests to find the qos target value,
slowing down the entrance into idle state due to contention by multiple
cpus to access this list.  The contention is severe when there are a lot
of cpus waking and going into idle.  For example, for a simple workload
that has 32 pair of processes ping ponging messages to each other, where
64 cpu cores are active in test system, I see the following profile with
37.82% of cpu cycles spent in contention of pm_qos_lock:

-     37.82%          swapper  [kernel.kallsyms]          [k]
_raw_spin_lock_irqsave
   - _raw_spin_lock_irqsave
      - 95.65% pm_qos_request
           menu_select
           cpuidle_idle_call
         - cpu_idle
              99.98% start_secondary

A better approach will be to cache the updated pm_qos target value so
reading it does not require lock acquisition as in the patch below.
With this patch the contention for pm_qos_lock is removed and I saw a
2.2X increase in throughput for my message passing workload.

cc: stable@kernel.org
Signed-off-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Acked-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Acked-by: mark gross &lt;markgross@thegnar.org&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6</title>
<updated>2011-05-27T21:27:34+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-27T21:27:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f23a5e1405e47df6cdc86568ea75df266b9e151f'/>
<id>f23a5e1405e47df6cdc86568ea75df266b9e151f</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM: Fix PM QOS's user mode interface to work with ASCII input
  PM / Hibernate: Update kerneldoc comments in hibernate.c
  PM / Hibernate: Remove arch_prepare_suspend()
  PM / Hibernate: Update some comments in core hibernate code
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM: Fix PM QOS's user mode interface to work with ASCII input
  PM / Hibernate: Update kerneldoc comments in hibernate.c
  PM / Hibernate: Remove arch_prepare_suspend()
  PM / Hibernate: Update some comments in core hibernate code
</pre>
</div>
</content>
</entry>
</feed>
