From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>
Subject: Re: [PATCH 5/5][RFC] cpuidle : add cpuidle_register_states function
Date: Fri, 31 Aug 2012 23:21:14 +0200 [thread overview]
Message-ID: <50412ACA.6080500@linaro.org> (raw)
In-Reply-To: <20120810171736.GA12151@e102568-lin.cambridge.arm.com>
On 08/10/2012 07:17 PM, Lorenzo Pieralisi wrote:
> Hi Daniel,
>
> thanks for this patchset.
>
> On Wed, Jul 25, 2012 at 11:46:02AM +0100, Daniel Lezcano wrote:
>> The tegra3 and big.LITTLE architecture have different cpu latencies.
>> This API allows to specify a different cpu latency for a specific cpu.
>>
>> With the previous patches, we use the per cpuidle device states pointer,
>> this function overrides this pointer.
>>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> ---
>> drivers/cpuidle/cpuidle.c | 17 +++++++++++++++++
>> include/linux/cpuidle.h | 10 +++++++---
>> 2 files changed, 24 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
>> index 199878a..3b21b68 100644
>> --- a/drivers/cpuidle/cpuidle.c
>> +++ b/drivers/cpuidle/cpuidle.c
>> @@ -456,6 +456,23 @@ void cpuidle_unregister_device(struct cpuidle_device *dev)
>>
>> EXPORT_SYMBOL_GPL(cpuidle_unregister_device);
>>
>> +int cpuidle_register_states(struct cpuidle_device *dev,
>> + struct cpuidle_state *states,
>> + int state_count)
>> +{
>> + if (!dev || !states)
>> + return -EINVAL;
>> +
>> + if (state_count <= 0)
>> + return -EINVAL;
>> +
>> + dev->states = states;
>> + dev->state_count = state_count;
>
> Is this function supposed to be called after cpuidle_device registration ?
> I think so since at registration time the dev->states pointers are all
> initialized to point to the driver state array, which is global and not
> really what we want.
>
> Unless this function is called on the cpu that requires swapping the state
> pointer, I think it is unsafe to register a different state pointer
> without a minimal level of locking (or disabling idle and renabling idle)
> since the update of dev->states and dev->state_count is not atomic.
> Maybe it is implicit but it should be documented somehow to define
> cpuidle_register_states(...) proper usage.
Hi Lorenzo,
Yes, you are right. I will add the cpuidle lock.
Thanks !
-- Daniel
--
<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
next prev parent reply other threads:[~2012-08-31 21:21 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-25 10:45 [PATCH 0/5][RFC] Use per cpuidle_device states Daniel Lezcano
[not found] ` <1343213162-8064-1-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-07-25 10:45 ` [PATCH 1/5] acpi : move the acpi_idle_driver variable declaration Daniel Lezcano
2012-07-27 5:46 ` Deepthi Dharwar
2012-07-27 8:14 ` Daniel Lezcano
2012-07-25 10:45 ` [PATCH 2/5] acpi : move cpuidle_device field out of the acpi_processor_power structure Daniel Lezcano
2012-07-25 10:46 ` [PATCH 3/5][RFC] cpuidle : add a pointer for cpuidle_state in the cpuidle_device Daniel Lezcano
[not found] ` <1343213162-8064-4-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-07-26 15:35 ` Shilimkar, Santosh
2012-09-03 15:16 ` Peter De Schrijver
2012-09-06 12:47 ` Daniel Lezcano
2012-07-25 10:46 ` [PATCH 4/5][RFC] cpuidle : use per cpuidle device cpu states Daniel Lezcano
2012-07-26 15:41 ` Shilimkar, Santosh
2012-07-25 10:46 ` [PATCH 5/5][RFC] cpuidle : add cpuidle_register_states function Daniel Lezcano
2012-07-27 5:54 ` Deepthi Dharwar
2012-08-10 17:17 ` Lorenzo Pieralisi
2012-08-31 21:21 ` Daniel Lezcano [this message]
2012-09-03 13:22 ` Peter De Schrijver
2012-09-03 20:50 ` Daniel Lezcano
2012-07-27 11:28 ` [PATCH 0/5][RFC] Use per cpuidle_device states Peter De Schrijver
[not found] ` <20120727112845.GI12034-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2012-08-31 21:19 ` Daniel Lezcano
2012-09-03 11:05 ` Peter De Schrijver
2012-09-03 15:36 ` Peter De Schrijver
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=50412ACA.6080500@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=linaro-dev@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).