From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>,
benh@kernel.crashing.org, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Cc: preeti@linux.vnet.ibm.com, srivatsa.bhat@linux.vnet.ibm.com,
scottwood@freescale.com, linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH V7 6/7] POWER/cpuidle: Enable powernv cpuidle support.
Date: Wed, 06 Nov 2013 22:06:38 +0100 [thread overview]
Message-ID: <527AAF5E.6080709@linaro.org> (raw)
In-Reply-To: <20131029110154.31547.94129.stgit@deepthi.in.ibm.com>
On 10/29/2013 12:01 PM, Deepthi Dharwar wrote:
> The following patch extends the current power backend
> idle driver to the powernv platform.
>
> Signed-off-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
> drivers/cpuidle/cpuidle-ibm-power.c | 39 ++++++++++++++++++++++++++++++++---
> 1 file changed, 36 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/cpuidle/cpuidle-ibm-power.c b/drivers/cpuidle/cpuidle-ibm-power.c
> index 5b92242..f790ea2 100644
> --- a/drivers/cpuidle/cpuidle-ibm-power.c
> +++ b/drivers/cpuidle/cpuidle-ibm-power.c
> @@ -52,9 +52,10 @@ static int snooze_loop(struct cpuidle_device *dev,
> struct cpuidle_driver *drv,
> int index)
> {
> - unsigned long in_purr;
> + unsigned long in_purr = 0;
>
> - idle_loop_prolog(&in_purr);
> + if (firmware_has_feature(FW_FEATURE_SPLPAR))
> + idle_loop_prolog(&in_purr);
> local_irq_enable();
> set_thread_flag(TIF_POLLING_NRFLAG);
>
> @@ -68,7 +69,8 @@ static int snooze_loop(struct cpuidle_device *dev,
> clear_thread_flag(TIF_POLLING_NRFLAG);
> smp_mb();
>
> - idle_loop_epilog(in_purr);
> + if (firmware_has_feature(FW_FEATURE_SPLPAR))
> + idle_loop_epilog(in_purr);
>
> return index;
> }
> @@ -132,6 +134,15 @@ static int shared_cede_loop(struct cpuidle_device *dev,
> return index;
> }
>
> +static int nap_loop(struct cpuidle_device *dev,
> + struct cpuidle_driver *drv,
> + int index)
> +{
> + ppc64_runlatch_off();
> + power7_idle();
> + return index;
> +}
> +
> /*
> * States for dedicated partition case.
> */
> @@ -165,6 +176,23 @@ static struct cpuidle_state shared_states[] = {
> .enter = &shared_cede_loop },
> };
>
> +static struct cpuidle_state powernv_states[] = {
> + { /* Snooze */
> + .name = "snooze",
> + .desc = "snooze",
> + .flags = CPUIDLE_FLAG_TIME_VALID,
> + .exit_latency = 0,
> + .target_residency = 0,
> + .enter = &snooze_loop },
> + { /* NAP */
> + .name = "NAP",
> + .desc = "NAP",
> + .flags = CPUIDLE_FLAG_TIME_VALID,
> + .exit_latency = 10,
> + .target_residency = 100,
> + .enter = &nap_loop },
> +};
> +
> void update_smt_snooze_delay(int cpu, int residency)
> {
> struct cpuidle_driver *drv = cpuidle_get_driver();
> @@ -258,6 +286,11 @@ static int power_idle_probe(void)
> cpuidle_state_table = dedicated_states;
> max_idle_state = ARRAY_SIZE(dedicated_states);
> }
> +
> + } else if (firmware_has_feature(FW_FEATURE_OPALv3)) {
> + cpuidle_state_table = powernv_states;
> + max_idle_state = ARRAY_SIZE(powernv_states);
> +
> } else
> return -ENODEV;
>
>
--
<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
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>,
benh@kernel.crashing.org, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Cc: michael@ellerman.id.au, scottwood@freescale.com,
srivatsa.bhat@linux.vnet.ibm.com, preeti@linux.vnet.ibm.com,
linux-pm@lists.linux-foundation.org, svaidy@linux.vnet.ibm.com
Subject: Re: [PATCH V7 6/7] POWER/cpuidle: Enable powernv cpuidle support.
Date: Wed, 06 Nov 2013 22:06:38 +0100 [thread overview]
Message-ID: <527AAF5E.6080709@linaro.org> (raw)
In-Reply-To: <20131029110154.31547.94129.stgit@deepthi.in.ibm.com>
On 10/29/2013 12:01 PM, Deepthi Dharwar wrote:
> The following patch extends the current power backend
> idle driver to the powernv platform.
>
> Signed-off-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
> drivers/cpuidle/cpuidle-ibm-power.c | 39 ++++++++++++++++++++++++++++++++---
> 1 file changed, 36 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/cpuidle/cpuidle-ibm-power.c b/drivers/cpuidle/cpuidle-ibm-power.c
> index 5b92242..f790ea2 100644
> --- a/drivers/cpuidle/cpuidle-ibm-power.c
> +++ b/drivers/cpuidle/cpuidle-ibm-power.c
> @@ -52,9 +52,10 @@ static int snooze_loop(struct cpuidle_device *dev,
> struct cpuidle_driver *drv,
> int index)
> {
> - unsigned long in_purr;
> + unsigned long in_purr = 0;
>
> - idle_loop_prolog(&in_purr);
> + if (firmware_has_feature(FW_FEATURE_SPLPAR))
> + idle_loop_prolog(&in_purr);
> local_irq_enable();
> set_thread_flag(TIF_POLLING_NRFLAG);
>
> @@ -68,7 +69,8 @@ static int snooze_loop(struct cpuidle_device *dev,
> clear_thread_flag(TIF_POLLING_NRFLAG);
> smp_mb();
>
> - idle_loop_epilog(in_purr);
> + if (firmware_has_feature(FW_FEATURE_SPLPAR))
> + idle_loop_epilog(in_purr);
>
> return index;
> }
> @@ -132,6 +134,15 @@ static int shared_cede_loop(struct cpuidle_device *dev,
> return index;
> }
>
> +static int nap_loop(struct cpuidle_device *dev,
> + struct cpuidle_driver *drv,
> + int index)
> +{
> + ppc64_runlatch_off();
> + power7_idle();
> + return index;
> +}
> +
> /*
> * States for dedicated partition case.
> */
> @@ -165,6 +176,23 @@ static struct cpuidle_state shared_states[] = {
> .enter = &shared_cede_loop },
> };
>
> +static struct cpuidle_state powernv_states[] = {
> + { /* Snooze */
> + .name = "snooze",
> + .desc = "snooze",
> + .flags = CPUIDLE_FLAG_TIME_VALID,
> + .exit_latency = 0,
> + .target_residency = 0,
> + .enter = &snooze_loop },
> + { /* NAP */
> + .name = "NAP",
> + .desc = "NAP",
> + .flags = CPUIDLE_FLAG_TIME_VALID,
> + .exit_latency = 10,
> + .target_residency = 100,
> + .enter = &nap_loop },
> +};
> +
> void update_smt_snooze_delay(int cpu, int residency)
> {
> struct cpuidle_driver *drv = cpuidle_get_driver();
> @@ -258,6 +286,11 @@ static int power_idle_probe(void)
> cpuidle_state_table = dedicated_states;
> max_idle_state = ARRAY_SIZE(dedicated_states);
> }
> +
> + } else if (firmware_has_feature(FW_FEATURE_OPALv3)) {
> + cpuidle_state_table = powernv_states;
> + max_idle_state = ARRAY_SIZE(powernv_states);
> +
> } else
> return -ENODEV;
>
>
--
<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
next prev parent reply other threads:[~2013-11-06 21:06 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-29 11:01 [PATCH V7 0/7] POWER/cpuidle: Generic IBM-POWER cpuidle driver enabled for PSERIES and POWERNV platforms Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-10-29 11:01 ` [PATCH V7 1/7] pseries/cpuidle: Move processor_idle.c to drivers/cpuidle Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 20:58 ` Daniel Lezcano
2013-11-06 20:58 ` Daniel Lezcano
2013-10-29 11:01 ` [PATCH V7 2/7] pseries/cpuidle: Use cpuidle_register() for initialisation Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 21:00 ` Daniel Lezcano
2013-11-06 21:00 ` Daniel Lezcano
2013-10-29 11:01 ` [PATCH V7 3/7] pseries/cpuidle: Make pseries_idle backend driver a non-module Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 21:01 ` Daniel Lezcano
2013-11-06 21:01 ` Daniel Lezcano
2013-10-29 11:01 ` [PATCH V7 4/7] pseries/cpuidle: Remove MAX_IDLE_STATE macro Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 21:02 ` Daniel Lezcano
2013-11-06 21:02 ` Daniel Lezcano
2013-10-29 11:01 ` [PATCH V7 5/7] POWER/cpuidle: Generic POWER CPUIDLE driver supporting PSERIES Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 21:05 ` Daniel Lezcano
2013-11-06 21:05 ` Daniel Lezcano
2013-11-07 4:15 ` Deepthi Dharwar
2013-11-07 4:15 ` Deepthi Dharwar
2013-11-07 5:01 ` Benjamin Herrenschmidt
2013-11-07 5:01 ` Benjamin Herrenschmidt
2013-11-07 5:27 ` Deepthi Dharwar
2013-11-07 5:27 ` Deepthi Dharwar
2013-10-29 11:01 ` [PATCH V7 6/7] POWER/cpuidle: Enable powernv cpuidle support Deepthi Dharwar
2013-10-29 11:01 ` Deepthi Dharwar
2013-11-06 21:06 ` Daniel Lezcano [this message]
2013-11-06 21:06 ` Daniel Lezcano
2013-10-29 11:02 ` [PATCH V7 7/7] powernv/cpuidle: Enable idle powernv cpu to call into the cpuidle framework Deepthi Dharwar
2013-10-29 11:02 ` Deepthi Dharwar
2013-11-06 21:11 ` Daniel Lezcano
2013-11-06 21:11 ` Daniel Lezcano
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=527AAF5E.6080709@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=benh@kernel.crashing.org \
--cc=deepthi@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=scottwood@freescale.com \
--cc=srivatsa.bhat@linux.vnet.ibm.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 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.