All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Cc: linux-acpi@vger.kernel.org, linux-pm@lists.linux-foundation.org,
	Lists Linaro-dev <linaro-dev@lists.linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Amit Kucheria <amit.kucheria@linaro.org>,
	"lenb@kernel.org" <lenb@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Colin Cross <ccross@android.com>,
	Peter De Schrijver <pdeschrijver@nvidia.com>,
	Rob Lee <rob.lee@linaro.org>,
	rjw@sisk.pl, Kevin Hilman <khilman@ti.com>,
	linux-next@vger.kernel.org
Subject: Re: cpuidle future and improvements
Date: Mon, 18 Jun 2012 14:35:42 +0200	[thread overview]
Message-ID: <4FDF209E.7070803@linaro.org> (raw)
In-Reply-To: <4FDF16DB.6080004@linux.vnet.ibm.com>

On 06/18/2012 01:54 PM, Deepthi Dharwar wrote:
> On 06/18/2012 02:10 PM, Daniel Lezcano wrote:
> 
>>
>> Dear all,
>>
>> A few weeks ago, Peter De Schrijver proposed a patch [1] to allow per
>> cpu latencies. We had a discussion about this patchset because it
>> reverse the modifications Deepthi did some months ago [2] and we may
>> want to provide a different implementation.
>>
>> The Linaro Connect [3] event bring us the opportunity to meet people
>> involved in the power management and the cpuidle area for different SoC.
>>
>> With the Tegra3 and big.LITTLE architecture, making per cpu latencies
>> for cpuidle is vital.
>>
>> Also, the SoC vendors would like to have the ability to tune their cpu
>> latencies through the device tree.
>>
>> We agreed in the following steps:
>>
>> 1. factor out / cleanup the cpuidle code as much as possible
>> 2. better sharing of code amongst SoC idle drivers by moving common bits
>> to core code
>> 3. make the cpuidle_state structure contain only data
>> 4. add a API to register latencies per cpu
> 
> On huge systems especially  servers, doing a cpuidle registration on a
> per-cpu basis creates a big overhead.
> So global registration was introduced in the first place.
> 
> Why not have it as a configurable option or so ?
> Architectures having uniform cpuidle state parameters can continue to
> use global registration, else have an api to register latencies per cpu
> as proposed. We can definitely work to see the best way to implement it.

Absolutely, this is one reason I think adding a function:

cpuidle_register_latencies(int cpu, struct cpuidle_latencies);

makes sense if it is used only for cpus with different latencies.
The other architecture will be kept untouched.

IMHO, before adding more functionalities to cpuidle, we should cleanup
and consolidate the code. For example, there is a dependency between
acpi_idle and intel_idle which can be resolved with the notifiers, or
there is intel specific code in cpuidle.c and cpuidle.h, cpu_relax is
also introduced to cpuidle which is related to x86 not the cpuidle core,
etc ...

Cleanup the code will help to move the different bits from the arch
specific code to the core code and reduce the impact of the core's
modifications. That should let a common pattern to emerge and will
facilitate the modifications in the future (per cpu latencies is one of
them).

That will be a lot of changes and this is why I proposed to put in place
a cpuidle-next tree in order to consolidate all the cpuidle
modifications people is willing to see upstream and provide better testing.


>> These four steps impacts all the architecture. I began the factor out
>> code / cleanup [4] and that has been accepted upstream and I proposed
>> some modifications [5] but I had a very few answers.
>>
>> The patch review are very slow and done at the last minute at the merge
>> window and that makes code upstreaming very difficult. It is not a
>> reproach, it is just how it is and I would like to propose a solution
>> for that.
>>
>> I propose to host a cpuidle-next tree where all these modifications will
>> be and where people can send patches against, preventing last minutes
>> conflicts and perhaps Lenb will agree to pull from this tree. In the
>> meantime, the tree will be part of the linux-next, the patches will be
>> more widely tested and could be fixed earlier.
>>
>> Thanks
>> -- Daniel
>>
>> [1] http://lwn.net/Articles/491257/
>> [2] http://lwn.net/Articles/464808/
>> [3] http://summit.linaro.org/
>> [4]
>> http://www.mail-archive.com/linux-omap@vger.kernel.org/msg67033.html,
>> http://www.spinics.net/lists/linux-pm/msg27330.html,
>> http://comments.gmane.org/gmane.linux.ports.arm.omap/76311,
>> http://www.digipedia.pl/usenet/thread/18885/11795/
>>
>> [5] https://lkml.org/lkml/2012/6/8/375
>>
> 
> 
> Cheers,
> Deepthi
> 


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Cc: linux-acpi@vger.kernel.org, linux-pm@lists.linux-foundation.org,
	Lists Linaro-dev <linaro-dev@lists.linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Amit Kucheria <amit.kucheria@linaro.org>,
	"lenb@kernel.org" <lenb@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Colin Cross <ccross@android.com>,
	Peter De Schrijver <pdeschrijver@nvidia.com>,
	Rob Lee <rob.lee@linaro.org>,
	rjw@sisk.pl, Kevin Hilman <khilman@ti.com>,
	linux-next@vger.kernel.org
Subject: Re: cpuidle future and improvements
Date: Mon, 18 Jun 2012 14:35:42 +0200	[thread overview]
Message-ID: <4FDF209E.7070803@linaro.org> (raw)
In-Reply-To: <4FDF16DB.6080004@linux.vnet.ibm.com>

On 06/18/2012 01:54 PM, Deepthi Dharwar wrote:
> On 06/18/2012 02:10 PM, Daniel Lezcano wrote:
> 
>>
>> Dear all,
>>
>> A few weeks ago, Peter De Schrijver proposed a patch [1] to allow per
>> cpu latencies. We had a discussion about this patchset because it
>> reverse the modifications Deepthi did some months ago [2] and we may
>> want to provide a different implementation.
>>
>> The Linaro Connect [3] event bring us the opportunity to meet people
>> involved in the power management and the cpuidle area for different SoC.
>>
>> With the Tegra3 and big.LITTLE architecture, making per cpu latencies
>> for cpuidle is vital.
>>
>> Also, the SoC vendors would like to have the ability to tune their cpu
>> latencies through the device tree.
>>
>> We agreed in the following steps:
>>
>> 1. factor out / cleanup the cpuidle code as much as possible
>> 2. better sharing of code amongst SoC idle drivers by moving common bits
>> to core code
>> 3. make the cpuidle_state structure contain only data
>> 4. add a API to register latencies per cpu
> 
> On huge systems especially  servers, doing a cpuidle registration on a
> per-cpu basis creates a big overhead.
> So global registration was introduced in the first place.
> 
> Why not have it as a configurable option or so ?
> Architectures having uniform cpuidle state parameters can continue to
> use global registration, else have an api to register latencies per cpu
> as proposed. We can definitely work to see the best way to implement it.

Absolutely, this is one reason I think adding a function:

cpuidle_register_latencies(int cpu, struct cpuidle_latencies);

makes sense if it is used only for cpus with different latencies.
The other architecture will be kept untouched.

IMHO, before adding more functionalities to cpuidle, we should cleanup
and consolidate the code. For example, there is a dependency between
acpi_idle and intel_idle which can be resolved with the notifiers, or
there is intel specific code in cpuidle.c and cpuidle.h, cpu_relax is
also introduced to cpuidle which is related to x86 not the cpuidle core,
etc ...

Cleanup the code will help to move the different bits from the arch
specific code to the core code and reduce the impact of the core's
modifications. That should let a common pattern to emerge and will
facilitate the modifications in the future (per cpu latencies is one of
them).

That will be a lot of changes and this is why I proposed to put in place
a cpuidle-next tree in order to consolidate all the cpuidle
modifications people is willing to see upstream and provide better testing.


>> These four steps impacts all the architecture. I began the factor out
>> code / cleanup [4] and that has been accepted upstream and I proposed
>> some modifications [5] but I had a very few answers.
>>
>> The patch review are very slow and done at the last minute at the merge
>> window and that makes code upstreaming very difficult. It is not a
>> reproach, it is just how it is and I would like to propose a solution
>> for that.
>>
>> I propose to host a cpuidle-next tree where all these modifications will
>> be and where people can send patches against, preventing last minutes
>> conflicts and perhaps Lenb will agree to pull from this tree. In the
>> meantime, the tree will be part of the linux-next, the patches will be
>> more widely tested and could be fixed earlier.
>>
>> Thanks
>> -- Daniel
>>
>> [1] http://lwn.net/Articles/491257/
>> [2] http://lwn.net/Articles/464808/
>> [3] http://summit.linaro.org/
>> [4]
>> http://www.mail-archive.com/linux-omap@vger.kernel.org/msg67033.html,
>> http://www.spinics.net/lists/linux-pm/msg27330.html,
>> http://comments.gmane.org/gmane.linux.ports.arm.omap/76311,
>> http://www.digipedia.pl/usenet/thread/18885/11795/
>>
>> [5] https://lkml.org/lkml/2012/6/8/375
>>
> 
> 
> Cheers,
> Deepthi
> 


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


  reply	other threads:[~2012-06-18 12:35 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-18  8:40 cpuidle future and improvements Daniel Lezcano
2012-06-18  8:40 ` Daniel Lezcano
2012-06-18 11:54 ` Deepthi Dharwar
2012-06-18 12:35   ` Daniel Lezcano [this message]
2012-06-18 12:35     ` Daniel Lezcano
2012-06-18 12:53     ` Peter De Schrijver
2012-06-18 12:53       ` Peter De Schrijver
2012-06-18 12:55       ` Daniel Lezcano
2012-06-18 12:55         ` Daniel Lezcano
2012-06-18 13:06         ` Jean Pihet
2012-06-18 13:06           ` Jean Pihet
2012-06-18 13:26           ` Daniel Lezcano
2012-06-18 13:26             ` Daniel Lezcano
2012-06-18 13:30 ` [linux-pm] " a0393909
2012-06-25 12:58   ` Shilimkar, Santosh
2012-06-25 13:10     ` Daniel Lezcano
2012-06-25 13:10       ` Daniel Lezcano
2012-06-25 13:17       ` Shilimkar, Santosh
2012-06-25 13:27   ` linux-next : cpuidle - could you add my tree please Daniel Lezcano
2012-06-25 22:53     ` Stephen Rothwell
2012-07-02  9:09     ` Linus Walleij
2012-07-02  9:09       ` Linus Walleij
2012-07-02 12:51       ` Daniel Lezcano
2012-07-02 12:51         ` Daniel Lezcano
2012-07-02 19:49         ` Rafael J. Wysocki
2012-07-02 22:14           ` Daniel Lezcano
2012-07-03  8:59             ` Rafael J. Wysocki
2012-07-03 12:56               ` Daniel Lezcano
2012-07-03 13:19                 ` Stephen Rothwell
2012-07-03 13:25                   ` Daniel Lezcano
2012-07-03 13:25                     ` Daniel Lezcano
2012-07-03 16:54                     ` Rafael J. Wysocki
2012-07-05 13:33                       ` Daniel Lezcano
2012-07-03 19:20             ` Linus Walleij
2012-07-03 19:20               ` Linus Walleij
2012-07-03 19:33               ` Rafael J. Wysocki
2012-07-03 19:33                 ` Rafael J. Wysocki
2012-07-02 20:04     ` Rafael J. Wysocki
2012-07-02 20:04       ` Rafael J. Wysocki
2012-06-18 18:15 ` cpuidle future and improvements Colin Cross
2012-06-18 18:15   ` Colin Cross
2012-06-18 19:00   ` Daniel Lezcano
2012-06-18 19:00     ` Daniel Lezcano
2012-06-25 12:54   ` Daniel Lezcano
2012-07-11 14:00     ` [linux-pm] " Kevin Hilman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FDF209E.7070803@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=amit.kucheria@linaro.org \
    --cc=ccross@android.com \
    --cc=deepthi@linux.vnet.ibm.com \
    --cc=khilman@ti.com \
    --cc=lenb@kernel.org \
    --cc=linaro-dev@lists.linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pdeschrijver@nvidia.com \
    --cc=rjw@sisk.pl \
    --cc=rob.lee@linaro.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.