Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
Eric Huang
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
Lorenzo, Good to know adding DT capabilities is on the table.
So at the moment, if I want to have more idle states, I will have to create separated CPU idle driver in my mach-xxx directory.
Eric
On Feb 25, 2013, at 10:28 AM, Lorenzo Pieralisi lorenzo.pieralisi@arm.com wrote:
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
Eric,
Just to re-emphasize what Lorenzo said - we'd like a single implementation in mainline to work across SoCs.
Lorenzo and Daniel will be working towards that goal next week in Hong Kong at LCA13. Expect to see the results of the effort on the mailing lists in a few weeks.
In the meanwhile, so as to not get blocked, yes, you'll have to create your own copy of the driver with newer idle states.
If you don't mind, please keep Daniel and Lorenzo in the loop about your progress and problems faced so that they can factor those in when designing a single driver.
/Amit
On Mon, Feb 25, 2013 at 11:11 PM, Eric Huang ericyh@marvell.com wrote:
Lorenzo, Good to know adding DT capabilities is on the table.
So at the moment, if I want to have more idle states, I will have to create separated CPU idle driver in my mach-xxx directory.
Eric
On Feb 25, 2013, at 10:28 AM, Lorenzo Pieralisi lorenzo.pieralisi@arm.com wrote:
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
I have a basic patch to the current driver which adds very basic device tree support, I can post if you are interested in carrying a patch until it gets fixed properly?
Mark
-----Original Message----- From: linaro-kernel-bounces@lists.linaro.org [mailto:linaro-kernel-bounces@lists.linaro.org] On Behalf Of Amit Kucheria Sent: 26 February 2013 05:53 To: Eric Huang; Daniel Lezcano Cc: linaro-kernel@lists.linaro.org Subject: Re: arm_big_little: More CPUIdle states?
Eric,
Just to re-emphasize what Lorenzo said - we'd like a single implementation in mainline to work across SoCs.
Lorenzo and Daniel will be working towards that goal next week in Hong Kong at LCA13. Expect to see the results of the effort on the mailing lists in a few weeks.
In the meanwhile, so as to not get blocked, yes, you'll have to create your own copy of the driver with newer idle states.
If you don't mind, please keep Daniel and Lorenzo in the loop about your progress and problems faced so that they can factor those in when designing a single driver.
/Amit
On Mon, Feb 25, 2013 at 11:11 PM, Eric Huang ericyh@marvell.com wrote:
Lorenzo, Good to know adding DT capabilities is on the table.
So at the moment, if I want to have more idle states, I will have to create separated CPU idle driver in my mach-xxx directory.
Eric
On Feb 25, 2013, at 10:28 AM, Lorenzo Pieralisi lorenzo.pieralisi@arm.com wrote:
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
_______________________________________________ linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
On 02/26/2013 01:22 PM, Mark Hambleton wrote:
I have a basic patch to the current driver which adds very basic device tree support, I can post if you are interested in carrying a patch until it gets fixed properly?
Hi Mark,
I am interested to study your patchset, could send it ?
Thanks a lot
-- Daniel
-----Original Message----- From: linaro-kernel-bounces@lists.linaro.org [mailto:linaro-kernel-bounces@lists.linaro.org] On Behalf Of Amit Kucheria Sent: 26 February 2013 05:53 To: Eric Huang; Daniel Lezcano Cc: linaro-kernel@lists.linaro.org Subject: Re: arm_big_little: More CPUIdle states?
Eric,
Just to re-emphasize what Lorenzo said - we'd like a single implementation in mainline to work across SoCs.
Lorenzo and Daniel will be working towards that goal next week in Hong Kong at LCA13. Expect to see the results of the effort on the mailing lists in a few weeks.
In the meanwhile, so as to not get blocked, yes, you'll have to create your own copy of the driver with newer idle states.
If you don't mind, please keep Daniel and Lorenzo in the loop about your progress and problems faced so that they can factor those in when designing a single driver.
/Amit
On Mon, Feb 25, 2013 at 11:11 PM, Eric Huang ericyh@marvell.com wrote:
Lorenzo, Good to know adding DT capabilities is on the table.
So at the moment, if I want to have more idle states, I will have to create separated CPU idle driver in my mach-xxx directory.
Eric
On Feb 25, 2013, at 10:28 AM, Lorenzo Pieralisi lorenzo.pieralisi@arm.com wrote:
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
I am interested to study your patchset, could send it ?
Ok, here it is (plus some notes):
I am still playing with it and it obviously doesn’t support multiple drivers as that doesn’t appear in any of the codelines yet.
I have the basics for reading stuff out of the DTS and getting the states from the driver in the powerdown flow, but haven’t put that in TC2 yet (not sure I need to as it only has 2 states). For our internal platforms I have added a function that is called in powerdown flow :
static int get_c_state_from_res(u64 residency) { struct cpuidle_driver *drv = cpuidle_get_driver();
if (drv) { struct cpuidle_state *st; int index; st = &drv->states[0];
for (index = 0; index < drv->state_count; st++, index++) if (residency < (u64)st->target_residency) { dbg("%s: match %d res %llu target %u\n", __func__, index, residency, st->target_residency); return index; } } dbg("%s: no-match for res %llu returning C4\n", __func__, residency); return drv->state_count; }
There are too many printk's in the patch and the example and some other bits that need cleaning up, I can do this if you are interested in using it until the real solution is available.
Mark
Mark, I will take that patch and see if it works for us.
Eric On Feb 26, 2013, at 5:22 AM, Mark Hambleton mark.hambleton@broadcom.com wrote:
I have a basic patch to the current driver which adds very basic device tree support, I can post if you are interested in carrying a patch until it gets fixed properly?
Mark
-----Original Message----- From: linaro-kernel-bounces@lists.linaro.org [mailto:linaro-kernel-bounces@lists.linaro.org] On Behalf Of Amit Kucheria Sent: 26 February 2013 05:53 To: Eric Huang; Daniel Lezcano Cc: linaro-kernel@lists.linaro.org Subject: Re: arm_big_little: More CPUIdle states?
Eric,
Just to re-emphasize what Lorenzo said - we'd like a single implementation in mainline to work across SoCs.
Lorenzo and Daniel will be working towards that goal next week in Hong Kong at LCA13. Expect to see the results of the effort on the mailing lists in a few weeks.
In the meanwhile, so as to not get blocked, yes, you'll have to create your own copy of the driver with newer idle states.
If you don't mind, please keep Daniel and Lorenzo in the loop about your progress and problems faced so that they can factor those in when designing a single driver.
/Amit
On Mon, Feb 25, 2013 at 11:11 PM, Eric Huang ericyh@marvell.com wrote:
Lorenzo, Good to know adding DT capabilities is on the table.
So at the moment, if I want to have more idle states, I will have to create separated CPU idle driver in my mach-xxx directory.
Eric
On Feb 25, 2013, at 10:28 AM, Lorenzo Pieralisi lorenzo.pieralisi@arm.com wrote:
Hi Eric,
On Fri, Feb 22, 2013 at 05:21:12PM +0000, Eric Huang wrote:
Lorenzo, Looking in the cpuidle code in Linaro's 13.01 kernel, there are only two idle states supported in the cpuidle/arm_big_little.c, one is WFI, the other is C1. So to have more than these 2 idle states supported on a SoC, it looks like I have to create SoC specific CPU idle driver to replace the arm_big_little.c. Is this the intended design? It would be better if there is a way the arm_big_little.c can support SoC specific idle sets, via device tree maybe?
It is planned to add DT capabilities to idle states, it is one of the main discussion topic at the upcoming LCA 2013.
DT configurable C-states are just part of the story though, we also need to associate idle states enter functions to the appropriate C-state, which opens up and extend the topic beyond the mere definition of C-state tables configurable data.
Lorenzo
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
linaro-kernel@lists.linaro.org